📄 04.txt
字号:
SELECT *
FROM 选课表
WHERE NOT 分数<=59
【例4-43】查询“计算机系”和“国贸系”或者“女生”信息。
SELECT *
FROM 学生表
WHERE 院系名称='计算机系'AND 院系名称='国贸系' OR 性别='女'
【例4-44】查询“计算机系”的学生或者“国贸系”的“女生”信息。
SELECT *
FROM 学生表
WHERE 院系名称='计算机系'OR 院系名称='国贸系' AND 性别='女'
【例4-45】查询“计算机系”或者“国贸系”的“女生”信息。
SELECT *
FROM 学生表
WHERE (院系名称='计算机系'OR 院系名称='国贸系') AND 性别='女'
【例4-46】查询分数在0到59的学生信息。
SELECT *
FROM 选课表
WHERE 分数BETWEEN 0 AND 59
【例4-47】查询分数不在0到59的学生信息。
SELECT *
FROM 选课表
WHERE 分数NOT BETWEEN 0 AND 59
【例4-48】不使用IN子句查询计算机系或者国贸系学生。
SELECT *
FROM 学生表
WHERE 院系名称='计算机系' OR 院系名称='国贸系'
【例4-49】使用IN子句查询“计算机系”或者“国贸系”学生。
SELECT *
FROM 学生表
WHERE 院系名称IN ('计算机系','国贸系')
【例4-50】使用NOT IN子句查询非“计算机系”或者“国贸系”学生。
SELECT *
FROM 学生表
WHERE 院系名称NOT IN ('计算机系','国贸系')
【例4-51】查找“pubs”数据库中“authors”表的电话号码中以415开头的电话
SELECT au_id,au_fname+' '+au_lname AS name,phone
FROM authors
WHERE phone LIKE '415%'
【例4-52】查找“pubs”数据库中“authors”表的电话号码中不以415开头的电话
SELECT au_id,au_fname+' '+au_lname AS name,phone
FROM authors
WHERE phone NOT LIKE '415%'
【例4-53】以“院系名称”分组,并统计各系的人数。
SELECT 院系名称,COUNT(学号) AS 人数
FROM 学生表
GROUP BY 院系名称
【例4-54】以“课程号”分组,并统计各门课程的平均分。
SELECT 课程号, AVG(分数) AS 平均分
FROM 选课表
GROUP BY 课程号
【例4-55】以“课程号”分组,并统计各门课程的平均分,同时给出汇总行。
SELECT 课程号, AVG(分数) AS 平均分
FROM 选课表
GROUP BY 课程号
WITH CUBE
【例4-56】以“课程号”分组,并统计各门课程的平均分,并且只查询平均分大于80分的行。
SELECT 课程号, AVG(分数) AS 平均分
FROM 选课表
GROUP BY 课程号
HAVING AVG(分数)>80
【例4-57】以“课程号”分组,并统计各门课程的平均分,并且只查询课程号不为01001和01002的行。
SELECT 课程号, AVG(分数) AS 平均分
FROM 选课表
GROUP BY 课程号
HAVING 课程号 NOT IN(01001,01002)
【例4.58】查询学生的分数情况,查询的各列来自于三个表。
SELECT 学生表.学号,学生表.姓名,课程表.课程名,选课表.分数
FROM 学生表
INNER JOIN 选课表 ON (学生表.学号=选课表.学号)
INNER JOIN 课程表 ON (课程表.课程号=选课表.课程号)
例4-59】查询学生表中的学号和姓名以及该生的分数。
SELECT 学生表.学号,学生表.姓名,选课表.分数
FROM 学生表
LEFT OUTER JOIN 选课表ON (学生表.学号=选课表.学号)
【例4-60】查询课程表和选课表中相匹配的内容,使用右外连接。
SELECT 课程表.课程号,课程表.课程名,选课表.分数
FROM 课程表
RIGHT OUTER JOIN 选课表 ON (课程表.课程号=选课表.课程号)
【例4-61】查询课程表和选课表的交叉连接。
SELECT 课程表.课程号,课程表.课程名,选课表.分数
FROM 课程表
CROSS JOIN 选课表
【例4-62】对“teacher”和“employee”两个表进行UNION查询
USE example
SELECT * FROM teacher
UNION
SELECT * FROM employee
【例4-63】查询和“张利”同学在同一个院系的所有的学生的基本信息。
SELECT *
FROM 学生表
WHERE 院系名称=(
SELECT 院系名称
FROM 学生表
WHERE 姓名='张利')
【例4-64】查询选课表中课程号为“02002”的分数比学号为“20050101”低的信息。
SELECT *
FROM 选课表
WHERE 分数<(
SELECT 分数
FROM 选课表
WHERE 学号='20050101' AND 课程号='01002')
AND 课程号='01002'
【例4-65】查询学生分数在80分以上的学生的“学号”、“姓名”和所在“院系名称”。
SELECT 学生表.学号,学生表.姓名,学生表.院系名称
FROM 学生表
WHERE 学生表.学号 IN(
SELECT 选课表.学号
FROM 选课表
WHERE 选课表.分数>80)
【例4-66】查询选修课程号“01002”的所有的学生的信息。
SELECT 学生表.学号,学生表.姓名,学生表.院系名称
FROM 学生表
WHERE 学生表.学号 = ANY(
SELECT 选课表.学号
FROM 选课表
WHERE 选课表.课程号='01002')
【例4-67】查询选修课程号“01002”的所有的学生的信息。
SELECT *
FROM 学生表
WHERE EXISTS(
SELECT 选课表.学号
FROM 选课表
WHERE 选课表.课程号='01002'
AND 学生表.学号=选课表.学号)
【例4-68】查询选修“C语言”的所有的学生的信息。
SELECT 学生表.学号,学生表.姓名,学生表.院系名称
FROM 学生表
WHERE 学生表.学号IN(
SELECT 选课表.学号
FROM 选课表
WHERE 选课表.课程号=(
SELECT 课程表.课程号
FROM 课程表
WHERE 课程表.课程名='C语言')
)
【例4-69】查询学生分数在80分以上的所有的学生的“学号”、“姓名”和所在“院系名称”。
SELECT DISTINCT 学生表.学号,学生表.姓名,学生表.院系名称
FROM 学生表
JOIN 选课表ON 学生表.学号=选课表.学号
WHERE 选课表.分数>80
【例4-70】查询选修“C语言”的所有的学生的信息。
SELECT 学生表.学号,学生表.姓名,学生表.院系名称
FROM 学生表
JOIN 选课表ON 学生表.学号=选课表.学号
JOIN 课程表ON 课程表.课程号=选课表.课程号
WHERE 课程表.课程名='C语言'
【例4-71】向学生表插入一个学生信息。
INSERT INTO 学生表(学号,姓名,性别,院系名称)
VALUES('20050302','李婷','女','国贸系')
【例4-72】向学生表中插入一条记录。
INSERT INTO 学生表
VALUES('20050306','赵莘','男',
'1985-6-23 0:00:00','2005-8-10 0:00:00',
'国贸系',NULL)
【例4-73】向学生表中插入一条记录。
INSERT INTO 学生表
( 学号,姓名,性别,院系名称,出生日期,入学日期)
VALUES(20050204,'赵勤','女','国贸系',
'1985-12-03 0:00:00','2005-8-10 0:00:00'
)
【例4-74】创建“男生情况表”。
CREATE TABLE 男生情况表
(学号varchar(12) NOT NULL,
姓名nchar(10) NOT NULL,
性别char(2) NULL,
出生日期smalldatetime NULL,
入学日期smalldatetime NULL,
院系名称varchar(20) NULL,
备注text NULL )
【例4-75】将学生表中所有男生的信息存储到“男生情况表”中。
INSERT INTO 男生情况表
SELECT *
FROM 学生表
WHERE 性别='男'
【例4-76】创建一个成绩表,包含四列“学号”、“姓名”、“科目”和“成绩”。
CREATE TABLE 成绩表
(学号varchar(12)NOT NULL,
姓名nchar(20)NOT NULL,
科目 varchar(20)NOT NULL,
成绩tinyint NULL
)
【例4-77】将 “学生表”“课程表”“选课表”的相关匹配信息联合起来,并将前面100条记录存储在“成绩表”中。
INSERT TOP (100)
INTO 成绩表
SELECT 学生表.学号,学生表.姓名,课程表.课程名,选课表.分数
FROM 学生表
JOIN 选课表ON 学生表.学号=选课表.学号
JOIN 课程表ON 课程表.课程号=选课表.课程号
【例4-78】将学生表中学号为“20050202”的学生姓名改为“张纯”。
UPDATE 学生表
SET 姓名='张纯'
WHERE 学号='20050202'
【例4-79】修改学号为“20050306”的学生信息。
UPDATE 学生表
SET 学号='20050206',姓名='魏海平',性别='男',院系名称='企管系'
WHERE 学号='20050306'
【例4-80】将“选课表”所有学生分数乘以0.8后存储在选课表中。
UPDATE 选课表
SET 分数=分数*0.8
【例4-81】将“选课表”前20个学生分数乘以1.25后存储在选课表中。
UPDATE TOP (20) 选课表
SET 分数=分数*1.25
【例4-82】将学号为“20050304”的学生信息从学生表中删除。
DELETE
FROM 学生表
WHERE 学号='2005030
【例4-83】将“选课表”中低于60分的记录删除。
DELETE
FROM 选课表
WHERE 分数<60
【例4-84】删除“实例数据库”中“选课表”的所有记录。
USE 实例数据库
DELETE
FROM 选课表
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -