在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
MySQL 增删改查语句 1.创建练习表
1.1用户表(user) CREATE TABLE `user`( `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户id(主键)', `username` VARCHAR(50) COMMENT '用户姓名', `age` CHAR(3) COMMENT '用户年龄' ); 插入数据 INSERT INTO USER VALUES(2,'小二',12); INSERT INTO USER VALUES(3,'张三',33); INSERT INTO USER VALUES(4,'李四',24); INSERT INTO USER VALUES(5,'王五',17); INSERT INTO USER VALUES(6,'赵六',36); INSERT INTO USER VALUES(7,'七七',18); 完成后 1.2学生表 CREATE TABLE `students`( `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生id(主键)', `name` VARCHAR(10) COMMENT '学生姓名', `grade` VARCHAR(10) COMMENT '学生年级', `chinese` INT COMMENT '语文成绩', `math` INT COMMENT '数学成绩', `english` INT COMMENT '英语成绩' ); 插入数据 INSERT INTO students VALUES(1,'迪丽热巴','二年级',100,100,100); INSERT INTO students VALUES(2,'古力娜扎','一年级',99,88,98); INSERT INTO students VALUES(3,'马尔扎哈','三年级',46,20,99); INSERT INTO students VALUES(4,'阿里巴巴','一年级',78,81,100); INSERT INTO students VALUES(5,'哈哈哈哈','六年级',20,10,5); INSERT INTO students VALUES(6,'作者本人','二年级',100,100,100); INSERT INTO students VALUES(7,'嘻嘻哈哈','五年级',70,99,60); INSERT INTO students VALUES(8,'哭哭啼啼','四年级',33,15,54);
完成后 2.查询 2.1查询全部(这里使用user用户表) Select * from 表名; SELECT * FROM USER; 2.2查询已经成年的用户(使用where条件查询)
SELECT * FROM USER WHERE age >= 18; 2.3查询未成年用户的名字 SELECT 字段名 FROM 表名 WHERE 条件; SELECT username FROM USER WHERE age < 18; 2.4使用别名查询 使用as关键字(as可以省略) SELECT u.* FROM USER AS u; 2.5使用逻辑运算符查询 逻辑运算符( 并且:and 或 && 或:or 非:not 或 ! ) 查询名字为小二又年龄是12岁的(显示名字和年龄) SELECT u.`username`,u.`age` FROM USER u WHERE u.`username`='小二' && u.`age`=12; 查询名字为张三又是未成年的(查询结果空,没有这个人) SELECT * FROM USER WHERE username='张三' && age < 18; 2.6使用运算符查询(这里开始使用students学生表) 查询 哈哈哈哈 的三科总分 SELECT s.chinese + s.math + s.english FROM students s WHERE s.name = '哈哈哈哈'; 2.7范围查询(between 条件1 and 条件2)
查询语文成绩是 良到中 的同学名字一 SELECT NAME FROM students WHERE chinese BETWEEN 60 AND 80; 查询数学成绩不合格的同学名字 二 where 字段(列名)not between 条件1 and 条件2; SELECT NAME FROM students WHERE math NOT BETWEEN 60 AND 100; 查询英语成绩优秀的同学id和名字; 三 where !( 字段名 between 条件1 and 条件2); SELECT s.`id`,s.`name` FROM students s WHERE !(s.`english` BETWEEN 0 AND 90); 2.8集合查询查询一年级和二年级的学生信息 where 列名 in (值1,值2,值3); SELECT * FROM students WHERE grade IN ('一年级','二年级'); *查询一年级,二年级,三年级以外的学生信息 SELECT * FROM students WHERE grade NOT IN ('一年级','二年级','三年级'); 2.9 NULL值查询 注意:列中值为null不能使用=去查询 查询名字为 null 的学生数据(没有存储有,所以啥也没有) SELECT * FROM students WHERE `name` IS NULL; 2.10模糊查询( like )% 表示0个到n个字符 where 列名 like '%巴'; -- 表示以 巴 结尾的; where 列名 like '巴%'; -- 表示以 巴 开头的; where 列名 like '%巴巴%' -- 表示数据里面包含 巴巴 的; 查询名字以 巴 结尾的学生; SELECT * FROM students WHERE `name` LIKE '%巴'; 查询名字以 作者 开头的学生; SELECT * FROM students WHERE `name` LIKE '作者%'; 查询名字里面包含 嘻哈 的学生; SELECT * FROM students WHERE `name` LIKE '%嘻哈%'; _ 表示一个字符,可以多次使用 查询名字里面倒数第二个字有 哈 的学生 SELECT * FROM students WHERE `name` LIKE '%哈_'; 2.11结果排序 对结果经行排序(对查询出的结果按照一列或多列进行升序或者倒序排序,升序式ASC,倒序式 DESC,默认升序)。 注意不能使用中文或者中问别名排序。 查询一年级,二年级,三年级学生数据,以 语文成绩排序,降序。 SELECT * FROM students WHERE grade IN ('一年级','二年级','三年级') ORDER BY chinese DESC; 2.12分页查询 分页查询( beginIndex 表示从第几条数据开始(也可以说是跳过前面多少页),第一页从0开始。pageSize 表示每页显示多少条数据); 分页算法公式 (当前页 - 1)* pageSize; 比如说每页 10页 分页。 注意当我们使用 select * from students;(最后底层执行语句分页了 limit 0,1000 ) 查询全部学生,每页三条数据 SELECT * FROM students LIMIT 0,3;
SELECT * FROM students LIMIT 3,3;
第三页 SELECT * FROM students LIMIT 6,3; 2.13聚合函数 作用于一组数据,对那组返回一个值
注意,分组函数 group by。如果要对 分组后 的数据进行筛选,那么必须使用 having 关键字,条件写在 having 后面;
插入我们需要练习的表city 表 CREATE TABLE `city` ( `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键', `city_name` VARCHAR(100) COMMENT '城市名', `city_year` VARCHAR(4) COMMENT '年份,yyyy', `city_gdp` DOUBLE COMMENT '当前年份,城市一整年的GDP,单位亿元', `city_population` DOUBLE COMMENT '当前年丰,城市的总人口,单位万人' ); 添加数据 INSERT INTO city VALUES(1,'上海',2018,32679,2418); INSERT INTO city VALUES(2,'北京',2018,30320,2171); INSERT INTO city VALUES(3,'深圳',2018,24691,1253); INSERT INTO city VALUES(4,'广州',2018,23000,1450); INSERT INTO city VALUES(5,'重庆',2018,20363,3372); INSERT INTO city VALUES(6,'上海',2019,38155,2424); INSERT INTO city VALUES(7,'北京',2019,35371,2171); INSERT INTO city VALUES(8,'深圳',2019,26927,1302); INSERT INTO city VALUES(9,'广州',2019,23628,1491); INSERT INTO city VALUES(10,'重庆',2019,23605,3372); COUNT SELECT COUNT(*) FROM city WHERE city_year = '2019'; MAX SELECT MAX(city_gdp) FROM city WHERE city_year = '2018'; MIN SELECT MIN(city_gdp) FROM city WHERE city_year = '2018'; SUM SELECT SUM(city_gdp) FROM city WHERE city_year = '2019'; AVG SELECT AVG(city_gdp) FROM city WHERE city_year = '2019'; 3.增加 insert into 表名(字段1,字段2,字段3,…)values(值1,值2,值3,…); 添加学生鸡鸡鸡鸡 INSERT INTO students(id,NAME,grade,chinese,math,english) VALUES( 9,'鸡鸡鸡鸡','七年级',77,77,77); 其它插入方式 INSERT INTO 表名(字段1,字段2,字段3) VALUES (值1,值2,值3),(值1,值2,值3); -- 插入多条数据 INSERT INTO 表名 VALUES(值1,值2); -- 针对表全字段进行插入操作 INSERT INTO 表名(字段) SELECT 字段 FROM 表2; -- 查询结果插入 INSERT INTO 表名 SELECT 字段 FROM 表2; -- 查询结果,全表插入 4.更新 update 表名 set 字段=值 where 条件; -- 带条件的去修改指定数据,否则修改全表; 修改学生 ‘哈哈哈哈' 的英语成绩为 10; UPDATE students SET english = 10 WHERE `name` = '哈哈哈哈'; 5.删除 delete from 表名 where 条件; -- 删除数据带条件删除,否则删除全表的数据 删除学生 ‘鸡鸡鸡鸡' ; DELETE FROM students WHERE `name` = '鸡鸡鸡鸡'; 6.语句执行顺序 from -> on -> join -> where -> group by -> having -> select -> distinct -> order by -> limit MySQL其它文章,请看下面链接 END… 到此这篇关于MySQL 详细单表增删改查crud语句的文章就介绍到这了,更多相关MySQL 增删改查语句内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论