排序
默认正序(asc)
select * from 表名 where 条件 order by 条件 desc(倒序);
SELECT * FROM person1 WHERE number ORDER BY number DESC;
查询:客服端程序 查询请求发送组服务器 服务器返回一个查询集是虚拟的
select * from 名字;
<>不等于
as 命名 起别名
select borndate as 出生日期 person1 where sex<>'女' order by number asc;
is null 是空
select * from students where email is not mull;查询不为空的
聚合函数
avg() 平均值
max()
min()
count()计数
sum()
select AVG(stundentResult) as 平均成绩, max(studentresult) as 最高成绩 from result;
字符串函数
字符串替换 insert() select insert('这是 SQL SEVES数据库',3,10,'mysql');返回 这是mysql数据库
字符串联接 concat() select concat('ff','gg','s'); 返回ffggs
转为小写 lower()
专为大写 upper()
截取 substring() select insert('这是 SQLSEVES数据库',3,3); 返回 SQL
时间日期函数
curdate() 获取当前日期
curtime()
now()
week(date)返回日期date为一年中的第几周
year(date)返回日期date的年份
hour(time)返回时间time的小时值
minute(time)返回时间time的分钟值
datediff(date1,date2)返回date1和date2之间相隔的天数
adddate(date,n)计算日期参数date加上n天后的日期
数学函数
ceil(x)返回大于或等于数值x的最小整数 向上取整 select ceil(2,3) 返回3
rand()返回0-1之间的随机数
floor(x)向下取整
limit 用来分页,因为数据太多不可能显示在一页上
limit 4;显示前4条
limit 4,4;从第5条开始显示4条 4,4*(页数-1)
#将工龄大于4的,都是女的工资加1000
UPDATE person1 SET salary=salary+1000 WHERE gongling>4 AND sex='女';
#将所有性别为女的名字出生日期复制到新表里
CREATE TABLE qw-person
SELECT s.name,s.bornDate FROM person1 s WHERE sex='女';
#查询出生日期为1990-01-02前两个人的名字和性别
SELECT NAME,sex FROM person1 WHERE bornDate='1990-01-02' LIMIT 2;
#将所有女学生按年龄从大到小排序,从第2条记录开始显示3名女学生的姓名、年龄、出生日期、手机号信息
SELECT myname,FLOOR(DATEDIFF(NOW(),bornDate)/365),bornDate,phones FROM person1 WHERE sex='女' ORDER BY bornDate DESC LIMIT 1,4;
#按出生年份分组统计学生人数,将各组中人数达到2人的年份和人数显示出来
SELECT COUNT(*),brondate FROM person1 GROUP BY YEAR(borndate)
HAVING COUNT(*)>=2
#查询参加2016年2月17日考试的所有学员的最高分、最低分、平均分
SELECT MAX(studentResult),MIN(studentResult),AVG(studentResult) FROM result1 WHERE exandate='2018-03-15';
查询年龄大于小李的所有人显示所有信息
SELECT studentNo,studentName,sex,bornDate,address
FROM student
WHERE bornDate >(select borndate from student where studentname='小李');
#查询获得“Logic Java”课程的课程编号
#查询获得“Logic Java”课程最近一次的考试日期
#根据课程编号查询考试成绩的最高分和最低分
SELECT MAX(studentResult),
MIN(studentResult)
FROM result
WHERE subjectNo=
(SELECT subjectNo FROM SUBJECT
WHERE subjectName='Logic Java' ) AND
examDate=(SELECT MAX(examDate) FROM result
WHERE subjectNo=(SELECT subjectNo FROM SUBJECT
WHERE subjectName='Logic Java' ) );
#查询“Logic Java”课程成绩为60的学生名单 将=改为in
SELECT studentname FROM students 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 students
WHERE studentno IN
(SELECT studentno FROM result1 WHERE exandate=(SELECT MAX(exandate) FROM result1 WHERE subjectno=
(SELECT subjectno FROM SUBJECT WHERE subjectname='java'))
AND subjectno=(SELECT subjectno FROM SUBJECT WHERE subjectname='java'))
#查询s1开设课程的编号
SELECT subjectname FROM SUBJECT WHERE
gradeId IN (SELECT gradeId FROM gradeid WHERE gradename='s1')
默认正序(asc)
select * from 表名 where 条件 order by 条件 desc(倒序);
SELECT * FROM person1 WHERE number ORDER BY number DESC;
查询:客服端程序 查询请求发送组服务器 服务器返回一个查询集是虚拟的
select * from 名字;
<>不等于
as 命名 起别名
select borndate as 出生日期 person1 where sex<>'女' order by number asc;
is null 是空
select * from students where email is not mull;查询不为空的
聚合函数
avg() 平均值
max()
min()
count()计数
sum()
select AVG(stundentResult) as 平均成绩, max(studentresult) as 最高成绩 from result;
字符串函数
字符串替换 insert() select insert('这是 SQL SEVES数据库',3,10,'mysql');返回 这是mysql数据库
字符串联接 concat() select concat('ff','gg','s'); 返回ffggs
转为小写 lower()
专为大写 upper()
截取 substring() select insert('这是 SQLSEVES数据库',3,3); 返回 SQL
时间日期函数
curdate() 获取当前日期
curtime()
now()
week(date)返回日期date为一年中的第几周
year(date)返回日期date的年份
hour(time)返回时间time的小时值
minute(time)返回时间time的分钟值
datediff(date1,date2)返回date1和date2之间相隔的天数
adddate(date,n)计算日期参数date加上n天后的日期
数学函数
ceil(x)返回大于或等于数值x的最小整数 向上取整 select ceil(2,3) 返回3
rand()返回0-1之间的随机数
floor(x)向下取整
limit 用来分页,因为数据太多不可能显示在一页上
limit 4;显示前4条
limit 4,4;从第5条开始显示4条 4,4*(页数-1)
#将工龄大于4的,都是女的工资加1000
UPDATE person1 SET salary=salary+1000 WHERE gongling>4 AND sex='女';
#将所有性别为女的名字出生日期复制到新表里
CREATE TABLE qw-person
SELECT s.name,s.bornDate FROM person1 s WHERE sex='女';
#查询出生日期为1990-01-02前两个人的名字和性别
SELECT NAME,sex FROM person1 WHERE bornDate='1990-01-02' LIMIT 2;
#将所有女学生按年龄从大到小排序,从第2条记录开始显示3名女学生的姓名、年龄、出生日期、手机号信息
SELECT myname,FLOOR(DATEDIFF(NOW(),bornDate)/365),bornDate,phones FROM person1 WHERE sex='女' ORDER BY bornDate DESC LIMIT 1,4;
#按出生年份分组统计学生人数,将各组中人数达到2人的年份和人数显示出来
SELECT COUNT(*),brondate FROM person1 GROUP BY YEAR(borndate)
HAVING COUNT(*)>=2
#查询参加2016年2月17日考试的所有学员的最高分、最低分、平均分
SELECT MAX(studentResult),MIN(studentResult),AVG(studentResult) FROM result1 WHERE exandate='2018-03-15';
查询年龄大于小李的所有人显示所有信息
SELECT studentNo,studentName,sex,bornDate,address
FROM student
WHERE bornDate >(select borndate from student where studentname='小李');
#查询获得“Logic Java”课程的课程编号
#查询获得“Logic Java”课程最近一次的考试日期
#根据课程编号查询考试成绩的最高分和最低分
SELECT MAX(studentResult),
MIN(studentResult)
FROM result
WHERE subjectNo=
(SELECT subjectNo FROM SUBJECT
WHERE subjectName='Logic Java' ) AND
examDate=(SELECT MAX(examDate) FROM result
WHERE subjectNo=(SELECT subjectNo FROM SUBJECT
WHERE subjectName='Logic Java' ) );
#查询“Logic Java”课程成绩为60的学生名单 将=改为in
SELECT studentname FROM students 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 students
WHERE studentno IN
(SELECT studentno FROM result1 WHERE exandate=(SELECT MAX(exandate) FROM result1 WHERE subjectno=
(SELECT subjectno FROM SUBJECT WHERE subjectname='java'))
AND subjectno=(SELECT subjectno FROM SUBJECT WHERE subjectname='java'))
#查询s1开设课程的编号
SELECT subjectname FROM SUBJECT WHERE
gradeId IN (SELECT gradeId FROM gradeid WHERE gradename='s1')