SQL_Server_2005数据库简明教程-第3章_Transact-SQL语言
文本预览下载声明
第3章 Transact-SQL语言 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 like0-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) 3.1 数据定义语言 例3-3 删除S表 程序清单如下: DROP table S 3.2 数据操纵语言(DML) 数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等。 将在第6章详细讲解SELECT语句的语法及实例。 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.2 INSERT语句 在进行数据插入操作时须注意以下几点: (1)必须用逗号将各个数据分开,字符型数据要用单引号括起来。 (2)INTO子句中没有指定列名,则新插入的记录必须在每个属性列上均有值,且VALUES子句中值的排列顺序要和表中各属性列的排列顺序一致。 (3)将VALUES子句中的值按照INTO子句中指定列名的顺序插入到表中。 (4)对于INTO子句中没有出现的列,则新插入的记录在这些列上将取空值,如上例的SCORE即赋空值。但在表定义时有NOT NULL约束的属性列不能取空值。 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.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) 3.2.2 INSERT语句 插入多行数据的语法格式为: INSERT INTO table_or_view [(column_list)] 子查询 例3-7 求出各位学生的平均成绩,把结果存放在新表AVGSCORE中。 程序清单如下: /*首先建立新表AVGSCORE,用来存放学号和学生的平均成绩。*/ CREATE TABLE AVGSCORE (SNO CHAR(10), AVGSCORE SMALLINT)
显示全部