SQL语句公式
SELECT * FROM course;
从course选取所有结果(*代表所有列)
SELECT s_name,Sex FROM student;
从学生表中选取名字列和性别列
SELECT * FROM student WHERE sex='男';
从学生表中选取性别是男的所有列(WHERE是条件,汉字和英文需要带'')
SELECT * FROM student WHERE sex='女' AND age=20;
从学生表中选取性别是女的和年龄等于20的所有列(AND是指必须满足所有条件)
SELECT * FROM student WHERE s_name='汪峰' OR sex='女';
从学生表中选取名字叫汪峰的或者性别是女的所有列(OR是指满足其中一个条件即可)
SELECT * FROM student WHERE s_name LIKE '%王%';
从学生表中选取名字带王的所有列(LIKE 操作符用于在WHERE 子句中搜索列中的指定模式。%替代一个或多个字符)
SELECT * FROM student WHERE s_name IN ('汪峰','张学友');
从学生表中选取名字叫汪峰和张学友的所有列(IN 操作符允许我们在WHERE 子句中规定多个值)
SELECT * FROM student WHERE s_name NOT IN ('汪峰','张学友');
从学生表中选取名字不要汪峰和张学友的所有列(NOT 是指不要)
SELECT * FROM student ORDER BY age;
从学生表中按照年龄顺序排列(ORDER BY 语句用于对结果集进行排序。ASC指顺序可隐藏默认)
SELECT * FROM student ORDER BY age DESC;
从学生表中按照年龄倒序排列(DESC倒序)
SELECT AVG(grade) FROM score;
从分数表中选取分数平均值(AVG 函数返回数值列的平均值。NULL 值不包括在计算中)
SELECT MAX(grade) FROM score;
从分数表中选取分数最大值(MAX 函数返回一列中的最大值。NULL 值不包括在计算中)
SELECT MIN(grade) FROM score;
从分数表中选取分数最小值(MIN 函数返回一列中的最小值。NULL 值不包括在计算中)
SELECT SUM(grade) FROM score;
从分数表中选取分数总数(sum函数返回一列中总数。NULL 值不包括在计算中)
SELECT COUNT(*) FROM score;
从分数表中查询共有多少行(COUNT( ) 函数返回匹配指定条件的行数)
SELECT COUNT(*) FROM score WHERE grade=60;
从分数表中查询分数是60的共有多少行
SELECT * FROM score LIMIT 4;
从分数表中查询第4行(LIMIT 是指在表里面中选取几行)
SELECT * FROM score LIMIT 2,6;
从分数表中查询第3到第8行(第一行是0,后面是加上前面的和。此公式是选取介于两个值之间的数据范围)
INSERT INTO student (S_id,S_name,Sex,Age) VALUES ('029','杨幂幂','女','30');
从学生表中插入一行学生信息(INSERT INTO用于插入一行)
UPDATE student SET age=47 WHERE s_id='029';
从学生表中修改ID是029的年龄改成47(UPDATE 用于更改表数据)
DELETE FROM student WHERE s_id='028';
从学生表中删除ID是028的信息(DELETE用于删除表数据)
SELECT sex FROM student GROUP BY sex;
从学生表中根据性别进行分组结果显示为性别(GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组 函数统计内容为,分组内的数据)
SELECT sex,COUNT(*) FROM student GROUP BY sex;
从学生表中根据性别进行分组并统计各有多少行数结果显示为性别和行数
SELECT s_id,MAX(grade) FROM score GROUP BY s_id;
从分数表中根据学生ID进行分数最高的统计显示结果为学生ID和分数
SELECT sex,COUNT(*) FROM student GROUP BY Sex HAVING sex='男';
从学生表中根据性别并且性别为男的统计显示结果为性别和行数(having 条件,结合group by使用)
SELECT student.s_name,score.Grade FROM student LEFT JOIN score ON student.S_ID=score.S_ID;
从学生表和分数表中根据它们相同选项S_ID选取学生名字和分数(两张表相连,必须由相同的列,LEFT JOIN是用于表之间相连,ON用于表之间相同的列相连)
SELECT student.s_name,teacher.T_name,course.C_name,score.Grade FROM student LEFT JOIN score ON student.S_ID=score.S_ID LEFT JOIN course ON course.C_ID=score.C_ID LEFT JOIN teacher ON teacher.C_ID=course.C_ID WHERE student.s_name= 'baby';
从学生表、分数表、教师表、课程表中查询baby的信息。
SELECT teacher.`T_name`,course.`C_name` FROM teacher LEFT JOIN course ON teacher.`C_ID`=course.`C_ID`;
从教师表和课程表中查询教师姓名和课程名并已教师表为基础(左连接,以左表为基础,返回左表所有的值)
SELECT teacher.`T_name`,course.`C_name` FROM teacher RIGH JOIN course ON teacher.`C_ID`=course.`C_ID`;
从教师表和课程表中查询教师姓名和课程名并已课程表为基础(右连接,以右表为基础,返回右表所有的值)