查询:SELECT * FROM 表名;
1.查询产生一个虚拟表。
2.看到的是表形式显示的结果,但结果并不真正存储。
3.每次执行查询只是从数据表中提取数据,并按照表的形式显示出来。
查询语法:
SELECT 列名|表达式|函数|常量
FROM 表名
WHERE 查询条件表达式
ORDER BY 排序的列名[ASC(正)或DESC(倒)];
使用AS命名列:
1.avg():返回某字段的平均值。
2.count():返回某字段的行数。
3.max():返回某字段的最大值。
4.min():返回某字段的最小值。
5.sum():返回某字段的和。
字符串函数:
1.CONCAT(str1,str1...strn):字符串连接。
2.INSERT(str,pos,len,newstr):字符串替换。
3.LOWER(str):将字符串转为小写。
4.UPPER(str):将字符串转为大写。
5.SUBSTRING(str,num,len):字符串截取。
时间日期函数:
1.CURDATE():获取当前日期。
2.CURTIME():获取当前时间。
3.NOW():获取当前日期和时间。
4.WEEK(date):返回日期date为一年中的第几周。
5.YEAR(date):返回日期date的年份。
6.HOUR(time):返回时间time的小时值。
7.MINUTE(time):返回时间time的分钟值。
8.DATEDIFF(date1,date2):返回日期参数date1和date2之间相隔的天数。
9.ADDDATE(date,n):计算日期参数date加上n天后的日期。
数学函数:
1.CEIL(x):返回大于或等于数值x的最小整数。
2.FLOOR(x):返回小于或等于数值x的最大整数。
3.RAND():返回0~1间的随机数。
LIMIT子句:
#查询“Logic Java”课程考试成绩为60分的学生名单
1.查询产生一个虚拟表。
2.看到的是表形式显示的结果,但结果并不真正存储。
3.每次执行查询只是从数据表中提取数据,并按照表的形式显示出来。
查询语法:
SELECT 列名|表达式|函数|常量
FROM 表名
WHERE 查询条件表达式
ORDER BY 排序的列名[ASC(正)或DESC(倒)];
使用AS命名列:
SELECT studentNo AS 学生编号,studentName AS 学生姓名,
address AS 学生地址
FROM student
WHERE address <> '河南新乡';
查询空行(非空:not null)
SELECT studentName FROM student WHERE email IS NULL;
聚合函数:
1.avg():返回某字段的平均值。
2.count():返回某字段的行数。
3.max():返回某字段的最大值。
4.min():返回某字段的最小值。
5.sum():返回某字段的和。
字符串函数:
1.CONCAT(str1,str1...strn):字符串连接。
2.INSERT(str,pos,len,newstr):字符串替换。
3.LOWER(str):将字符串转为小写。
4.UPPER(str):将字符串转为大写。
5.SUBSTRING(str,num,len):字符串截取。
时间日期函数:
1.CURDATE():获取当前日期。
2.CURTIME():获取当前时间。
3.NOW():获取当前日期和时间。
4.WEEK(date):返回日期date为一年中的第几周。
5.YEAR(date):返回日期date的年份。
6.HOUR(time):返回时间time的小时值。
7.MINUTE(time):返回时间time的分钟值。
8.DATEDIFF(date1,date2):返回日期参数date1和date2之间相隔的天数。
9.ADDDATE(date,n):计算日期参数date加上n天后的日期。
数学函数:
1.CEIL(x):返回大于或等于数值x的最小整数。
2.FLOOR(x):返回小于或等于数值x的最大整数。
3.RAND():返回0~1间的随机数。
LIMIT子句:
SELECT 字段名列表
FROM 表名或视图
WHERE 查询条件
GROUP BY 分组的字段名
ORDER BY 排序的列名[ASC或DESC]
LIMIT 位置偏移量,行数;
实例:
#查询2016年2月17日考试前5名的学员的学号和分数
select studentno,studentresult from result where examDate='2016-02-17'
order by studentresult desc limit 5;
#将所有女学生按年龄从大到小排序,从第2条记录开始显示6名女学生的姓名、年龄、出生日期、手机号信息
select studentname,floor(datedife(now(),bornDate)/365) from student
where sex='女'
order by bornDate desc limit 1,6;
#按出生年份分组统计学生人数,将各组中人数达到2人的年份和人数显示出来
select count(*),borndate from student group by year(borndate)
having count(*)>=2;
#查询参加2016年2月17日考试的所有学员的最高分、最低分、平均分
select max(studentresult),min(studentresult),avg(studentresult)
from result where examDate='2016-02-17';
子查询(in:在,not in:不在):
实例:#查询“Logic Java”课程考试成绩为60分的学生名单
select studentname from sudent where studentno in
(select studentno from result where studentresult=60 and subjectno=
(select subjectno from subject where subjectname='java'))
#查询参加“Logic Java”课程最近一次考试的在读学生名单
select studentno,studentname from student
where studentno in
(select studentno from result where examDate=
(select max(examDate) from result where subjectno=
(select subjectno from subject where subjectname='java'))
and subjectno=(select subjectno from subject where subjectname='java'))