MySql查询入门

-- -- -- -- -- -- -- -- -- -- --  -- 创建表
-- CREATE TABLE teacher(
--     id INT,
--     NAME VARCHAR(20)
-- )
-- CREATE TABLE student(
--     id INT,
--     NAME VARCHAR(20),
--     gender VARCHAR(2),
--     age INT
-- )


-- -- -- -- 查看所有表
-- SHOW TABLES;

-- -- -- -- 查看表中各列信息
-- DESC teacher;

-- -- -- -- 删除表
-- DROP TABLE teacher;

-- -- -- -- 1 增加数据
-- -- 插入所有字段。一定依次按顺序插入不能少或多字段值
-- INSERT INTO student VALUES(1,'张昭','男',40);
-- INSERT INTO student VALUES(2,'黄盖','男'30);

-- -- 插入部分字段
-- INSERT INTO student (id,name) VALUES(3,'张纮');
-- INSERT INTO student (id,name) VALUES(4,'伏皇后');

-- -- -- -- 2 修改数据

-- -- 修改所有数据
-- UPDATE student SET gender = '男';

-- -- 条件修改
-- UPDATE student SET gender = '女' WHERE `name` = '伏皇后';

-- -- 修改多个字段
-- UPDATE student SET `name` = '周泰',age = 20 WHERE id = 2;

-- -- -- -- 3 删除数据

-- -- -- DELETE FROM  可以全表或者带条件删除 ,只能删除表的数据,不能删除表的约束 删除的数据可以回滚

-- -- 删除所有数据
-- DELETE FROM student;

-- -- 条件删除
-- DELETE FROM student WHERE NAME = "伏皇后";

-- -- -- TRUNCATE TABLE   可以全表删除   不能带条件删除   删除数据不能回滚
-- TRUNCATE TABLE student;
-- CREATE TABLE test(
--     id INT PRIMARY KEY AUTO_INCREMENT, -- 自增长约束
--     NAME VARCHAR(20)
-- )
-- DESC test;
-- 1.
-- DELETE FROM test;
-- 2
-- TRUNCATE TABLE test;
-- INSERT INTO test(NAME) VALUES('张三');
-- INSERT INTO test(NAME) VALUES('张三2');
-- INSERT INTO test(NAME) VALUES('张三3');
-- SELECT * FROM test;
-- truncate table student where id=2; 不能带条件

-- -- -- --  4 查询数据

-- --  查询所有列
-- SELECT * FROM student;

-- --  查询指定列
-- SELECT id,NAME FROM student;

-- --  查询时指定别名 (AS)
-- SELECT NAME AS '姓名',GENDER AS '性别' FROM student;

-- --  查询时添加常量列
-- 需求: 查询表时添加一个朝代列 内容为:"三国" ;
-- SELECT id,`name`,gender,age,'朝代' AS '三国' FROM student;

-- --  查询时合并列
-- 需求:查询id与年龄的和 ,合并列只能合并数值类型的字段
-- SELECT id,age,(id+age) AS '总和' FROM student;

-- --  查询时去除重复记录(DISTINCT)
-- INSERT INTO student VALUES(4,'黄月英','女',30);
-- INSERT INTO student VALUES(5,'孙尚香','女',20);
-- INSERT INTO student VALUES(6,'甄姬','女',30);

-- 需求:查询学生的性别
-- SELECT DISTINCT gender FROM student;
-- SELECT DISTINCT(gender) FROM student;

-- -- --  条件查询
-- -- 逻辑条件 and ,or

-- 需求: 查询id=2,并且姓名是"周泰"的人物
-- SELECT * FROM student WHERE id=2 AND `name`='周泰';

-- -- 交集  需求:查询id=2 ,或者姓名为 '周泰'的人物
-- SELECT * FROM student WHERE id=233 OR `name`='周泰';

-- -- 比较 >, <, >=, <=, =, <>不等于, BETWEEN AND >= 且 <=

-- 需求 查询年龄大于20 的人
-- SELECT * FROM student WHERE age > 20;

-- 需求 查询年龄大于20 且小于等于30 的人
-- SELECT * FROM student WHERE age>= 20 AND age <= 30;
-- SELECT * FROM student WHERE age BETWEEN 20 AND 30;

-- 需求 查询年龄不是20的人;
-- SELECT * FROM student WHERE age <> 20;

-- -- 判断条件 (null '' ) IS NULL,  IS NOT NULL,='',<>''
-- 需求 查询性别为空的人物(包括null 和 空字符串) null 表示没有值 , '' 空字符串有值

-- INSERT INTO student VALUES (7,'颜良','',40);
-- INSERT INTO student(id,NAME,age) VALUES (8,'文丑',38);

-- -- 判读null
-- SELECT * FROM student WHERE gender IS NULL;

-- -- 判断空字符串
-- SELECT * FROM student WHERE gender = '';

-- -- 包括null和空字符串
-- SELECT * FROM student WHERE gender IS NULL OR gender = '';

-- 需求  查询有性别的人物(不包括null 和 空字符串)
-- SELECT * FROM student WHERE gender IS NOT NULL AND gender <> '';

-- -- --模糊查询 LIKE    % 百分号表示任意个字符  _ 下划线表示一个字符

-- 需求 查询 姓张 的人物
-- SELECT * FROM student WHERE `name` LIKE '张%'

-- 需求 查询姓张 且姓名只有两个字的人物
-- SELECT * FROM student WHERE `name` LIKE '张_';

-- -- -- 聚合查询   常用聚合函数 SUM(expr) 求和,AVG(expr)平均数,MAX(expr)最大值,MIN(expr)最小值,
-- COUNT( expr) 返回检索到的行中非null值的数目  COUNT(*)返回包含null值的数目

-- 需求 查询人物的总年龄
-- SELECT SUM(age) AS '总年龄' FROM student;

-- 需求 查询人物的平均年龄
-- SELECT AVG( age) AS '平均年龄' FROM student;

-- 需求 查询人物最大,最小年龄
-- SELECT MAX(age),MIN(age) FROM student;

-- 需求 统计一共有多少人物
-- SELECT COUNT(*) FROM student;

-- -- -- 分页查询(LIMIT 起始行,查询行数)   起始行从0开始    分页: 当前页  每页显示多少条
-- -- 分页查询当前页的数据: SELECT * FROM student LIMIT (当前页-1)*每页条数,每页条数

-- 需求: 查询第1,2条记录
-- SELECT * FROM student LIMIT 0,2;

-- 需求: 查询第3,4条记录
-- SELECT * FROM student LIMIT 2,2;

-- 需求: 查询第4,5,6条记录
-- SELECT * FROM student LIMIT 3,3;

-- -- -- 查询排序 ORDER BY 字段 ASC/DESC   ASC : 顺序.   DESC:倒序  默认按照插入记录顺序排序
-- SELECT * FROM student;

-- 需求: 按照ID正序/倒序排序

-- -- 默认正序
-- SELECT * FROM student ORDER BY id;
-- SELECT * FROM student ORDER BY id ASC;

-- -- 倒序
-- SELECT * FROM student ORDER BY id DESC;

-- -- 多个排序条件
-- 需求 按照age倒序,id正序排序(年龄大的在前,年龄如果相等,id小的在前)
-- SELECT * FROM student ORDER BY age DESC,id ASC;

-- -- -- 分组查询 GROUP BY
-- 需求: 查询男女人数 结果 男    女

-- 步骤 : 1 把人物按照性别分组(GROUP BY gender)  2 统计每组人数(COUNT(*))
-- SELECT
-- gender,COUNT(*)
-- FROM
-- student
-- GROUP BY
-- gender;

-- -- -- 分组后筛选

-- 需求 :查询总人数大于3的性别
-- 步骤: 1 查询男女人数 2筛选人数大于2的记录(HAVING)
-- 分组之前条件用 WHERE 关键字,分组之后使用 HAVING 关键字
-- SELECT gender,COUNT(*)
-- FROM student
-- GROUP BY gender
-- HAVING COUNT(*)> 3;
 
 


猜你喜欢

转载自blog.csdn.net/sjbzl/article/details/53860568
今日推荐