本文主要是介绍Mysql数据库中数据的操作CRUD详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《Mysql数据库中数据的操作CRUD详解》:本文主要介绍Mysql数据库中数据的操作(CRUD),详细描述对Mysql数据库中数据的操作(CRUD),包括插入、修改、删除数据,还有查询数据,包括...
本文内容: 详细描述对mysql数据库中数据的操作(CRUD),包括插入、修改、删除数据,还有查询数据,包括where、in、like、ifnull、与或非、order by、聚集函数等。
一、插入数据(insert)
1.插入数据的语法
- insert into 表名 (字段1,字段2,字段3) values (值1,值2,值3);
- insert into 表名 values (值1,值2,值3);
2.注意事项
- 插入的数据与字段类型必须是相同的
- 数据的大小范围在字段范围内
- 值与字段一一对应
- 字符串或者日期类型数据需要使用单引号
示例:
insert into user values (1,'meimei','1956‐1‐1','1957‐1‐1','HR',5000,'meimeimei','xx'); insert into user values (2,'小凤','1996‐1‐1','2013‐1‐1','BOSS',15000,'mei','xx'); insert into user values (3,'聪聪','1993‐11‐11','2015‐09‐10','WORKER',500.0,'chou','yy'); insert into user values (4,'如花','1994‐1‐1','2013‐1‐1','BOSS',25000,'mei','xx'); insert into user values (5,'小苍','1991‐1‐1','2014‐1‐1','BOSS',15000,'mei','xx'); insert into user values (6,'小泽','1986‐1‐1','2013‐1‐1','BOSS',15000,'mei','xx');
问题:若MySQL插入中文数据乱码
解决:
1.先把MySQL服务停止。 2.找到MySQL安装文件的my.ini的配置文件 [client] port=3306 [mysql] default‐character‐set=gbk 3.重启MySQL服务
二、修改数据(update)
1.语法
update 表名 set 字段1=值,字段2=值 where 条件; where username = 'meimei';
2.有无where
如果没有where条件语句,默认更新hZQEwF所有的数据。
如果有where条件,默认更新符合条件的记录。
示例:
将所有员工薪水修改为5000元。 update user set salary = 5000; 将姓名为'聪聪'的员工薪水修改为3000元。 update user set salary = 3000 where username = '聪聪'; 将姓名为'小凤'的员工薪水修改为4000元,job改为ccc。 update user set salary = 4000,job = 'ccc' where username = '小凤'; 将如花的薪水在原有基础上增加1000元。 update user set salary = salary+1000 where username = '如花';
三、删除数据(delete)
1.语法
delete from 表名 where 条件;
2.有无where
如果没有where条件,默认删除所有的数据。
3. truncate 表名;删除表中所有的数据。
delete from 表名; 也可以删除所有数据。
- 区别: truncate先把你整个表删除掉,默默创建一个空的表(和原来的表结构是一样的)。
- delete from 表名 一行一行的删除。(使用它)
- 事物的概念:事物提交和事物回滚。
示例:
删除表中名称为'聪聪'的记录。 delete from user where username = '聪聪'; 删除表中所有记录。 delete from user; drop table user;删除数据
四、查询数据(select)(重点)
1.基本的select语句
语法:
select * from 表名; ‐‐ 查询所有列的记录
select 字段1,字段2,字段3 from 表名; ‐‐ 查询字段123的记录
DISTINCT ‐‐ 去除重复的数据
示例:select distinct english from stu;
练习:
create database day15; use day15; create table stu( id int, name varchar(30), math int, english int, chinese int );
insert into stu values (1,'美美',78,93,56); insert into stu values (2,'聪聪',18,13,16); insert intowww.chinasem.cn stu values (3,'小凤',98,96,89); insert into stu values (4,'如花China编程',90,100,46); insert into stu values (5,'欧阳锋',74,93,56); insert into stu values (6,'吴彦祖',37,11,89); insert into stu values (7,'聪大',88,77,66); insert into stu values (8,'聪二',55,44,33);
2.查询语句中使用运算和别名(数据库中数据不变)
在所有学生分数上加10分特长分。 select name,(math+10) m,(english+10) e,(chinese+10) c from stu; 统计每个学生的总分。 select name,(math+english+chinese) 总 分 from stu; 使用别名表示学生分数 select name,(math+english+chinese) 总 分 from stu;
3.使用where条件过滤
查询姓名为聪聪的学生成绩 select name,math,chinese from stu where name = '聪聪'; 查询英语成绩大于90分的同学 select name,english from stu where english > 20; 查询总分大于200分的所有同学 select name,math+english+chinese from stu where (math+english+chinese) > 200;
4.where子句中出现的运算(3个)
4.1 > < <= >= = <> 大于、小于、大于(小于)等于、不等于
4.2 in 表示范围。
select * from stu where math = 18; 查询出一条数据 select * from stu where math in (78,18,99);
4.3 jslike 模糊查询 ‐‐ 符合模糊的条件
select * from stu where name like '张_'; 姓张的名称(只有两个)的记录 select * from stu where name like '张%'; 姓张的名称(张飞 张翼德 张是是是冠希)的记录。 select * from stu where name like '%张'; 末尾是张(聪聪张 XSDF张) select * from stu where name like '%张%'; 只要名称中包含张
4.4 isnull ifnull nullif 判断某一个字段记录是否为空
ifnull:如果xxx为null,可替换成默认值;
4.5 and与 or或者 not非
查询英语分数在 80-90之间的同学。 select * from stu where english >= 10 and english < 19; 查询数学分数为89,90,91的同学。 select * from stu where math in (89,90,91); 查询所有姓小的学生成绩。 select * from stu where name like '小%'; 查询数学分>80,语文分>80的同学。 select * from stu where math > 80 or chinese > 80;
总结:select 列名(运算) from 表名(别名) where 条件(运算的符号);
5.order by 对查询的结果进行排序
5.1排序的语法
select * from 表名 where 条件 order by 列名 升序/降序;
5.2升序和降序
- order by 列名 asc;(升序,默认值)
- order by 列名 desc;(降序)
5.3 order by 子句必须出现在select语句的末尾。 示例:
对China编程数学成绩排序后输出。 select name,math from stu order by math desc; 对总分排序按从高到低的顺序输出 select name,(math+english+chinese) as total from stu order by total desc; 对姓聪的学生成绩按照英语进行降序排序,英语相同学员按照数学降序 select name,english,math from stu order by english desc,math desc; 对姓聪的学生成绩排序输出 select name,(math+english+chinese) as total from stu where name like '聪%' order by total desc;
6. 聚集函数 where,group by, having,order by
6.1聚集函数:总计某一列数据总和。一列的个数。一列的平均数。一列中最大值和最小值。
6.2聚集函数来操作列的。
count ---计数 sum ---求和 ifnull --判断是否为空:语法:ifnul(xxx,0) 如果xxx为null,替换成0 avg ‐‐ 平均值 max ‐‐ 最大值 min ‐‐ 最小值
练习:
统计一个班级共有多少学生? select count(name) from stu; 统计数学成绩大于90的学生有多少个? select count(math) from stu where math >= 90; 统计总分大于220的人数有多少? select count(*) from stu where math + english+chinese > 200; 统计一个班级数学总成绩? select sum(math) from stu; 统计一个班级语文、英语、数学各科的总成绩 select sum(math),sum(english),sum(chinese) from stu; 统计一个班级语文、英语、数学的成绩总和 select sum(ifnull(math,0)+english+chinese) from stu; select sum(math) + sum(english) + sum(chinese)from stu; 编写一条更新语句:update stu set math = null where id = 2;
到此这篇关于Mysql数据库中数据的操作(CRUD)的文章就介绍到这了,更多相关mysql 数据crud内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于Mysql数据库中数据的操作CRUD详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!