0
点赞
收藏
分享

微信扫一扫

HELLO SQL SERVER


课程报名人数,加课程名

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

HELLO SQL SERVER_sql

三个表连接查询,多个表亦是如此

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

空值被保留了

HELLO SQL SERVER_左外连接_02

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


举报

相关推荐

0 条评论