课程报名人数,加课程名
SELECT
cs.CourseID AS 课程ID,
COUNT(*) AS 选择人数,
(SELECT c2.NAME FROM Course c2 WHERE c2.ID = cs.CourseID)AS 课程名称
FROM CourseSelection cs
GROUP BY cs.CourseID
三个表连接查询,多个表亦是如此
SELECT
s.ID AS '学生ID',
s.NAME,
cs.CourseID AS '课程ID',
c.NAME
FROM Student s LEFT JOIN CourseSelection cs
ON s.ID = cs.SID
LEFT JOIN Course c
ON c.ID = cs.CourseID
左外连接 可记为保留左侧不匹配的
SELECT
s.ID AS '学生ID',
s.NAME,
cs.CourseID AS '课程ID'
FROM Student s LEFT JOIN CourseSelection cs
ON s.ID = cs.SID
空值被保留了
CourseSelection插入数据来自查询别的表的结果(中文前面加N)
INSERT INTO CourseSelection (SID,CourseID)
VALUES((SELECT ID FROM Student WHERE NAME = N'琴'),(SELECT ID FROM Course WHERE NAME = N'web开发'))
SQL server中似乎不能光JOIN使用后面要接on
交叉连接笛卡尔积后面没有判断条件
SELECT * FROM Student CROSS JOIN Course
删除 Id的约束
ALTER TABLE Student
DROP CONSTRAINT ID
为ID添加默认值的约束
ALTER TABLE Student ADD CONSTRAINT ID DEFAULT (SUBSTRING(cast(RAND() AS char(18)),3,16)) FOR ID
更改 ID 约束 默认值
ALTER TABLE JWGL.dbo.Student DROP CONSTRAINT ID GO
ALTER TABLE JWGL.dbo.Student ADD DEFAULT (SUBSTRING(cast(RAND() AS char(18)),3,16)) FOR ID GO
ALTER TABLE Student ALTER COLUMN NAME NCHAR(10) NOT NULL
更改 CLASS为Chinese_PRC_CI_AS collate 可以输入中文 前面也得加N 服!
ALTER TABLE Student
ALTER COLUMN CLASS char(16) COLLATE Chinese_PRC_CI_AS NULL
INSERT INTO Student (NAME,CLASS)
VALUES(N'阿萨德',N'商店')
添加列SEX 使用中文
ALTER TABLE Student
ADD SEX char(2) COLLATE Chinese_PRC_CI_AS NULL
添加约束 男或女,不加N验证不通过,服!
ALTER TABLE Student
ADD CONSTRAINT SEX CHECK(SEX = N'男' Or SEX = N'女')
删除SEX的约束
ALTER TABLE Student
DROP CONSTRAINT SEX