当前位置:网站首页>MySQl表的增删查改(CRUD)
MySQl表的增删查改(CRUD)
2022-08-08 12:28:00 【快到锅里来呀】
新增
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 条件;
要是不写条件,就全部删除了 ,但是表换在,只是表剩一个空表了
边栏推荐
- Geoffrey Hinton:深度学习的下一个大事件
- 大缓存更强劲,搭载AMD Milan-X的浪潮GPU服务器NF5468A5深度评测
- Replication监控及自动故障切换
- RT-Thread记录(三、RT-Thread 线程操作函数及线程管理与FreeRTOS的比较)
- Docker - persistent database (data volume)
- 宝塔实测-TinkPHP5.1框架小程序商城源码
- 逐步手撕轮播图3(分步教程)
- STM32入门开发 制作红外线遥控器(智能居家-万能遥控器)
- 论文阅读《Omnidirectional DSO: Direct Sparse Odometry with Fisheye Cameras》
- changes not staged for commit 解决办法
猜你喜欢
Fluorite, millet against smart camera
案例分析 | 宜家以双钻设计模型探索线上零售新业务
如何在go重打印函数调用者信息Caller
Jenkins-安装(2)
第十二届蓝桥杯《杨辉三角》-二分法
In-depth analysis of the soul of C language -- pointer
别再到处乱放配置文件了!试试我司使用 7 年的这套解决方案,稳的一秕
报错 | Cannot find module ‘@better-scroll/core/dist/types/BScroll‘
高可用的并行MySQL数据同步及分布式
Geoffrey Hinton:深度学习的下一个大事件
随机推荐
Collection of shell basics
华中科大提出VGNetG:“不做选择,全都要”轻量化主干网络!
处理器的调试接口
高可用的并行MySQL数据同步及分布式
Combining "xPlus" to discuss the innovation and change of software architecture
Jenkins - install (2)
[C language] Dynamic memory management
2022-08-03
哪来的TB级推荐模型
宏任务和微任务——三目算符与加号优先级——原生的js如何禁用button——0xff ^ 33 的结果是——in的用法——正则匹配网址
迁移学习(Transfer Learning)的背景、历史及学习课
老手也常误用!详解 Go channel 内存泄漏问题
2022-08-05
看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
牛 plus,多层嵌套动态 JSON 该如何解析总结
qsort 函数的使用及其模拟实现
MySQL安装及使用
硬盘数据恢复工具
SSL证书最长有效期13个月,还有必要一次申请多年吗?
curl获取harbor镜像仓库项目下的镜像列表