一、请写出SELECT查询语句的完整语法格式。
答:
简单查询:
SELECT[DISTINCT]*
{字段名1,字段名2,字段名3,……}FROM表名[WHERE条件表达式1]
[GROUPBY字段名[HAVING条件表达式2]]
[ORDERBY字段名[ASC
DESC]]
[LIMIT[OFFSET]记录数];
所有字段指定:
SELECT字段名1,字段名2,……FROM表名;
(“使用星号*”)通配符代替所有字段:
SELECT*FROM表名;
查询指定字段:
带关系运算符的查询:
SELECT字段名1,字段名2,…… FROM表名 WHERE条件表达式;
带IN关键字的查询:
SELECT*
字段名1,字段名2,…… FROM表名 WHERE字段名[NOT] IN(元素1,元素2,……)
带BETWEENAND关键字的查询:
SELECT*
{字段名1,字段名2,……} FROM表名
WHERE字段名[NOT]BETWEEN值1AND值2;
空值查询:
SELECT*
字段名1,字段名2,……
FROM表名 WHERE字段名IS[NOT]NULL;
带DISTINCT关键字的查询:
SELECTDISTINCT字段名FROM表名;
DISTINCT关键字作用于多个字段:
SELECTDISTINCT字段名1,字段名2,……FROM表名;
带LIKE关键字的查询:
WHERE字段名[NOT]LIKE匹配字符串;
带AND关键字的多条件查询:
WHERE条件表达式1[……AND条件表达式n];
带OR关键字的多条件查询:
WHERE条件表达式1OR[……OR条件表达式n];
ORDERBY对查询结果进行排序:
SELECT字段名1,字段名2,…… FROM表名
ORDERBY字段名1[ASC
DESC],字段名2[ASC
DESC]……
GROUPBY对字段值进行分组查询:
GROUPBY字段名1,字段名2,……[HAVING条件表达式];
使用LIMIT限制查询结果的数量:
SELECT字段名1,字段名2,…… FROM表名
LIMIT[OFFSET,]记录数;
为表取别名:
SELECT*FROM表名[AS]别名;
为字段取别名:
SELECT字段名[AS]别名[,字段名[AS]别名,……]FROM表名;
二、现有一张学生表,表中字段有学生_ID,系_ID,性别_ID
(1)统计每个系的男女生人数
答:SELECTCOUNT(*)ASRENSHUFROM学生GROUPBY性别_ID,系_ID;
(2)统计人数在10人以上的系
答:SELECTCOUNT(*)ASRENSHU,系_IDFROM学生GROUPBY系_IDHAVINGCOUNT(*)10;