lab4tablecreationandalteration1323.docx

上传人:b****2 文档编号:229522 上传时间:2023-04-28 格式:DOCX 页数:14 大小:16.74KB
下载 相关 举报
lab4tablecreationandalteration1323.docx_第1页
第1页 / 共14页
lab4tablecreationandalteration1323.docx_第2页
第2页 / 共14页
lab4tablecreationandalteration1323.docx_第3页
第3页 / 共14页
lab4tablecreationandalteration1323.docx_第4页
第4页 / 共14页
lab4tablecreationandalteration1323.docx_第5页
第5页 / 共14页
lab4tablecreationandalteration1323.docx_第6页
第6页 / 共14页
lab4tablecreationandalteration1323.docx_第7页
第7页 / 共14页
lab4tablecreationandalteration1323.docx_第8页
第8页 / 共14页
lab4tablecreationandalteration1323.docx_第9页
第9页 / 共14页
lab4tablecreationandalteration1323.docx_第10页
第10页 / 共14页
lab4tablecreationandalteration1323.docx_第11页
第11页 / 共14页
lab4tablecreationandalteration1323.docx_第12页
第12页 / 共14页
lab4tablecreationandalteration1323.docx_第13页
第13页 / 共14页
lab4tablecreationandalteration1323.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

lab4tablecreationandalteration1323.docx

《lab4tablecreationandalteration1323.docx》由会员分享,可在线阅读,更多相关《lab4tablecreationandalteration1323.docx(14页珍藏版)》请在冰点文库上搜索。

lab4tablecreationandalteration1323.docx

lab4tablecreationandalteration1323

实验4:

表的创建及修改

实验人:

学号班级:

计算机

实验目的:

1.掌握建表的SQL语法。

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

实验平台:

1.Oracle11g/12c

实验过程记录及分析:

1.以scott帐号登陆数据库,创建表test,包含三个字段:

a-整数类型,b-最长10个字符的可变长度字符串,c-日期型,然后给此表添加一条记录,注意to_date()函数的用法。

SQL>createtabletest

2(

3aint,

4bvarchar2(10),

5cdate

6)

7/

表已创建。

SQL>insertintotestvalues

2(1,'MIKE',to_char(to_date('14/10/23','yy/mm/dd')));

已创建1行。

SQL>select*fromtest;

ABC

----------------------------------

1MIKE23-10月-14

2.删除上面的test表,重新创建test,依然包含上面三个字段,并且建表时字段a附加主键约束,b附加unique约束,c附加非空约束,用列级指定名称来实现。

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

删除表并创建

SQL>droptabletest

2/

表已删除。

SQL>ed

已写入fileafiedt.buf

1createtabletest

2(

3aintconstraintpk_testprimarykey,

4bvarchar2(10)constraintuq_testunique,

5cdateconstraintnn_testnotnull

6*)

SQL>/

表已创建。

验证主键约束唯一性

SQL>insertintotestvalues

2(1,'MIKE',to_char(to_date('14/10/23','yy/mm/dd')));

已创建1行。

SQL>insertintotestvalues

2(1,'MIKE',to_char(to_date('14/10/23','yy/mm/dd')));

insertintotestvalues

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(C##SCOTT.PK_TEST)

验证主键非空约束

SQL>insertintotestvalues

2(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

已写入fileafiedt.buf

1insertintotestvalues

2*(2,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')))

SQL>/

insertintotestvalues

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(C##SCOTT.PK_TEST)

验证非空约束

SQL>insertintotestvalues

2(3,'Mike',to_char(null));

(3,'Mike',to_char(null))

*

第2行出现错误:

ORA-01400:

无法将NULL插入("C##SCOTT"."TEST"."C")

3.不指定名称,用列级约束来实现第二题内容

SQL>createtabletest

2(

3aintprimarykey,

4bvarchar2(10)unique,

5cdatenotnull

6)

7/

表已创建。

验证主键约束唯一性

SQL>insertintotestvalues

2(1,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));

已创建1行。

SQL>insertintotestvalues

2(1,'ldf',to_char(to_date('2014-10-23','yyyy-mm-dd')));

insertintotestvalues

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(C##SCOTT.SYS_C009891)

验证主键约束非空

SQL>insertintotestvalues

2(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>insertintotestvalues

2(2,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));

insertintotestvalues

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(C##SCOTT.SYS_C009892)

验证非空约束

SQL>insertintotestvalues

2(3,'Mike',to_char(null));

(3,'Mike',to_char(null))

*

第2行出现错误:

ORA-01400:

无法将NULL插入("C##SCOTT"."TEST"."C")

 

4.用表级不指定名称来实现第二题要求。

SQL>createtabletest

2(

3aint,

4bvarchar2(10),

5cdate,

6primarykey(a),

7unique(b)

8)

9/

表已创建。

验证主键约束唯一性

SQL>insertintotestvalues

2(1,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));

已创建1行。

SQL>ed

已写入fileafiedt.buf

1insertintotestvalues

2*(1,'ldf',to_char(to_date('2014-10-23','yyyy-mm-dd')))

SQL>/

insertintotestvalues

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(C##SCOTT.SYS_C009893)

验证主键约束非空性

SQL>ed

已写入fileafiedt.buf

1insertintotestvalues

2*(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

已写入fileafiedt.buf

1insertintotestvalues

2*(2,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')))

SQL>/

insertintotestvalues

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(C##SCOTT.SYS_C009894)

5.用表级指定名称来实现第二题要求。

SQL>ed

已写入fileafiedt.buf

1createtabletest

2(

3aint,

4bvarchar2(10),

5cdate,

6constraintpk_testprimarykey(a),

7constraintuq_testunique(b)

8*)

SQL>/

表已创建。

验证主键约束唯一性

SQL>insertintotestvalues

2(1,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')));

已创建1行。

SQL>insertintotestvalues

2(1,'ldf',to_char(to_date('2014-10-23','yyyy-mm-dd')));

insertintotestvalues

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(C##SCOTT.PK_TEST)

验证主键约束非空

SQL>ed

已写入fileafiedt.buf

1insertintotestvalues

2*(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

已写入fileafiedt.buf

1insertintotestvalues

2*(2,'Mike',to_char(to_date('2014-10-23','yyyy-mm-dd')))

SQL>/

insertintotestvalues

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(C##SCOTT.UQ_TEST)

6.创建两个表,名称分别为A、B,分别满足下列要求:

A中包含字段a、b,B中包含字段c、d,都是int类型,其中a为表A的主键,c为表B的主键,d为指向表A中字段a的外键。

SQL>createtableA

2(

3aintconstraintpk_Aprimarykey,

4bint

5)

6/

表已创建。

SQL>createtableB

2(

3cintconstraintpk_Bprimarykey,

4dintconstraintfk_BreferencesA(a)

5)

6/

表已创建。

7.向第六题中的表A、B添加记录,验证外键约束所起的作用,即验证引用完整性的内容。

SQL>insertintoAvalues(1,2);

已创建1行。

SQL>insertintoBvalues(1,1);

已创建1行。

SQL>insertintoBvalues(2,2);

insertintoBvalues(2,2)

*

第1行出现错误:

ORA-02291:

违反完整约束条件(C##SCOTT.FK_B)-未找到父项关键字

8.修改上面test表的名称为test1,然后验证结果。

SQL>select*fromtest;

ABC

----------------------------------

1Mike14-11月-12

SQL>altertabletestrenametotest1;

表已更改。

SQL>select*fromtest1;

ABC

----------------------------------

1Mike14-11月-12

9.删除test1表中的b字段然后验证结果。

SQL>altertabletest1dropcolumnb;

表已更改。

SQL>select*fromtest1;

AC

------------------------

114-11月-12

10.把test1表中的c字段名称修改为d,然后验证结果。

SQL>altertabletest1renamecolumnctod;

表已更改。

SQL>select*fromtest1;

AD

------------------------

114-11月-12

11.删除test1表中的主键约束,然后验证结果。

删除主键约束:

SQL>altertabletest1dropconstraintpk_test;

表已更改。

验证主键唯一性无效:

SQL>insertintotest1values

2(1,to_char(to_date('14/10/23','yy/mm/dd')))

3/

已创建1行。

验证主键非空性无效:

SQL>insertintotest1values

2(null,to_char(to_date('14/10/23','yy/mm/dd')))

3/

已创建1行。

SQL>select*fromtest1;

AD

------------------------

114-11月-12

114-11月-12

14-11月-12

12以system用户登录数据库,利用dba_tables数据字典表查询scott用户有哪些表。

SQL>selecttable_name

2fromdba_tables

3whereowner='SCOTT'

4/

TABLE_NAME

------------------------------

DEPT

EMP

BONUS

SALGRADE

YAMA

A

B

TEST1

已选择8行。

13.以system用户登录数据库,利用dba_constraints与dba_cons_columns数据字典表查询第六题中的约束名称及其所在的列。

SQL>selecttable_name,constraint_name,column_name

2fromdba_cons_columns

3wheretable_name='A'

4/

TABLE_NAMECONSTRAINT_NAME

------------------------------------------------------------

COLUMN_NAME

--------------------------------------------------------------------------------

APK_A

A

SQL>ed

已写入fileafiedt.buf

1selecttable_name,constraint_name,column_name

2fromdba_cons_columns

3*wheretable_name='B'

SQL>/

TABLE_NAMECONSTRAINT_NAME

------------------------------------------------------------

COLUMN_NAME

--------------------------------------------------------------

BFK_B

D

BPK_B

C

14.如果不使用desc命令,利用dba_columns数据字典表查询scott的emp表的结构(即emp表的所有列及其类型)。

SQL>selectcolumn_name,data_typefromdba_tab_columns

2whereowner='SCOTT'

3andtable_name='EMP'

4/

COLUMN_NAMEDATA_TYPE

------------------------------------------------------------------

EMPNONUMBER

ENAMEVARCHAR2

JOBVARCHAR2

MGRNUMBER

HIREDATEDATE

SALNUMBER

COMMNUMBER

DEPTNONUMBER

已选择8行。

15.用一个命令查询emp表上所有的约束名称,约束类型及其所在列名称,若是外键请给出其指向的表及列,若是检查约束,请给出检查条件。

[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!

]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2