数据定义补充_第1页
数据定义补充_第2页
数据定义补充_第3页
数据定义补充_第4页
数据定义补充_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2:17vSQL的主要功能DDLDDL(Data Definition LanguageData Definition Language) 数据定义语言数据定义语言用于定义关系数据库的模式、外模式和内模式,以实现用于定义关系数据库的模式、外模式和内模式,以实现对数据库基本表、视图及索引文件的定义、修改和删除对数据库基本表、视图及索引文件的定义、修改和删除等操作。最常用的等操作。最常用的DDLDDL语句是语句是CREATECREATE、DROPDROP和和ALTERALTER命命令。令。用于完成数据查询和数据更新操作。其中数据更新指对用于完成数据查询和数据更新操作。其中数据更新指对数据进行插入、

2、删除和修改操作。最常使用的数据进行插入、删除和修改操作。最常使用的DMLDML语句语句是是SELECTSELECT、INSERTINSERT、UPDATEUPDATE和和DELETEDELETE命令。命令。DCLDCL(Data Control LanguageData Control Language)数据控制语言)数据控制语言用于控制对数据库的访问,服务器的关闭、启动等操作。用于控制对数据库的访问,服务器的关闭、启动等操作。常使用的常使用的DCLDCL命令有:命令有:GRANTGRANT、REVOKEREVOKE等。等。SQL-概述2:17SQL-概述vSQL的特点语言简洁,风格统一,易学

3、易懂语言简洁,风格统一,易学易懂高度非过程化高度非过程化2:17vSQL对象命名约定 SQLSQL对象包括数据库、表、视图、属性名等。这些对象名必须符合一定规则对象包括数据库、表、视图、属性名等。这些对象名必须符合一定规则或约定,一般应遵守下列规则。或约定,一般应遵守下列规则。数据对象名可以为数据对象名可以为1-30个字符。个字符。数据对象名应以字母开头,其余字符可以由字母、数字、下划线组成。数据对象名应以字母开头,其余字符可以由字母、数字、下划线组成。在在SQLSQL语句语法格式中的一些约定符号语句语法格式中的一些约定符号尖括号尖括号“”中的内容为实际语义。中的内容为实际语义。中括号中括号“

4、 ”中的内容为任选项。中的内容为任选项。,. . .意思是意思是“等等等等”,即前面的项可以重复。,即前面的项可以重复。SQL-概述2:17大括号大括号“”与竖线与竖线“|”表明此处为选择项,在所列出的各项中仅需选表明此处为选择项,在所列出的各项中仅需选择一项。择一项。SQL中的数据项(包括列项、表和视图)分隔符为中的数据项(包括列项、表和视图)分隔符为“,”;其字符串常;其字符串常数的定界符用数的定界符用单引号单引号 表示表示。v在编写SQL语句时,遵从以下准则: SQL语句对大小写不敏感语句对大小写不敏感 为了提高为了提高SQL语句的可读性,子句开头的关键字通常采用语句的可读性,子句开头的

5、关键字通常采用大写形式。大写形式。 SQL语句可写成一行或多行,习惯上每个子句占用一行。语句可写成一行或多行,习惯上每个子句占用一行。 关键字不能在行与行之间分开,并且很少采用缩写形式。关键字不能在行与行之间分开,并且很少采用缩写形式。 SQL语句的结束符为分号语句的结束符为分号“;”,分号必须放在语句中的,分号必须放在语句中的最后一个子句后面,但可以不在同一行。最后一个子句后面,但可以不在同一行。SQL-概述2:17 SQL语言的数据定义功能包括定义数据库、定义基本表、定义索引和定义视图。 表表3-1 SQL3-1 SQL的数据定义语的数据定义语句句操作对象 操作方式 创建语句 删除语句 修

6、改语句 数据库 CREATE DATABASECREATE DATABASEDROP DATABASE DROP DATABASE ALTER DATABASEALTER DATABASE基本表 CREATE TABLE CREATE TABLE DROP TABLE DROP TABLE ALTER TABLE ALTER TABLE 索引 CREATE INDEX CREATE INDEX DROP INDEX DROP INDEX 视图 CREATE VIEW CREATE VIEW DROP VIEW DROP VIEW ALTER VIEWALTER VIEW数据定义2:17v创建数

7、据库 SQLSQL使用命令使用命令CREATE DATABASECREATE DATABASE创建数据库,其一般创建数据库,其一般语法如下:语法如下: CREATE DATABASE CREATE DATABASE ; SQLSQL使用命令使用命令DROP DATABASEDROP DATABASE删除一个或多个数据库,删除一个或多个数据库,其一般语法如下:其一般语法如下: DROP DATABASE DROP DATABASE 数据库的创建与删除2:17v创建基本表CREATE TABLE ( , , ,); 是指要创建的基本表的名称,该名称应符合具体是指要创建的基本表的名称,该名称应符合具

8、体DBMSDBMS的标识符的命名规则。的标识符的命名规则。 指的是表的属性名称。指的是表的属性名称。 表的创建与删除2:17表的创建与删除 不同不同DBMSDBMS支持的数据类型不完全相同,下表列出的是支持的数据类型不完全相同,下表列出的是MS SQL SERVER SQLMS SQL SERVER SQL支支持的主要数据类型持的主要数据类型大类大类类型类型说明说明整数整数bit取值范围:取值范围:01Tinyint字节型:字节型:0255Smallint短整数:短整数:2字节字节Int整数:整数:4字节字节bigint长整数:长整数:8字节字节实数实数Smallmoney短货币型短货币型:4

9、字节字节Money货币型:货币型:8字节字节Numeric(p,d)p:精度,精度,d:小数位小数位Decimal(p,d)长度取决于长度取决于p,dFloat(n)长度取决于长度取决于n,n25时等同于时等同于Realreal4字节字节2:17表的创建与删除大类大类类型类型说明说明时间日时间日期期Datetime8字节字节Smalldatetime4字节字节字符串字符串Char(n)N个字节个字节Varchar(n|max)最多最多N+2个字节个字节,变长变长双字节双字节字符串字符串Nchar(n)UNICODE UCS-2 ,2n个字节个字节Nvarchar二进制二进制串串binary (

10、 n ) varbinary ( n | max ) 2:17表的完整性约束条件v 完整性约束条件分为列级完整性约束条件和表级完整性完整性约束条件分为列级完整性约束条件和表级完整性约束条件约束条件,区别区别在于:列级完整性约束条件只能用于列,在于:列级完整性约束条件只能用于列,而表级完整性约束条件能够用于一张表中的多列。而表级完整性约束条件能够用于一张表中的多列。NOT NULL NOT NULL 或或NULLNULL约束约束 UNIQUEUNIQUE约束是惟一性约束。即不允许表中的某一列或约束是惟一性约束。即不允许表中的某一列或者某几列有重复的属性值。者某几列有重复的属性值。DEFAULTD

11、EFAULT约束约束 DEFAULTDEFAULT约束为默认值约束,是列级完整性约束条件。约束为默认值约束,是列级完整性约束条件。当向表中插入一个新行时,如果对于特定列没有指定当向表中插入一个新行时,如果对于特定列没有指定数值,则使用数值,则使用DEFAULTDEFAULT子句指定的默认值。子句指定的默认值。2:17CHECKCHECK约束约束 CHECKCHECK约束是检验约束,为插入列中的数据指定约束条约束是检验约束,为插入列中的数据指定约束条件。件。 PRIMARY KEY PRIMARY KEY 约束即主键约束,是表级完整性约束条约束即主键约束,是表级完整性约束条件。表中的主键可以是一

12、列或列组,件。表中的主键可以是一列或列组,PRIMARY KEY PRIMARY KEY 约束约束可以使得主键的数值在每一行中各不相同。可以使得主键的数值在每一行中各不相同。 注意:注意:PRIMARY KEYPRIMARY KEY约束类似于约束类似于UNIQUEUNIQUE约束,差别在于约束,差别在于PRIMARY KEYPRIMARY KEY约束中的列约束中的列不可以为空。不可以为空。FOREIGN KEYFOREIGN KEY约束约束 FOREIGN KEYFOREIGN KEY约束是参照完整性约束,是用于约束外约束是参照完整性约束,是用于约束外键的,也是表级完整性约束条件。键的,也是表

13、级完整性约束条件。表的完整性约束条件2:17表的创建与删除v删除基本表 当某个基本表不再需要时,可以使用当某个基本表不再需要时,可以使用DROP TABLE DROP TABLE 语句语句将它删除。其一般语法为:将它删除。其一般语法为: DROP TABLE DROP TABLE ; 该语句一旦执行,基本表的定义、数据、此表上建立的该语句一旦执行,基本表的定义、数据、此表上建立的索引和视图都将自动被删除掉。索引和视图都将自动被删除掉。2:17表的创建与删除2:17表的创建v简单表的创建-主键create table college(col_id varchar(2) not null prim

14、ary key,col_name varchar(40) UNIQUE);允许允许为空为空非空非空单个字段单个字段为主键为主键2:17表的创建v简单表的创建-主键drop table college;gocreate table college(col_id varchar(2) not null ,col_name varchar(40) not null UNIQUE,constraint pk_college_col_id primary key(col_id,col_name) );约束约束命名,方便删除命名,方便删除多个字段多个字段为主键为主键2:17表的创建v简单表的创建-主键dr

15、op table college;gocreate table college(col_id varchar(2) not null ,col_name varchar(40) UNIQUE);goalter table college add constraint pk_college_col_id primary key(col_id);go2:17表的创建-外键create table class(cla_id varchar(6) not null primary key,col_id varchar(2) foreign key references college(col_id)

16、on update cascade on delete cascade,cla_name varchar(40) UNIQUE,tuition smallmoney default 0)Gocascade 表示级联操作,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中该行也相应删除drop table sc 级联更新例子goCREATE TABLE SC ( Sno CHAR(7) NOT NULL, Cno CHAR(6) NOT NULL, Grade TINYINT, ) goalter table sc add constraint pk_sc_sno_cno

17、 primary key(sno,cno);goalter table sc add constraint fk_sc_sno foreign key(sno) references student(sno) on update cascade on delete cascadego alter table sc add constraint fk_sc_cno foreign key(cno) references course(cno) on update cascade on delete cascadegoupdate student set Sno =222 where Sno =

18、0811101 -级联更新select * from studentselect * from sc -0811101的记录都变为2:17表的创建-外键drop table classgocreate table class(cla_id varchar(6) not null primary key,col_id varchar(2) ,cla_name varchar(40) UNIQUE,tuition smallmoney default 0,constraint fk_class_col_id foreign key(col_id) references college(col_id

19、) on update cascade on delete cascade)Go2:17表的创建-外键drop table classgocreate table class(cla_id varchar(6) not null primary key,col_id varchar(2) ,cla_name varchar(40) UNIQUE,tuition smallmoney default 0)goalter table class add foreign key(col_id) references college(col_id) on update cascade on delet

20、e cascadego2:17表的创建-外键级联操作insert into college (col_id,col_name) values (60,信息工程学信息工程学 院院);insert into college values (80,软件学院软件学院);Goinsert into class (cla_id,cla_name,col_id,tuition) values (6011,计算机应用计算机应用,60,6400);-insert into class values (8020,软件工程软件工程,80,10000);insert into class values (8020,8

21、0,软件工程软件工程,10000);-insert into class values (8022,80,软件工程软件工程,10000);insert into class (cla_id,cla_name,col_id,tuition) values (7060,新闻新闻,70,6600);go2:17表的Check约束create table studentcreate table student( (stu_id stu_id varcharvarchar(16) not null (16) not null primary keyprimary key, ,stu_name stu_name varcharvarchar(16),(16),cla_id cla_id varcharvarchar(6) (6) foreign key references foreign key references classclass(cla_id) (cla_id) sex sex varcharvarchar(2) (2) default default 男男 not null,not null,PostCode PostCode varchar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论