
SQL语言:结构化查询语言,是操作关系数据库的工业标准语言。该语言是既可以单独执行,直接操作数据库,也可以嵌入到其他语言中执行。
数据定义:包含用来定义和管理数据库以及库对象的语句。
数据操纵:包含了用来查询、添加、修改和删除数据库中数据的语句。
数据控制:包含了用来设置或更改数据库用户或角色权限等的语句

数据操纵语言的格式:

数据操纵语言示例:我们以成绩管理系统为例。回顾一下第五节的E-R模型和关系数据模型。

例1:查询“学生”表的所有学生的所有信息
SELECT * FROM 学生
例2:查询“学生”表的前两条条记录
SELECT TOP 2 * FROM 学生
例3:显示“学生”表中的前50%的记录
SELECT TOP 50 PERCENT * FROM 学生
例4:从“选修”表查询选修了课程的学生学号(去除重复)
SELECT DISTINCT 学号 FROM 选修
例5:查询“学生”表中的所有男生信息
SELECT *
FROM 学生
WHERE 性别="男"
例6:查询“学生”表中所有姓张的学生记录
SELECT *
FROM 学生
WHERE 姓名 LIKE "张*"

例7:查询“学生”表中姓名, 性别, 年龄信息
SELECT 姓名, 性别, Year(Date())-Year(出生日期) as 年龄
FROM 学生
例8:查询“学生”表中所有入学成绩在590到620之间的学生记录
SELECT *
FROM 学生
WHERE 入学成绩>=590 AND 入学成绩<=620 或 WHERE 入学成绩 BETWEEN 590 AND 620
例9:查询“学生”表的所有男生信息,并按入学成绩从高到低排列
SELECT *
FROM 学生
WHERE 性别="男"
ORDER BY 入学成绩 DESC
注:ASC —— 按升序排序;DESC —— 按降序排序

例10:查询“学生”表的最高入学成绩和最低入学成绩。
SELECT MAX(入学成绩) ,MIN(入学成绩)
FROM 学生
或:
SELECT MAX(入学成绩) AS 最高分 ,MIN(入学成绩) AS 最低分
FROM 学生
注:其他常用聚合函数:计数(COUNT);求和(SUM);求平均(AVG)
例11:“选修”表,统计至少选修了两门课程的学生平均成绩和考试门数。
SELECT 学号, AVG(成绩) AS 平均成绩 , COUNT(*) AS 考试门数
FROM 选修
GROUP BY 学号
HAVING COUNT(*) >= 2 // count(学号)
例12:查询所有学生的学号、姓名、所选课程的名称及课程成绩。
SELECT 学生.学号, 姓名, 课程名称, 成绩
FROM 学生, 课程, 选修
WHERE 学生.学号 = 选修.学号 AND 选修.课程号 = 课程.课程号

(1)INSERT语句用于向表中插入新的记录
格式:
INSERT INTO 表名 [ (列名1, 列名2, ..., 列名n) ]
VALUES (值1, 值2, ..., 值n)
例13:向“课程”表添加一门新的课程,课程号为“009”,课程名称为“结构力学”,学分为3。
INSERT INTO 课程(课程号,课程名称,学分)
VALUES("009","结构力学",3)
或:
INSERT INTO 课程
VALUES("009","结构力学",3)

(2)DELETE语句用于删除表中满足指定条件的记录
格式:
DELETE FROM 表名 [ WHERE 删除条件 ]
例14:删除课程号为“009”的课程记录
DELETE FROM 课程 WHERE 课程号="009"
例15:删除名称为“表1”的表中的所有记录。
DELETE FROM 表1
(3)UPDATE语句用于修改(更新)表中的数据
格式:
UPDATE 表名
SET 列名1=值1 [, 列名2=值2, ..., 列名n=值n]
[ WHERE 更新条件 ]
