课本的T_SQL语言

--创建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.专业代码
   
   
未完待续..
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值