SQL Server 应用

创建表的时候添加约束

CREATE TABLE Test(
	id uniqueidentifier  NOT NULL DEFAULT (newid()),
	num int,
	CONSTRAINT P_K_C PRIMARY KEY (id),
	CONSTRAINT NUM_CHECK CHECK (num BETWEEN 0 and 10)
)

创建表之后添加约束

ALTER TABLE Test 
--删除约束
--DROP CONSTRAINT P_K_ID
--添加主键约束
ADD CONSTRAINT P_K_ID PRIMARY KEY(id)
--OR
ADD PRIMARY KEY(id) 

添加外键依赖

/*create table test1 (
id int primary key not null
)*/

ALTER TABLE Test 
ADD CONSTRAINT FK_NUM FOREIGN KEY (num) REFERENCES test1(id)

外键必须是另一个表的主键或后选键

添加约束默认值

ALTER TABLE test 
ADD CONSTRAINT add_C_auto_id DEFAULT (newid()) for ID
[添加约束 约束名 约束语句 for 哪个字段]

清空表 TRUNCATE

TRUNCATE TABLE test

查询学生的课程的平均分

SELECT 
AVG(GRADE) 平均成绩
FROM CourseSelection cs 
WHERE SID  = (SELECT ID 
FROM Student s 
Where NAME = N'宏斌')

在这里插入图片描述

查询男同学和女同学的平局分

两个表等值连接然后按性别分组,avg求平均值

SELECT
s.SEX ,
AVG(cs.GRADE) 平均分
FROM Student s 
INNER JOIN CourseSelection cs 
ON s.ID  = cs.SID 
GROUP BY s.SEX 

在这里插入图片描述
课程的学习人数,平均成绩

SELECT 
c.ID ,
COUNT(c.ID) AS 课程人数,
AVG(cs.GRADE) 平均成绩
FROM Course c ,Student s ,CourseSelection cs 
where c.ID = cs.CourseID AND s.ID = cs.SID 
GROUP BY c.ID 

在这里插入图片描述

关系代数表达

在这里插入图片描述

检索年龄大于20的女性的S#和SNAME
∏S#, SNAME (δAGE >20∧ SEX=’女’(S))
SELECT S#,SNAME FROM S WHERE AGE > 20 AND SEX = '女'

∏ 相当于 select xxx
δ 的结果是完整的元素是,符合δ条件的 ∏ 从中筛选要的

猜你喜欢

转载自blog.csdn.net/printf_hello/article/details/115009695