(二)数据定义语言(DDL)

SQL结构化查询语言,用户操作关系数据库的通用语言,按其功能分为四大部分(DDL,DCL,DML):

                       

数据库定义语句

                                           

① CREATE(创建基本表)

格式:[    ]   内的内容表示可选:

                                           

实例:

create domain  person_name  char(20)
	create   table   T
		( tno    char(10),--长度固定为10
		  tname person_name not null,--非空值约束
		  sal	  int,
		  dno   char(10) unique,--唯一性约束,可以为空,可以存在多个这是和主键约束的区别
		  constraint pk_t primary key (tno),--主键约束,并将该约束命名为pk_t
		  foreign key(dno) references D(dno),--参照完整性约束
		  check (sal > 0))--最后一句没有逗号了

四个约束:

primary key (tno)主码约束(不但要求unique而且要求是非空的);

unique唯一性约束要求是唯一的,但是可以是空的;

not null 非空约束;

foreign key(dno) reference D(dno),参照完整性约束,该关系中的dno参照的是关系D中的dno。

扫描二维码关注公众号,回复: 9151631 查看本文章

key有括号,约束除了not null均有括号。

②alter(修改基本表定义)

                               

示例:

--ADD(增加列)
alter table T add location char(30);--增加location列,长度固定为30

--MOIDIFY(修改列或者完整性约束)
alter table S modify sno varchar(300);--修改列的长度时,只能长不能短

alter table T add location char(30) not null;
--location列已经存在,修改列的定义的时候要用modify,以上方式不对,应该为
alter table T modify location char(30) not null;

--DROP(删除基本表或列或约束)

alter table drop column s [CASCADE│RESTRICT];
--删除列,注意column关键字,cascade是指在基本表中删除某列时所有引用该列*视图*和约束一起删除
--restrict是指只有在没有视图或约束引用该列属性时才可被删除

alter table S drop constraint pk_s;--删除约束直接加约束名  

注意:

      alter有三种方法add,drop ,modify增删改,均是对约束或者列操作。对表的操作是create,alter,drop。

     table T,column s,constrain pk_s,你在操作之前要告诉系统你操作的是什么东西。

③drop(删除基本表)

删除表:drop table T

注意和alter里面的drop区分,alter里面Drop的对象是列或者约束。

④索引

a.什么是索引?

索引类似于字典前面的索引,其目的是加快检索速度,由数据库管理员建立,DBMS自动维护和使用。

b.格式

unique或distinct加在index前面表示唯一性索引,依旧是索引列上没有相同的值,若索引列有相同的值则无法创建。

cluster聚簇索引,即表中元祖按照索引列内容排序,因为只能按一种规则进行排序,所以一个表只能有一个聚簇索引,但聚簇索引可以是多个列,如出生年和出生月一起做聚簇索引。

asc desc索引表中的排列次序,默认是升序,直接在列名后面写就行不需要括号。

删除索引:

索引可以动态添加,索引可以加快查询速度,但降低插入修改速度。

所以内部实现为B+树,hash表。

不允许用户在操作中指定索引,索引怎么用完全由DBMS决定。

发布了21 篇原创文章 · 获赞 4 · 访问量 6807

猜你喜欢

转载自blog.csdn.net/nailuoch/article/details/104303726