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)

2. 查询(retrieve)

2.1 全列查找

2.2 指定列查询

2.3 查询字段为表达式

2.4 给查询结果的列起别名

2.5 查询去重

2.6 对查询结果进行排序操作

2.7 条件查询

2.7.1 基本查询 

2.7.2 范围查询

2.7.3 模糊查询

 2.8 分页查询

3. 修改(update)

4. 删除(delete)


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数据库必会的增删查改操作(CRUD)

MySQL数据库必会的增删查改操作(CRUD)

一文搞懂MySQL数据库基础与MySQL表的增删查改(初阶)

2016/3/13 MySQL 增删查改 CRUD 用代码实现

MySQL:CRUD(增删查改)

MySQL表的约束和表的增删查改