mysql- 查询语句

`SHOW DATABASES;
USE db2;
SHOW TABLES;
DESC tb1;
SHOW CREATE TABLE TB1;
DESC TB2;
DROP TABLE student;-- 删除表
TRUNCATE TABLE student;-- 将表中的数据删除
CREATE TABLE student(
ID INT,-- 编号
NAME VARCHAR(20),-- 姓名
age INT, -- 年龄
sex VARCHAR(5),-- 性别
address VARCHAR(100),-- 地址
math INT, -- 数学
english INT -- 英语
);
INSERT INTO student(ID,NAME,age,sex,address,math,english)VALUES
(1,‘马云‘,55,‘男‘,‘杭州‘,66,78),
(2,‘马化腾‘,45,‘女‘,‘深圳‘,98,87),
(3,‘马景涛‘,55,‘男‘,‘香港‘,56,77),
(4,‘柳岩‘,20,‘女‘,‘湖南‘,76,65),
(5,‘柳青‘,20,‘男‘,‘湖南‘,86,NULL),
(6,‘刘德华‘,57,‘男‘,‘香港‘,99,99),
(7,‘马德‘,22,‘女‘,‘香港‘,99,99),
(8,‘德玛西亚‘,18,‘男‘,‘南京‘,56,65);
DROP TABLE student;
SELECTFROM student;
SELECT address FROM student;
SELECT DISTINCT address FROM student;-- 只查询不重复的在字段列表上加distinct;
SELECT NAME,math,english,math+english FROM student;-- 如果有null参与的计算结果都是为null
SELECT NAME AS 姓名,math 数学,english AS 英语,math+IFNULL(english,0) AS 总分 FROM student;-- 加as,或者‘ 空格’起别名
SELECT * FROM student WHERE age>=20;
SELECT
FROM student WHERE age!=20;
SELECT *FROM student WHERE age<>20;-- 这些都是不等于20
SELECT *FROM student WHERE age BETWEEN 20 AND 30;
SELECT *FROM student WHERE age =18 OR age=22 OR age=25;
SELECT *FROM student WHERE age IN(18,22,25);-- 和上面的是一样的age in +元组
SELECT *FROM student WHERE english IS NULL; -- 判断是空要用IS null
SELECT *FROM student WHERE english IS NOT NULL;
SELECT *FROM student WHERE NAME LIKE ‘马%‘;-- 查询第一个字是马
SELECT *FROM student WHERE NAME LIKE ‘_化%‘;-- 查询第二个字是化
SELECT *FROM student WHERE NAME LIKE ‘%马%‘;
SELECT * FROM student ORDER BY math;-- 默认是升序
SELECT FROM student ORDER BY math+IFNULL(english,0) DESC, math DESC ,english DESC;-- 按照数学+英语总分是第一排序,数学是第二排序,英语是第三排序
SELECT COUNT(english)FROM student;-- 排除了空的
SELECT COUNT(IFNULL(english,0))FROM student;-- 加上了空的
SELECT COUNT(
)FROM student;-- 一行只要有一个是非空的就要加上
SELECT MAX(math)FROM student;-- 查询数学的最大值
SELECT MIN(english)FROM student;-- 查询英语的最小值是不包括null的
SELECT MIN(IFNULL(english,0))FROM student;-- 利用ifnull函数来包含缺考的分数
SELECT SUM(IFNULL(english,0)+math)FROM student;-- 这个结果是1206,要注意用ifnull函数
SELECT SUM(english+math)FROM student;-- 这个结果是1120
SELECT AVG(english)FROM student;-- 计算平均分但是没有考虑缺考的
SELECT AVG(IFNULL(english,0))FROM student;-- 考虑缺考的平均分
SELECT sex,AVG(math),COUNT(id)FROM student GROUP BY sex ORDER BY COUNT(id);-- 分组进行查询 加聚合函数 和 分组字段
SELECT sex,math, FROM student GROUP BY sex; -- 加一般的字段是没有意义的
SELECT sex,AVG(math) 数学平均分,COUNT(id) 人数 FROM student WHERE math>70 GROUP BY sex HAVING 人数>2; -- 加入了where范围
SELECT *FROM student LIMIT 0,3;
SELECT *FROM student LIMIT 1,3;

`

mysql- 查询语句

上一篇:js基础知识


下一篇:使用Docker部署.Net Core项目