MySQl表的增删查改(CRUD)
Posted 快到锅里来呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQl表的增删查改(CRUD)相关的知识,希望对你有一定的参考价值。
新增
1.单行插入 insert into 表名 values (值,值...);
2.指定列插入 insert into 表名 (列名,列名...) values (值,值...);
3.多行插入 insert into 表名 values (值,值...), (值,值...)...;
查询
1.全列查询 select * from 表名;
2.指定列查询 select 列名,列名... from 表名;
3.查询带表达式 select 表达式 from 表名;
4,查询带别名 select 表达式 as 别名 from 表名;
5.查询去重 select distinct 列名 from 表名;
6.查询结果排序 select 列名 from 表名 order by 列名 asc/desc; 升/降
7.条件查询 select 列名 from 表名 where 条件;
(基本:and且 or或 范围:between...and... in 模糊 like %_ is null )
8.分页查询 select 列名 from 表名 limit N offset M;
修改
update 表名 set 列名 = 值, 列名 = 值... where 条件
删除
delete from 表名 where 条件; 删除条件控制的列
delete from 表名; 删除所有列
目录
1. 新增(create)
insert into 表名 values (值 , 值 ...);
(1)这里值的类型和个数,要和表的列的类型和个数要匹配
(2)使用单引号和双引号都可以表示字符串
(3)在创建数据库时就要确定好,要使用的字符集
在SQL中,没有字符类型,使用单引号和双引号都可以表示字符串
🤠 下面看这个
如果我们放入的字符是汉字就会报错,这是因为MySQL默认是拉丁文,是不支持中文的
下面可以输入SHOW VARIABLES LIKE 'character%';查看字符编码方式
1. 如果要支持中文,那就要重新创建数据库来支持中文比如utf8
create database 数据库名 character set utf8;
但这种方法,每次创建库时都要指定,比较麻烦
2. 还可以,直接修改mysql配置文件,把数据库字符集配置成默认的想要设置的字符集
这样以后就不用指定,可以直接插入了
下面来修改一下mysql配置文件
(1)先找到一个my.ini的文件
可以搜索电脑中的服务找到mysql这一项,点击属性
(2)在电脑中找到这个路径下的my.ini文件,先备份,然后再打开它
(3)分别找到mysql和mysqld下的 这两项去掉# 给后面加上utf8保存
(4)重新启动服务器,重新建库、建表
指定列插入 多行插入
insert into 表名(列名,列名...) values (值,值,,,); 指定列插入
insert into 表名 values (值,值...),(值,值)...; 多行插入
2. 查询(retrieve)
2.1 全列查找
select * from 表名; 查询出当前表所有的行,和所有的列
2.2 指定列查询
select 列名 from 表名;
这里查询只能看见两列,不代表其它列被删除,这只是一个临时表
临时表示根据服务器的数据生成的,所有的查询操作,都不会影响服务器磁盘上的数据
2.3 查询字段为表达式
select 表达式 from 表名;
表达式查询,列和列之前进行计算
如果列和列之间计算,加上字符就会发出警告
临时表的列名,就是表达式的内容,这样看不美观,可读性不高
所以可以在查询时,给临时表的列指定别名
2.4 给查询结果的列起别名
select 列名 as 别名 from 表名;
2.5 查询去重
select distinct 列名 from 表名;
2.6 对查询结果进行排序操作
升序排列 select 列名 from 表名 order by 列名(排序列); 或者给后面加asc
降序排列 select 列名 from 表名 order by 列名(排序列) desc;
降序排序,要在最后加上desc
指定多个列排序,哪个列在前,哪个列优先级高
也可以分别,指定一个列升序,一个列降序
2.7 条件查询
查询时指定筛选条件, where 子句来表示子句
select 列名 from 表名 where 条件;
条件查询需要注意各种运算符,这里特别说明
= :等于,NULL不安全,例如:null = null 的结果是null
<=> : 等于,null安全,例如:null<=>null 的结果是true
2.7.1 基本查询
按条件,查询单行
按条件,两行比较
按条件表达式,进行查询
and和or
2.7.2 范围查询
(1)between...and...
当表很大时,条件查询遍历表,效率非常低
所以可以优化查询,最有效的方法是根据索引
(2)in
2.7.3 模糊查询
依赖一些通配符来表示要匹配的值是啥样的(like)
% 代替任意个任意字符 _代替一个任意字符
like 匹配时比较低效的
NULL的查询
is null / is not null
2.8 分页查询
很多时候数据太多,分成多个页进行显示
select 列名 from 表名 limit N; 查询前N条记录
select 列名 from 表名 limit N offset M; 从第M条记录开始,
3. 修改(update)
update 表名 set 列名 = 值, 列名 = 值 ... where 条件;
4. 删除(delete)
delete from 表名 where 条件;
要是不写条件,就全部删除了 ,但是表换在,只是表剩一个空表了
以上是关于MySQl表的增删查改(CRUD)的主要内容,如果未能解决你的问题,请参考以下文章
一文搞懂MySQL数据库基础与MySQL表的增删查改(初阶)