--创建student数据库;
CREATE DATABASE student
ON PRIMARY
(NAME = student_data,
FILENAME = 'E:\student_data.mdf',
SIZE = 5MB,
MAXSIZE = 20MB,
FILEGROWTH = 20%)
LOG ON
(NAME = student_log,
NAMEFILE = 'E:\student_log.ldf',
SIZE = 10MB,
MAXSIZE = 20MB,
MAXSIZE = 20MB)
COLLATE Chinese_PRC_CI_AS --中文方式排列;
GO
--切换student为当前数据库;
USE student
GO
--修改student数据库;
ALTER DATABASE student
MODIFY FILE --修改容量;
(NAME = student_data,
SIZE = 20MB)
--按比例缩小数据库大小;
DBCC SHRINKDATABASE(student, 1)
--数据库改名;
EXEC sp_renamedb 'student', 'student1'
--删除数据库;
DROP DATABASE student
--在student中新建学生表;
CREATE TABLE student.学生
(学号 char(12) CONSTRAINT pk_xh PRIMARY KEY, --学号设为主键;
姓名 char(8),
入学日期 date time,
班级代码 char(9) CONSTRAINT fk_bjdm REFERENCES 班级(班级代码)) --班级代码为班级表的外键;
--修改学生表结构;
ALTER TABLE 学生
ALTER COLUMN 家庭住址 varchar(50) --修改列;
ADD 家人姓名 varchar(20) --添加列;
DROP COLUMN 家庭住址 --删除列;
--删除学生表;
DROP TABLE 学生
--向系部表中插入数据
INSERT 系部
VALUES ('03', '数学系')
--查看表结构;
EXECUTE sp_help 专业
--更新专业为0101的学生人数;
UPDATE 学生
SET 学生.学生人数 = 入学.入学人数 - 退学.退学人数
FROM 学生, 入学, 退学
WHERE 专业代码 = '0101'
--删除表中所有的数据;
DELETE 课程注册
--删除“课程注册”名为“张斌”的课程为’0001‘的选课信息;
DELETE 课程注册
WHERE 课程注册.课程号 = '0001'
AND 学号 = (SELECT 学号
FROM 学生
WHERE 姓名 LIKE '张斌')
--清空’课程注册‘表中的数据;
TRUNCATE TABLE 课程注册
--查询语句;
SELECT sekect_list --结果集的列;
INTO new_table_name --生成新表;
FROM table_list --来源表;
WHERE search_conditions --条件
GROUP BY group_by_expression --分组;
HAVING search_conditions --结果集的附加筛选;
ORDER BY order_expression[ASC|DESC]--升序|降序排列;
--消除重复;
DISTINCT
--只返回5行;
TOP 5
--返回出生日期的年份大于等于1970且小于等于1982的姓名,学号,出生日期;
SELECT 姓名, 学号, 出生日期
FROM 学生
WHERE year(出生日期) BETWEEN 1970 AND 1982
--按成绩降序排列“0001”号课程的学生的学号;
SELECT 学号, 成绩
FROM 课程注册
WHERE 课程号 = '0001'
ORDER BY 成绩 DESC
--常用函数;
COUNT (*) --记录个数;
COUNT (列名)
SUM (*) --求和;
AVG (*) --平均值;
MAX (*) --最大值;
MIN (*) --最小值;
--查询选课人数大于等于4的课程号;
SELECT 课程号, COUNT (*) AS 选课人数
FROM 课程注册
GROUP BY 课程号
HAVING COUNT (*) >=4 --HAVING用于组,WHERE用于表;
--求总分;
SELECT *
FROM 课程注册
ORDER BY 学号
COMPUTE SUM(成绩) BY 学号
GO
--合并结果集
SELECT *
FROM 课程注册
WHERE 专业代码 = '0102'
UNION
SELECT *
FROM 课程注册
WHERE 成绩 >= 20 AND 成绩 <=79
ORDER BY 成绩 DESC
--自然连接;
SELECT 学号
FROM 学生 INNER JOIN 专业
ON 学生.专业代码 = 专业.专业代码
--自身连接;
SELECT first.教师编号, second.专业代码
FROM 教师任课 AS first JOIN 教师任课 AS second
ON first.教师编号 = second.教师编号
AND first.专业代码 != second.专业代码
未完待续..
CREATE DATABASE student
ON PRIMARY
(NAME = student_data,
FILENAME = 'E:\student_data.mdf',
SIZE = 5MB,
MAXSIZE = 20MB,
FILEGROWTH = 20%)
LOG ON
(NAME = student_log,
NAMEFILE = 'E:\student_log.ldf',
SIZE = 10MB,
MAXSIZE = 20MB,
MAXSIZE = 20MB)
COLLATE Chinese_PRC_CI_AS --中文方式排列;
GO
--切换student为当前数据库;
USE student
GO
--修改student数据库;
ALTER DATABASE student
MODIFY FILE --修改容量;
(NAME = student_data,
SIZE = 20MB)
--按比例缩小数据库大小;
DBCC SHRINKDATABASE(student, 1)
--数据库改名;
EXEC sp_renamedb 'student', 'student1'
--删除数据库;
DROP DATABASE student
--在student中新建学生表;
CREATE TABLE student.学生
(学号 char(12) CONSTRAINT pk_xh PRIMARY KEY, --学号设为主键;
姓名 char(8),
入学日期 date time,
班级代码 char(9) CONSTRAINT fk_bjdm REFERENCES 班级(班级代码)) --班级代码为班级表的外键;
--修改学生表结构;
ALTER TABLE 学生
ALTER COLUMN 家庭住址 varchar(50) --修改列;
ADD 家人姓名 varchar(20) --添加列;
DROP COLUMN 家庭住址 --删除列;
--删除学生表;
DROP TABLE 学生
--向系部表中插入数据
INSERT 系部
VALUES ('03', '数学系')
--查看表结构;
EXECUTE sp_help 专业
--更新专业为0101的学生人数;
UPDATE 学生
SET 学生.学生人数 = 入学.入学人数 - 退学.退学人数
FROM 学生, 入学, 退学
WHERE 专业代码 = '0101'
--删除表中所有的数据;
DELETE 课程注册
--删除“课程注册”名为“张斌”的课程为’0001‘的选课信息;
DELETE 课程注册
WHERE 课程注册.课程号 = '0001'
AND 学号 = (SELECT 学号
FROM 学生
WHERE 姓名 LIKE '张斌')
--清空’课程注册‘表中的数据;
TRUNCATE TABLE 课程注册
--查询语句;
SELECT sekect_list --结果集的列;
INTO new_table_name --生成新表;
FROM table_list --来源表;
WHERE search_conditions --条件
GROUP BY group_by_expression --分组;
HAVING search_conditions --结果集的附加筛选;
ORDER BY order_expression[ASC|DESC]--升序|降序排列;
--消除重复;
DISTINCT
--只返回5行;
TOP 5
--返回出生日期的年份大于等于1970且小于等于1982的姓名,学号,出生日期;
SELECT 姓名, 学号, 出生日期
FROM 学生
WHERE year(出生日期) BETWEEN 1970 AND 1982
--按成绩降序排列“0001”号课程的学生的学号;
SELECT 学号, 成绩
FROM 课程注册
WHERE 课程号 = '0001'
ORDER BY 成绩 DESC
--常用函数;
COUNT (*) --记录个数;
COUNT (列名)
SUM (*) --求和;
AVG (*) --平均值;
MAX (*) --最大值;
MIN (*) --最小值;
--查询选课人数大于等于4的课程号;
SELECT 课程号, COUNT (*) AS 选课人数
FROM 课程注册
GROUP BY 课程号
HAVING COUNT (*) >=4 --HAVING用于组,WHERE用于表;
--求总分;
SELECT *
FROM 课程注册
ORDER BY 学号
COMPUTE SUM(成绩) BY 学号
GO
--合并结果集
SELECT *
FROM 课程注册
WHERE 专业代码 = '0102'
UNION
SELECT *
FROM 课程注册
WHERE 成绩 >= 20 AND 成绩 <=79
ORDER BY 成绩 DESC
--自然连接;
SELECT 学号
FROM 学生 INNER JOIN 专业
ON 学生.专业代码 = 专业.专业代码
--自身连接;
SELECT first.教师编号, second.专业代码
FROM 教师任课 AS first JOIN 教师任课 AS second
ON first.教师编号 = second.教师编号
AND first.专业代码 != second.专业代码
未完待续..