SQL 语句(二)--------------数据查询(简单查询)
来源:互联网 发布:阿里云汽车荣威rx5 编辑:程序博客网 时间:2024/05/22 12:50
SELECT 学号,姓名
FROM 学生选课.学生;
SELECT 姓名,学号,院系号
FROM 学生选课.学生;
SELECT *
FROM 学生选课.学生;
ALTER TABLE 学生选课.学生 ADD COLUMN 年龄 SMALLINT;
SELECT 姓名,2017-年龄/*SELECT子句的<目标列表达式>不仅可以是表中的属性列也可以是表达式,字符串常量,函数等*/
FROM 学生选课.学生;
SELECT 姓名,'Year of Birth:',2017-年龄,LOWER(院系号)
FROM 学生选课.学生;
/*指定列名*/
SELECT 姓名 NAME,2017-年龄 BIRTH,'Year of Birth:' BIRTHDAY, LOWER(院系号) DEPARTMENT
FROM 学生选课.学生;
SELECT *
FROM 学生选课.选课;
SELECT 课程号
FROM 学生选课.选课;
/*去掉重复行*/
SELECT DISTINCT 课程号
FROM 学生选课.选课;
/*****************************比较大小************************************/
/*查询所有年龄在20岁以下的学生姓名和年龄*/
SELECT 姓名,年龄
FROM 学生选课.学生
WHERE 年龄>20;
/*查询考试成绩70分以下的学生学号*/
SELECT DISTINCT 学号 /*使用distinct,当一个学生有多门课不及格,他的学号也只列一次*/
FROM 学生选课.选课
WHERE 成绩>70;
/*****************************确定范围************************************/
/*查询年龄在20-23岁(包括20,23)之间的学生的姓名、系别和年龄*/
SELECT 姓名,院系号,年龄
FROM 学生选课.学生
WHERE 年龄 BETWEEN 20 AND 23;
/*查询年龄不在20-22岁之间的学生姓名、系别和年龄*/
SELECT 姓名,院系号,年龄
FROM 学生选课.学生
WHERE 年龄 NOT BETWEEN 20 AND 22;
/*****************************确定集合************************************/
/*查询经济学院、法学院、信息学院学生的姓名和年龄*/
SELECT 姓名,年龄
FROM 学生选课.学生
WHERE 院系号 IN('06001','06002','06003');/*谓词in 可以用来查找属性值属于指定集合的元组*/
/*查询既不是经济学院也不是法学院的学生姓名和年龄*/
SELECT 姓名,年龄
FROM 学生选课.学生
WHERE 院系号 NOT IN('06001','06002');
/*****************************字符匹配************************************/
/*查询学号为020003的学生的消息情况*/
SELECT *
FROM 学生选课.学生
WHERE 学号 LIKE '020003';/*等价于 学号='020003';*/
/*查询所有姓宋的学生的姓名和学号、年龄*/
SELECT 姓名,学号,年龄
FROM 学生选课.学生
WHERE 姓名 LIKE '宋%';/*通配符‘%’代表任意长度(可以为0)的字符串。例如a%b标识以a开头,以b结尾的任意长度的字符串*/
/*查询姓‘欧阳’且全名为3个汉字的学生的姓名*/
SELECT 姓名
FROM 学生选课.学生
WHERE 姓名 LIKE '欧阳_';/*数据库字符集未ASCII时一个汉字需要两个'_',当字符集为GBK时只需要一个*/
/*查询名字中第二个为‘阳’字的学生的姓名和学号*/
SELECT 姓名,学号
FROM 学生选课.学生
WHERE 姓名 LIKE '_阳%';
/*查询所有不姓陈的学生姓名*/
SELECT 姓名
FROM 学生选课.学生
WHERE 姓名 NOT LIKE '陈%';
/*查询'DB_Design'的课程号和学分*/
SELECT 课程号,学分
FROM 学生选课.课程
WHERE 名称 LIKE 'DB\_Design' ESCAPE '\';/*ESCAPE'\'表示'\'为换码字符。这样匹配串中紧跟在'\'后面的字符'_'不再具有通配符的含义*/
/*查询以'DB_'开头,且倒数第三个字符为'i'的课程的详细情况*/
SELECT *
FROM 学生选课.课程
WHERE 名称 LIKE 'DB\_%i__' ESCAPE '\';
/*****************************涉及空值的查询************************************/
/*查询没有先修课的课程*/
SELECT *
FROM 学生选课.课程
WHERE 先修课 IS NULL;
/*查询所有有先修课的课程*/
SELECT *
FROM 学生选课.课程
WHERE 先修课 IS NOT NULL;
/*****************************多重条件查询************************************/
/*查询经济学院年龄大于21岁的学生信息*/
SELECT *
FROM 学生选课.学生
WHERE 院系号='06001' and 年龄>'21';
/*查询经济学院、法学院、信息学院学生的姓名和年龄*/
SELECT 姓名,年龄
FROM 学生选课.学生
WHERE 院系号='06001' or 院系号= '06002' or 院系号 ='06003';
SELECT 姓名,年龄
FROM 学生选课.学生,学生选课.院系
WHERE 学生.院系号=院系.院系号 and (名称='经济学院' or 名称='法学院' or 名称='信息学院')
ORDER BY 年龄 DESC;
/*****************************ORDER BY************************************/
/*用户可以用order by 子句对查询的结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,缺省值为升序*/
/*查询选修了0003号课程的学生的学号及其成绩,查询结果按分数的降序排列*/
SELECT 学号,成绩
FROM 学生选课.选课
WHERE 课程号='0003'
ORDER BY 成绩 DESC;
/*查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列*/
SELECT *
FROM 学生选课.学生
ORDER BY 院系号 ASC,年龄 DESC;
/*****************************聚集函数************************************/
/*注意:WHERE子句中不能用聚集函数作为条件表达式*/
/*查询学生总人数*/
SELECT COUNT(*)
FROM 学生选课.学生;
/*查询选修了课程的学生人数*/
SELECT COUNT(DISTINCT 学号)
FROM 学生选课.选课;
/*查询0003号课程的学生平均成绩*/
SELECT AVG(成绩)
FROM 学生选课.选课
WHERE 课程号='0003';
/*查询选'0003'号课程的学生的最高分*/
SELECT MAX(成绩)
FROM 学生选课.选课
WHERE 课程号='0003';
/*查询学生020001选修课程的总学分*/
SELECT SUM(学分)
FROM 学生选课.选课,学生选课.课程
WHERE 学号='020001' AND 选课.课程号=课程.课程号;
/*****************************GROUP BY************************************/
/*求各个课程及相应的选课人数*/
SELECT 课程号,COUNT(学号)
FROM 学生选课.选课
GROUP BY 课程号;/*该语句对查询结果按课程号分组,所有具有相同课程号的元组为一组,然后对每一组作用聚集函数COUNT计算,求得该组的学生人数*/
/*查询选修了3门以上课程的学生学号*/
SELECT 学号
FROM 学生选课.选课
GROUP BY 学号
HAVING COUNT(*)>3;
/*WHERE子句作用在基本表或视图,从中选择满足条件的元组。*/
/*HAVING短语作用于group之后的组,从中选择满足条件的组*/
FROM 学生选课.学生;
SELECT 姓名,学号,院系号
FROM 学生选课.学生;
SELECT *
FROM 学生选课.学生;
ALTER TABLE 学生选课.学生 ADD COLUMN 年龄 SMALLINT;
SELECT 姓名,2017-年龄/*SELECT子句的<目标列表达式>不仅可以是表中的属性列也可以是表达式,字符串常量,函数等*/
FROM 学生选课.学生;
SELECT 姓名,'Year of Birth:',2017-年龄,LOWER(院系号)
FROM 学生选课.学生;
/*指定列名*/
SELECT 姓名 NAME,2017-年龄 BIRTH,'Year of Birth:' BIRTHDAY, LOWER(院系号) DEPARTMENT
FROM 学生选课.学生;
SELECT *
FROM 学生选课.选课;
SELECT 课程号
FROM 学生选课.选课;
/*去掉重复行*/
SELECT DISTINCT 课程号
FROM 学生选课.选课;
/*****************************比较大小************************************/
/*查询所有年龄在20岁以下的学生姓名和年龄*/
SELECT 姓名,年龄
FROM 学生选课.学生
WHERE 年龄>20;
/*查询考试成绩70分以下的学生学号*/
SELECT DISTINCT 学号 /*使用distinct,当一个学生有多门课不及格,他的学号也只列一次*/
FROM 学生选课.选课
WHERE 成绩>70;
/*****************************确定范围************************************/
/*查询年龄在20-23岁(包括20,23)之间的学生的姓名、系别和年龄*/
SELECT 姓名,院系号,年龄
FROM 学生选课.学生
WHERE 年龄 BETWEEN 20 AND 23;
/*查询年龄不在20-22岁之间的学生姓名、系别和年龄*/
SELECT 姓名,院系号,年龄
FROM 学生选课.学生
WHERE 年龄 NOT BETWEEN 20 AND 22;
/*****************************确定集合************************************/
/*查询经济学院、法学院、信息学院学生的姓名和年龄*/
SELECT 姓名,年龄
FROM 学生选课.学生
WHERE 院系号 IN('06001','06002','06003');/*谓词in 可以用来查找属性值属于指定集合的元组*/
/*查询既不是经济学院也不是法学院的学生姓名和年龄*/
SELECT 姓名,年龄
FROM 学生选课.学生
WHERE 院系号 NOT IN('06001','06002');
/*****************************字符匹配************************************/
/*查询学号为020003的学生的消息情况*/
SELECT *
FROM 学生选课.学生
WHERE 学号 LIKE '020003';/*等价于 学号='020003';*/
/*查询所有姓宋的学生的姓名和学号、年龄*/
SELECT 姓名,学号,年龄
FROM 学生选课.学生
WHERE 姓名 LIKE '宋%';/*通配符‘%’代表任意长度(可以为0)的字符串。例如a%b标识以a开头,以b结尾的任意长度的字符串*/
/*查询姓‘欧阳’且全名为3个汉字的学生的姓名*/
SELECT 姓名
FROM 学生选课.学生
WHERE 姓名 LIKE '欧阳_';/*数据库字符集未ASCII时一个汉字需要两个'_',当字符集为GBK时只需要一个*/
/*查询名字中第二个为‘阳’字的学生的姓名和学号*/
SELECT 姓名,学号
FROM 学生选课.学生
WHERE 姓名 LIKE '_阳%';
/*查询所有不姓陈的学生姓名*/
SELECT 姓名
FROM 学生选课.学生
WHERE 姓名 NOT LIKE '陈%';
/*查询'DB_Design'的课程号和学分*/
SELECT 课程号,学分
FROM 学生选课.课程
WHERE 名称 LIKE 'DB\_Design' ESCAPE '\';/*ESCAPE'\'表示'\'为换码字符。这样匹配串中紧跟在'\'后面的字符'_'不再具有通配符的含义*/
/*查询以'DB_'开头,且倒数第三个字符为'i'的课程的详细情况*/
SELECT *
FROM 学生选课.课程
WHERE 名称 LIKE 'DB\_%i__' ESCAPE '\';
/*****************************涉及空值的查询************************************/
/*查询没有先修课的课程*/
SELECT *
FROM 学生选课.课程
WHERE 先修课 IS NULL;
/*查询所有有先修课的课程*/
SELECT *
FROM 学生选课.课程
WHERE 先修课 IS NOT NULL;
/*****************************多重条件查询************************************/
/*查询经济学院年龄大于21岁的学生信息*/
SELECT *
FROM 学生选课.学生
WHERE 院系号='06001' and 年龄>'21';
/*查询经济学院、法学院、信息学院学生的姓名和年龄*/
SELECT 姓名,年龄
FROM 学生选课.学生
WHERE 院系号='06001' or 院系号= '06002' or 院系号 ='06003';
SELECT 姓名,年龄
FROM 学生选课.学生,学生选课.院系
WHERE 学生.院系号=院系.院系号 and (名称='经济学院' or 名称='法学院' or 名称='信息学院')
ORDER BY 年龄 DESC;
/*****************************ORDER BY************************************/
/*用户可以用order by 子句对查询的结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,缺省值为升序*/
/*查询选修了0003号课程的学生的学号及其成绩,查询结果按分数的降序排列*/
SELECT 学号,成绩
FROM 学生选课.选课
WHERE 课程号='0003'
ORDER BY 成绩 DESC;
/*查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列*/
SELECT *
FROM 学生选课.学生
ORDER BY 院系号 ASC,年龄 DESC;
/*****************************聚集函数************************************/
/*注意:WHERE子句中不能用聚集函数作为条件表达式*/
/*查询学生总人数*/
SELECT COUNT(*)
FROM 学生选课.学生;
/*查询选修了课程的学生人数*/
SELECT COUNT(DISTINCT 学号)
FROM 学生选课.选课;
/*查询0003号课程的学生平均成绩*/
SELECT AVG(成绩)
FROM 学生选课.选课
WHERE 课程号='0003';
/*查询选'0003'号课程的学生的最高分*/
SELECT MAX(成绩)
FROM 学生选课.选课
WHERE 课程号='0003';
/*查询学生020001选修课程的总学分*/
SELECT SUM(学分)
FROM 学生选课.选课,学生选课.课程
WHERE 学号='020001' AND 选课.课程号=课程.课程号;
/*****************************GROUP BY************************************/
/*求各个课程及相应的选课人数*/
SELECT 课程号,COUNT(学号)
FROM 学生选课.选课
GROUP BY 课程号;/*该语句对查询结果按课程号分组,所有具有相同课程号的元组为一组,然后对每一组作用聚集函数COUNT计算,求得该组的学生人数*/
/*查询选修了3门以上课程的学生学号*/
SELECT 学号
FROM 学生选课.选课
GROUP BY 学号
HAVING COUNT(*)>3;
/*WHERE子句作用在基本表或视图,从中选择满足条件的元组。*/
/*HAVING短语作用于group之后的组,从中选择满足条件的组*/
阅读全文
0 0
- SQL 语句(二)--------------数据查询(简单查询)
- SQL语句总结(二数据查询)
- Oracle查询简单数据字典SQL语句
- SQL 数据查询语句
- SQL数据查询(二)
- T-SQL查询语句(二):嵌套查询
- T-SQL查询语句(二):嵌套查询
- SQL查询语句(二)
- sql server 简单查询语句
- orcl SQL简单查询语句
- sql语句---简单select查询
- SQL语句-数据查询-单表查询
- SQL 语句(三)--------------数据查询(连接查询)
- SQL 语句(四)--------------数据查询(嵌套查询)
- SQL 语句(五)--------------数据查询(集合查询)
- SQL语句之简单查询语句
- SQL题:sql语句查询(二)
- T-SQL操作语句之数据查询(二):查询中使用函数
- 双缓冲绘图
- JZOJ100045. 【NOIP2017提高A组模拟7.13】好数
- Sublime Text2.0.2注册码-亲测可用
- 2017.7.12 确定了方向,大数据。
- 8步助你开源硬件起步!
- SQL 语句(二)--------------数据查询(简单查询)
- Codeforces #803E: Roma and Pokers 题解
- Struts2中访问Servlet中的API(ActionContext,ServletActionContext)两种方式
- 线段树求和
- 《GPU高性能编程 CUDA实战》(CUDA By Example)读书笔记
- 友元函数
- qml与c++的简单实例,Connections信号连接
- python爬虫
- JVM内存泄露与内存溢出的区别