594. 超过5名学生的课
有一个courses 表 ,有: student (学生) 和 class (课程)。
请列出所有超过或等于5名学生的课。
1 | 例如,表: |
Note:
学生在每个课中不应被重复计算。
1 | SELECT class |
-
SELECT DISTINCT 语句
在表中,可能会包含重复值。用关键词DISTINCT来返回唯一不同的值
SELECT DISTINCT 列名称 FROM 表名称
-
WHERE子句
如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
下面的运算符可以在WHERE子句中使用:
= <> > >= <= BETWEEN LIKE(搜索某种模式)
在某些版本的SQL中,操作符
<>
可以写为!=
引号的使用:
SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,不能使用单引号
-
ORDER BY 语句用于对结果进行排序
ORDER BY
语句用于根据指定的列对结果进行排序ORDER BY
语句默认按照升序对记录进行排序如果希望降序对记录进行排序,可以使用DESC关键字
例如: Orders表
Company OrderNumber IBM 3532 W3School 2356 Apple 4698 W3School 6953 例1:以字母顺序显示公司名称
1
SELECT Company, OrderNumber FROM Orders ORDER BY Company
结果:
Company OrderNumber Apple 4698 IBM 3532 W3School 6953 W3School 2356 例2:以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber)
1
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
结果:
Company OrderNumber Apple 4698 IBM 3532 W3School 2356 W3School 6953 例3:以逆字母顺序显示公司名称
1
SELECT Company, OrderNUmber FROM Orders ORDER BY Company DESC
结果:
Company OrderNumber W3School 6953 W3School 2356 IBM 3532 Apple 4698 例4:以逆字母顺序显示公司名称,并以数字顺序显示顺序号
1
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
结果:
Company OrderNumber W3School 2356 W3School 6953 IBM 3532 Apple 4698 -
INSERT INTO语句
用于向表格中插入新的行
INSERT INTO 表名称 VALUES(值1, 值2, …)
我们也可以指定索要插入数据的列
INSERT INTO table_name (列1, 列2, …) VALUES (值1, 值2, …)
例:“Persons”表
LastName FirstName Address City Carter Thomas Changan Street Beijing 1
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
结果:
LastName FirstName Address City Carter Thomas Changan Street Beijing Gates Bill Xuanwumen 10 Beijing 在指定的列中插入数据:
1
INSERT INTO Persons (LastName, Address) VALUES ('Wilsom', 'Champs-Elysees')
结果:
LastName FirstName Address City Carter Thomas Changan Street Beijing Gates Bill Xuanwumen 10 Beijing Wilson Champs-Elysees -
UPDATE 语句
用于修改表中的数据
INSERT 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
例子:Persons
LastName FirstName Address City Gates Bill Xuanwumen 10 Beijing Wilson Champs-Elysees 更新某一行中的一个列:为LastName 是 Wilson的人添加FirstName:
1
UPDATE Persons SET FirstName = 'Fred' WHERE LastName = 'Wilson'
结果:
LastName FirstName Address City Gates Bill Xuanwumen 10 Beijing Wilson Fred Champs-Elysees 更新某一行中的若干列:我们会修改地址(address),并添加城市名称(city):
1
UPDATE Persons SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
结果:
LastName FirstName Address City Gates Bill Xuanwumen 10 Beijing Wilson Fred Zhongshan 23 Nanjing -
DELETE 语句
删除表中的行
DELETE FROM 表名称 WHERE 列名称 = 值
删除某行:“Fred Wilson”会被删除。
1
DELETE FROM Persons WHERE LastName = 'Wilson'
结果:
LastName FirstName Address City Gates Bill Xuanwumen 10 Beijing 删除所有行:可以在不删除表的情况下删除所有行,这意味着表的结构、属性和索引都是完整的:
DELETE FROM tabel_name
或者:
DELETE * FROM tabel_name