第3章 Transact-S0L语言 SQL SERVER2005入门与实例教程电子工业出版社2006
第3章 Transact-SQL语言
31数据定义语言 数据定义语言(DL)是指用来定义和管理数 据库以及数据库中各种对象的语句,这些语 句包括 CREATE、 ALTER和DR0P等。在SQL Server2005中,数据库对象包括表、视图 触发器、存储过程、规则、默认、用户自定 义的数据类型等。这些对象的创建、修改和 删除等都可以通过使用 CREATE, ALTER,DROP 等语句来完成 SQL SERVER2005入门与实例教程电子工业出版社2006
3.1 数据定义语言 数据定义语言(DDL)是指用来定义和管理数 据库以及数据库中各种对象的语句,这些语 句包括 CREATE 、 ALTER 和 DROP 等 。 在 SQL Server 2005中,数据库对象包括表、视图、 触发器、存储过程、规则、默认、用户自定 义的数据类型等。这些对象的创建、修改和 删除等都可以通过使用CREATE,ALTER,DROP 等语句来完成
3.1数据定义语言 例3-1创建数据库表 /*下面的例子将创建表S。* CREATE TABLE S sno char((10) NOT NULL/学号字段 CONSTRAINT PK sno PRIMARY KEY CLUSTERED/*主键约束* CHECK( sno like3130050109[0-9])/检查约束* sname char(8)NUL,/姓名字段* sex char(2)NULL,/性别字段* age int NULL,/年龄字段 dept varchar(20)NULL*系别字段 SQL SERVER2005入门与实例教程电子工业出版社2006
3.1 数据定义语言 例3-1 创建数据库表 /*下面的例子将创建表S。*/ CREATE TABLE S ( sno char(10) NOT NULL /*学号字段*/ CONSTRAINT PK_sno PRIMARY KEY CLUSTERED/*主键约束*/ CHECK (sno like '31300501[0-9][0-9]')/*检查约束*/, sname char(8) NULL, /*姓名字段*/ sex char(2) NULL, /*性别字段*/ age int NULL, /*年龄字段*/ dept varchar(20) NULL/*系别字段*/ )
3.1数据定义语言 例3-2修改S表,增加一个班号列 程序清单如下: ALTER TABLE S ADD CLASS NO CHAR(6) SQL SERVER2005入门与实例教程电子工业出版社2006
3.1 数据定义语言 例3-2 修改S表,增加一个班号列 程序清单如下: ALTER TABLE S ADD CLASS_NO CHAR(6)
3.1数据定义语言 例3-3删除S表 程序清单如下: · DROP tab|eS SQL SERVER2005入门与实例教程电子工业出版社2006
3.1 数据定义语言 例3-3 删除S表 程序清单如下: • DROP table S
3.2数据操纵语言(DML) 数据操纵语言是指用来查询、添加、修改 和删除数据库中数据的语句,这些语句包 括 SELECT、| NSERT、 UPDATE DELE忙E等 将在第6章详细讲解 SELECT语句的语法及 实例。 SQL SERVER2005入门与实例教程电子工业出版社2006
3.2 数据操纵语言(DML) • 数据操纵语言是指用来查询、添加、修改 和删除数据库中数据的语句,这些语句包 括SELECT、INSERT、UPDATE、 DELETE等。 • 将在第6章详细讲解SELECT语句的语法及 实例
3.2.2NERT语句 INSERT语句用于向数据库表或者视图中加入一行 数据。 INSERT语句的语法形式如下: INSERT [INTO] table or view [(column list) VALUES(data values) ·其中, table or view是指要插入新记录的表或视 图; column list是可选项,指定待添加数据的列 VALUES子句指定待添加数据的具体值。列名的 排列顺序不一定要和表定义时的顺序一致。但当 指定列名表时 VALUES子句值的排列顺序必须和 列名表中的列名排列顺序一致,个数相等,数据 类型一一对应。 SQL SERVER2005入门与实例教程电子工业出版社2006
3.2.2 INSERT语句 • INSERT语句用于向数据库表或者视图中加入一行 数据。INSERT语句的语法形式如下: INSERT [INTO] table_or_view [(column_list)] VALUES(data_values) • 其中,table_or_view是指要插入新记录的表或视 图;column_list是可选项,指定待添加数据的列; VALUES子句指定待添加数据的具体值。列名的 排列顺序不一定要和表定义时的顺序一致。但当 指定列名表时VALUES子句值的排列顺序必须和 列名表中的列名排列顺序一致,个数相等,数据 类型一一对应
3.2.2NERT语句 在进行数据插入操作时须注意以下几点: (1)必须用逗号将各个数据分开,字符型数据要用单引号 括起来。 (2)NT0子句中没有指定列名,则新插入的记录必须在每 个属性列上均有值,且 VALUES子句中值的排列顺序要和表 中各属性列的排列顺序一致 (3)将 VALUES子句中的值按照|NT0子句中指定列名的顺序 插入到表中。 (4)对于|NT0子句中没有出现的列,则新插入的记录在这 些列上将取空值,如上例的 SCORE即赋空值。但在表定义 时有№0 T NULL约束的属性列不能取空值。 SQL SERVER2005入门与实例教程电子工业出版社2006
3.2.2 INSERT语句 在进行数据插入操作时须注意以下几点: (1)必须用逗号将各个数据分开,字符型数据要用单引号 括起来。 (2)INTO子句中没有指定列名,则新插入的记录必须在每 个属性列上均有值,且VALUES子句中值的排列顺序要和表 中各属性列的排列顺序一致。 (3)将VALUES子句中的值按照INTO子句中指定列名的顺序 插入到表中。 (4)对于INTO子句中没有出现的列,则新插入的记录在这 些列上将取空值,如上例的SCORE即赋空值。但在表定义 时有NOT NULL约束的属性列不能取空值
3.2.2NERT语句 例3-5创建SC表(学生选课表),并向SC表中插入一条选 课记录(S7’,C1)。 程序清单如下: CREATE TABLE SC sno char(10)NOT NULL, cno char(2)NULL,课程编号字段 score numerical(4,1)NULL/*成绩字段 Go INSERT INTO SC (sno, cno) VALUES (3130050101, c1 Go SQL SERVER2005入门与实例教程电子工业出版社2006
3.2.2 INSERT语句 例3-5 创建SC表(学生选课表),并向SC表中插入一条选 课记录(’S7’,’C1’)。 程序清单如下: CREATE TABLE SC ( sno char(10) NOT NULL, cno char(2) NULL, /*课程编号字段*/ score numerical(4,1) NULL /*成绩字段*/ ) Go INSERT INTO SC (sno,cno) VALUES ('3130050101', 'c1') Go
3.2.2NERT语句 下面是插入与列顺序不同的数据的例子。 例3-6使用 column list及Ⅵ ALUES列表显式地指 定将被插入每个列的值 程序清单如下: CREATE TABLE T1 column 1 int column2 varchar(③30) Go INSERT T1(column 2, column 1) VALUES(This is a test, 1) SQL SERVER2005入门与实例教程电子工业出版社2006
3.2.2 INSERT语句 下面是插入与列顺序不同的数据的例子。 例3-6 使用 column_list 及 VALUES 列表显式地指 定将被插入每个列的值。 程序清单如下: CREATE TABLE T1 ( column_1 int, column_2 varchar(30)) Go INSERT T1 (column_2, column_1) VALUES ('This is a test',1)