lab4 table creation and alteration_1323__

  • 格式:doc
  • 大小:69.50 KB
  • 文档页数:11

实验4:表的创建及修改实验人:学号班级:计算机实验目的:1.掌握建表的SQL语法。

2.掌握修改表的SQL语法。

实验平台:1.Oracle 11g/12c实验过程记录及分析:1.以scott帐号登陆数据库,创建表test,包含三个字段:a-整数类型,b-最长10个字符的可变长度字符串,c-日期型,然后给此表添加一条记录,注意to_date()函数的用法。

SQL> create table test2 (3 a int,4 b varchar2(10),5 c date6 )7 /表已创建。

SQL> insert into test values2 (1,'MIKE',to_char(to_date('14/10/23','yy/mm/dd')));已创建 1 行。

SQL> select * from test;A B C---------- ---------- --------------1 MIKE 23-10月-142.删除上面的test表,重新创建test,依然包含上面三个字段,并且建表时字段a附加主键约束,b附加unique约束,c附加非空约束,用列级指定名称来实现。

表建好后,验证每个约束的作用。

删除表并创建SQL> drop table test2 /表已删除。

SQL> ed已写入 file afiedt.buf1 create table test2 (3 a int constraint pk_test primary key,4 b varchar2(10) constraint uq_test unique,5 c date constraint nn_test not null6* )SQL> /表已创建。

验证主键约束唯一性SQL> insert into test values2 (1,'MIKE',to_char(to_date('14/10/23','yy/mm/dd')));已创建 1 行。

SQL> insert into test values2 (1,'MIKE',to_char(to_date('14/10/23','yy/mm/dd')));insert into test values*第 1 行出现错误:ORA-00001: 违反唯一约束条件 (C##SCOTT.PK_TEST)验证主键非空约束SQL> insert into test values2 (null,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd'))); (null,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')))*第 2 行出现错误:ORA-01400: 无法将 NULL 插入 ("C##SCOTT"."TEST"."A")验证唯一约束SQL> ed已写入 file afiedt.buf1 insert into test values2* (2,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd'))) SQL> /insert into test values*第 1 行出现错误:ORA-00001: 违反唯一约束条件 (C##SCOTT.PK_TEST)验证非空约束SQL> insert into test values2 (3,'Mike',to_char(null));(3,'Mike',to_char(null))*第 2 行出现错误:ORA-01400: 无法将 NULL 插入 ("C##SCOTT"."TEST"."C")3.不指定名称,用列级约束来实现第二题内容SQL> create table test2 (3 a int primary key,4 b varchar2(10) unique,5 c date not null6 )7 /表已创建。

验证主键约束唯一性SQL> insert into test values2 (1,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));已创建 1 行。

SQL> insert into test values2 (1,'ldf',to_char(to_date('2014-10-23','yyyy-mm-dd')));insert into test values*第 1 行出现错误:ORA-00001: 违反唯一约束条件 (C##SCOTT.SYS_C009891)验证主键约束非空SQL> insert into test values2 (null,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));(null,'Mike',to_char(to_date('2014-10-23,'yyyy-mm-dd')))*第 2 行出现错误:ORA-01400: 无法将 NULL 插入 ("C##SCOTT"."TEST"."A")验证唯一约束SQL> insert into test values2 (2,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));insert into test values*第 1 行出现错误:ORA-00001: 违反唯一约束条件 (C##SCOTT.SYS_C009892)验证非空约束SQL> insert into test values2 (3,'Mike',to_char(null));(3,'Mike',to_char(null))*第 2 行出现错误:ORA-01400: 无法将 NULL 插入 ("C##SCOTT"."TEST"."C")4.用表级不指定名称来实现第二题要求。

SQL> create table test2 (3 a int,4 b varchar2(10),5 c date,6 primary key(a),7 unique(b)8 )9 /表已创建。

验证主键约束唯一性SQL> insert into test values2 (1,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));已创建 1 行。

SQL> ed已写入 file afiedt.buf1 insert into test values2* (1,'ldf',to_char(to_date('2014-10-23','yyyy-mm-dd'))) SQL> /insert into test values*第 1 行出现错误:ORA-00001: 违反唯一约束条件 (C##SCOTT.SYS_C009893)验证主键约束非空性SQL> ed已写入 file afiedt.buf1 insert into test values2* (null,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd'))) SQL> /(null,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')))*第 2 行出现错误:ORA-01400: 无法将 NULL 插入 ("C##SCOTT"."TEST"."A")验证唯一约束SQL> ed已写入 file afiedt.buf1 insert into test values2* (2,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd'))) SQL> /insert into test values*第 1 行出现错误:ORA-00001: 违反唯一约束条件 (C##SCOTT.SYS_C009894)5.用表级指定名称来实现第二题要求。

SQL> ed已写入 file afiedt.buf1 create table test2 (3 a int,4 b varchar2(10),5 c date,6 constraint pk_test primary key(a),7 constraint uq_test unique(b)8* )SQL> /表已创建。

验证主键约束唯一性SQL> insert into test values2 (1,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));已创建 1 行。

SQL> insert into test values2 (1,'ldf',to_char(to_date('2014-10-23','yyyy-mm-dd')));insert into test values*第 1 行出现错误:ORA-00001: 违反唯一约束条件 (C##SCOTT.PK_TEST)验证主键约束非空SQL> ed已写入 file afiedt.buf1 insert into test values2* (null,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')))SQL> /(null,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')))*第 2 行出现错误:ORA-01400: 无法将 NULL 插入 ("C##SCOTT"."TEST"."A")验证唯一约束SQL> ed已写入 file afiedt.buf1 insert into test values2* (2,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')))SQL> /insert into test values*第 1 行出现错误:ORA-00001: 违反唯一约束条件 (C##SCOTT.UQ_TEST)6.创建两个表,名称分别为A、B,分别满足下列要求:A中包含字段a、b,B中包含字段c、d,都是int类型,其中a为表A的主键,c为表B的主键,d为指向表A中字段a的外键。