开发者

Mysql数据库中数据的操作CRUD详解

开发者 https://www.devze.com 2025-05-18 09:09 出处:网络 作者: 星星重行行
目录一、插入数据(insert)1.插入数据的语法2.注意事项二、修改数据(update)1.语法2.有无where三、删除数据(delete)1.语法2.有无where3. truncate 表名;删除表中所有的数据。四、查询数据(select)(重点)1.基
目录
  • 一、插入数据(insert)
    • 1.插入数据的语法
    • 2.注意事项
  • 二、修改数据(update)
    • 1.语法
    • 2.有无where
  • 三、删除数据(delete)
    • 1.语法
    • 2.有无where
    • 3. truncate 表名;删除表中所有的数据。
  • 四、查询数据(select)(重点)
    • 1.基本的select语句
    • 2.查询语句中使用运算和别名(数据库中数据不变)
    • 3.使用where条件过滤
    • 4.where子句中出现的运算(3个)
      • 4.1  >  <  <=  >=  =  <>  大于、小于、大于(小于)等于、不等于
      • 4.2 in 表示范围。
      • 4.3 like 模糊查询 ‐‐ 符合模糊的条件
      • 4.4 isnull ifnull nullif 判断某一个字段记录是否为空
      • 4.5 and与 or或者 not非
    • 5.order by 对查询的结果进行排序
      • 5.1排序的语法
      • 5.2升序和降序
      • 5.3 order by 子句必须出现在select语句的末尾。 示例:
    • 6. 聚集函数 where,group by, having,order by
      • 6.1聚集函数:总计某一列数据总和。一列的个数。一列的平均数。一列中最大值和最小值。
      • 6.2聚集函数来操作列的。

本文内容: 详细描述对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.devze.com stu values (3,'小凤',98,96,89);
insert into stu values (4,'如花编程客栈',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语句的末尾。 示例:

编程客栈数学成绩排序后输出。
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内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号