购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.2 数据操作语句

数据操作语句(Data Manipulation Language,DML)是使用户能够查询数据库及操作已有数据库中数据的语句,其中包括数据库插入语句、数据更改语句、数据删除语句和数据查询语句等。本节将介绍这些内容。

4.2.1 数据插入INSERT语句

向已创建好的数据表中插入记录,可以一次插入一条记录,也可以一次插入多条记录。插入表中的记录中的值必须符合各个字段值数据类型及相应的约束。INSERT语句基本语法格式如下:

     INSERT INTO table_name ( column_list )
     VALUES (value_list);

主要参数介绍如下:

提示

使用该语句时字段列和数据值的数量必须相同,value_list中的这些值可以是DEFAULT、NULL或者是表达式。DEFAULT表示插入该列在定义时的默认值;NULL表示插入空值;表达式将插入表达式计算之后的结果。

在演示插入操作之前,将数据库的名称company重新修改为test_db,语句如下:

     ALTER DATABASE company
     MODIFY NAME= test_db

准备一张数据表,这里定义名称为teacher的表,可以在test_db数据库中创建该数据表,创建表的语句如下:

     CREATE  TABLE  teacher
     (
     id       INT  NOT NULL PRIMARY KEY,
     name    VARCHAR(20)  NOT NULL ,
     birthday  DATE ,
     sex      VARCHAR(4) ,
     cellphone VARCHAR(18)
     );

执行操作后刷新表节点,即可看到新添加的teacher表,如图4-2所示。

【例4.8】向teacher表中插入一条新记录,输入语句如下。

     INSERT INTO teacher VALUES(1, '张三', '1978-02-14',
'男', '0018611') --插入一条记录
     SELECT * FROM teacher

执行语句后,结果如图4-3所示。

插入操作成功,可以从teacher表中查询出一条记录。

图4-2 添加teacher表

图4-3 向teacher表中插入一条记录

【例4.9】向teacher表中插入多条新记录,T-SQL代码如下。

     SELECT * FROM teacher
     INSERT INTO teacher
     VALUES (2, '李四', '1978-11-21','女', '0018624') ,
     (3, '王五','1976-12-05','男', '0018678') ,
     (4, '赵纤','1980-6-5','女', '0018699') ;
     SELECT * FROM teacher

执行结果如图4-4所示。

图4-4 向teacher表中插入多条记录

对比插入前后的查询结果,可以看到现在表中已经多了3条记录,插入操作成功。

4.2.2 数据修改UPDATE语句

表中有数据之后,接下来可以对数据进行更新操作。SQL Server使用UPDATE语句更新表中的记录,可以更新特定的行或者同时更新所有的行。UPDATE语句的基本语法结构如下:

     UPDATE table_name
     SET column_name1 = value1,column_name2=value2,……,column_nameN=valueN
     WHERE search_condition

column_name1,column_name2,……,column_nameN为指定更新的字段的名称;value1,value2,……,valueN为相对应的指定字段的更新值;condition指定更新的记录需要满足的条件。更新多个列时,每个“列=值”对之间用逗号隔开,最后一列之后不需要逗号。

1. 指定条件修改

【例4.10】在teacher表中,更新id值为2的记录,将birthday字段值改为‘1980-8-8’,将cellphone字段值改为‘0018600’,输入语句如下。

     SELECT * FROM teacher WHERE id =1;
     UPDATE teacher
     SET birthday = '1980-8-8',cellphone='0018600' WHERE id = 1;
     SELECT * FROM teacher WHERE id =1;

执行前后的结果如图4-5所示。对比前后的查询结果,可以看到更新指定记录成功。

2. 修改表中所有记录

【例4.11】在teacher表中,将所有老师的电话都修改为‘01008611’,输入语句如下。

     SELECT * FROM teacher;
     UPDATE teacher SET cellphone='01008611';
     SELECT * FROM teacher;

代码执行后的结果如图4-6所示。

图4-5 指定条件修改记录

图4-6 同时修改teacher表中所有记录的cellphone字段

由结果可以看到,现在表中所有记录的cellphone字段都有相同的值,修改操作成功。

4.2.3 数据删除DELETE语句

数据的删除将删除表的部分或全部记录,删除时可以指定删除条件,从而删除一条或多条记录;如果不指定删除条件,DELETE语句将删除表中所有的记录,清空数据表。DELETE语句的基本语法格式如下:

     DELETE FROM table_name
     [WHERE condition]

主要参数介绍如下:

1. 按指定条件删除一条或多条记录

【例4.12】删除teacher表中id等于1的记录,输入语句如下。

     DELETE FROM teacher WHERE id=1;
     SELECT * FROM teacher WHERE id=1;

执行结果如图4-7所示。

图4-7 按指定条件删除一条记录

由结果可以看到,代码执行之后,SELECT语句的查询结果为空,删除记录成功。

2. 删除表中所有记录

使用不带WHERE子句的DELETE语句,可以删除表中的所有记录。

【例4.13】删除teacher表中所有记录,输入语句如下。

     SELECT * FROM teacher;
     DELETE FROM teacher;
     SELECT * FROM teacher;

执行结果如图4-8所示。

图4-8 删除表中所有记录

对比删除前后的查询结果,可以看到,执行DELETE语句之后,表中的记录被全部删除,所以第二条SELECT语句的查询结果为空。

4.2.4 数据查询SELECT语句

对于数据库管理系统来说,数据查询是执行频率最高的操作,是数据库中非常重要的部分。T-SQL中使用SELECT语句进行数据查询,SELECT语句的基本语法结构如下:

     SELECT [ALL | DISTINCT] {* | <字段列表>}
     FROM  table_name | view_name
     [WHERE <condition>]
     [GROUP BY <字段名>] [HAVING <expression> ]
     [ORDER BY <字段名>] [ASC | DESC]

主要参数介绍如下:

为了演示本节介绍的内容,可以在指定的数据库中建立下面的数据表,并插入记录数据。

执行语句后,查看stu_info表的数据,结果如图4-9所示。

图4-9 创建stu_info表

【例4.14】查询stu_info表中的所有学生信息,输入语句如下。

     SELECT * FROM stu_info;

执行结果如图4-10所示。可以看到,使用星号(*)通配符时,将返回所有列,列按照定义表时的顺序显示。

有时候,并不需要数据表中的所有字段值,此时可以指定需要查询的字段名称,这样不但显示的结果更清晰,而且能提高查询的效率。

【例4.15】查询stu_info数据表中学生的姓名和成绩,输入语句如下。

     SELECT s_name, s_score FROM stu_info;

代码执行结果如图4-11所示。

图4-10 查询stu_info表中所有学生信息

图4-11 查询stu_info数据表中学生的姓名和成绩字段 3aAd9zFzdv7/IcYCMWykkFypjPvtcduyKGNNc46LSVndWa0afzqChZFOGGNvfHXF

点击中间区域
呼出菜单
上一章
目录
下一章
×