做app还是网站,国家摄影网站,玉山建设局网站,某网站注册需要邮箱是怎么弄前言#xff1a; #x1f31f;#x1f31f;本期讲解关于MySQL中CDUD的基础操作#xff0c;希望能帮到屏幕前的你。 #x1f308;上期博客在这里#xff1a;http://t.csdnimg.cn/fNldO #x1f308;感兴趣的小伙伴看一看小编主页#xff1a;GGBondlctrl-CSDN博客 目录
… 前言 本期讲解关于MySQL中CDUD的基础操作希望能帮到屏幕前的你。 上期博客在这里http://t.csdnimg.cn/fNldO 感兴趣的小伙伴看一看小编主页GGBondlctrl-CSDN博客 目录
️1.内容简介
️2.新增数据
2.1创建表
2.2非指定插入
2.3指定列插入
2.4插入多行数据 ️3.查询数据重点
3.1全列查询
3.2指定列查询
3.3表达式查询 3.4带别名的查询
3.5去重查询
3.6 查询时进行排序
3.7条件查询
3.8分页查询
️4.修改数据
️5.删除数据
️6.总结 ️1.内容简介
• 本期目标CRUD Create, RetrieveUpdateDelete即增加数据修改数据删除数据查询数据
• 注意在SQL语句中可以使用--加空格注解来实现表示说明解释
• 本期的重点是关于数据库表的查询内容小编会注重讲解以及本期的CRUD是基础操作下期小编会进行CRUD的进阶操作
️2.新增数据
2.1创建表
代码如下
mysql create table student(- id int,name varchar(10),- chinese decimal(3,1),- math decimal(3,1),- english decimal(3,1));
Query OK, 0 rows affected (0.01 sec)
注意这里的decimal的后面括号是3长度小数点后面1长度这里的创建表小编就不再过多赘述了。
2.2非指定插入
SQL执行语句insert into 表名 values值值值......
代码实例如下
mysql insert into student values(1,孙悟空,66,77,88);
Query OK, 1 row affected (0.00 sec)
注意这里的数据值的插入应该和上述创建表的列名因该一一对应否则会发生报错。
2.3指定列插入
SQL执行语句:insert into 表名 列名列名....values 值值....;
代码实例如下
mysql insert into student(id,name) values(2,唐三藏);
Query OK, 1 row affected (0.00 sec) 注意这里加了指定列进行插入后要按照指定的列进行插入其余的列默认为NULL。
2.4插入多行数据
SQL执行语句insert into 表名 values(值值...值值.......
代码实例如下
mysql insert into student values(3,猪八戒,67,56,87),
(4,沙悟净,57,99,67.5),
(5,白龙马,87,92,76);
Query OK, 3 rows affected (0.00 sec)
这里每行数据结束后要用逗号分隔开来。
一般来说在插入数据时就用插入多行数据的操作因为MySQL是服务器--客户端的程序每次进行插入时都要进行数据的响应到客户端所以一次性插入所有数据是提高效率的操作。 ️3.查询数据重点
3.1全列查询
SQL执行语句select * from 表名
mysql select * from student;
-----------------------------------------
| id | name | chinese | math | english |
-----------------------------------------
| 1 | 孙悟空 | 66.0 | 77.0 | 88.0 |
| 2 | 唐三藏 | NULL | NULL | NULL |
| 3 | 猪八戒 | 67.0 | 56.0 | 87.0 |
| 4 | 沙悟净 | 57.0 | 99.0 | 67.5 |
| 5 | 白龙马 | 87.0 | 92.0 | 76.0 |
-----------------------------------------
注意在全列查询中这里的( * )可以说是代表全部的列但是全列查询是一个危险的操作因为当数据太多时会造成拥堵尤其是在线上客户端时会造成“拥堵”的情况而使服务器挂掉。
所以在以后公司生产环境数据库中药谨慎使用
3.2指定列查询 和上述的指定的列进行插入的理解差不多都是查询或者增加指定的列对指定的列进行操作。
SQL执行语句select 列名列名... from 表名
代码实例如下
mysql select id,name from student;
-----------------
| id | name |
-----------------
| 1 | 孙悟空 |
| 2 | 唐三藏 |
| 3 | 猪八戒 |
| 4 | 沙悟净 |
| 5 | 白龙马 |
-----------------
5 rows in set (0.00 sec)
注意这里的指定列名是和插入数据不一样这不需要括号。
3.3表达式查询
表达式查询即在对列进行查询的时候可以对列进行计算“-*/”
SQL执行语句select 表达式 from 表名
实例代码如下
mysql select id,name,chinesemathenglish from student;
---------------------------------------
| id | name | chinesemathenglish |
---------------------------------------
| 1 | 孙悟空 | 231.0 |
| 2 | 唐三藏 | NULL |
| 3 | 猪八戒 | 210.0 |
| 4 | 沙悟净 | 223.5 |
| 5 | 白龙马 | 255.0 |
---------------------------------------
注意 • 这里的运算是列与列之间的运算。 • 在SQL语句中NULL参加的任何运算都是NULL。 • 这里的数据时数据库服务器进行的临时数据的查询不会影响到服务器原始的数据。 3.4带别名的查询
SQL执行语句select 表达式 as 别名 from 表名
代码实例如下
mysql select id,name,chinesemathenglish as total from student;
------------------------
| id | name | total |
------------------------
| 1 | 孙悟空 | 231.0 |
| 2 | 唐三藏 | NULL |
| 3 | 猪八戒 | 210.0 |
| 4 | 沙悟净 | 223.5 |
| 5 | 白龙马 | 255.0 |
------------------------
5 rows in set (0.00 sec)
可以看到这里的三列数据之和变成了总分这一列
这里的as是可以省去的但是小编是不建议省去的第一是为了代码的可读性第二是方便代码的编写知道每个代码代表的什么~~~
注意别名的汉语意思是为了用来表示比较复杂的表达式方便阅读代码~~~
3.5去重查询
这里的distinct修饰的列当有重复出现的数据时会删去之一
SQL执行语句select distinct 列名 from 表名
代码实例如下
mysql select id,name,math from student;
-----------------------------
| id | name | math |
-----------------------------
| 1 | 孙悟空 | 77.0 |
| 2 | 唐三藏 | NULL |
| 3 | 猪八戒 | 56.0 |
| 4 | 沙悟净 | 99.0 |
| 5 | 白龙马 | 92.0 |
| 6 | 女儿国国王 | 77.0 |
-----------------------------
6 rows in set (0.00 sec)mysql select distinct math from student;
------
| math |
------
| 77.0 |
| NULL |
| 56.0 |
| 99.0 |
| 92.0 |
------ 这里可以看到单独判定重复时可以删除其中一个77但是当我们判定多个列时
mysql select distinct id,name,math from student;
-----------------------------
| id | name | math |
-----------------------------
| 1 | 孙悟空 | 77.0 |
| 2 | 唐三藏 | NULL |
| 3 | 猪八戒 | 56.0 |
| 4 | 沙悟净 | 99.0 |
| 5 | 白龙马 | 92.0 |
| 6 | 女儿国国王 | 77.0 |
-----------------------------
并没有删除第六项女儿国国王这项
注意 在进行去重查询时判定列为一项时如果这一列存在相同的数据那么既删除其中一个 若判定为多个列时就要同时满足每个其中一行与另一行完全相同才可以进行去重否则不去重 3.6 查询时进行排序
SQL执行语句select 列名列名... from 表名 order by 列名 asc/desc
代码实例如下
mysql select id,name,chinese from student order by chinese desc;
--------------------------------
| id | name | chinese |
--------------------------------
| 5 | 白龙马 | 87.0 |
| 3 | 猪八戒 | 67.0 |
| 6 | 女儿国国王 | 67.0 |
| 1 | 孙悟空 | 66.0 |
| 4 | 沙悟净 | 57.0 |
| 2 | 唐三藏 | NULL |
--------------------------------
这里小编用的是desc代表从上到下为降序排序asc代表升序排序
注意 • 当我们没有规定按照某个排序规则进行排序时会默认为asc升序排序 • order by后面的列代表排序按照这里列进行排序即这个列是排序的基准数据列 • 这里的排序任然是针对临时数据进行排序的不会对mysql服务器原始数据造成影响 • 这里的排序也可以针对表达式可以加入别名进行排序 • 指定多个列进行排序时越靠近order by优先级越高当排序时存在相同的数据时则按照指定列下一级进行排序 以下就是针对表达式加别名进行升序排序
mysql select id,name,chinesemathenglish as total from student order by total ;
------------------------------
| id | name | total |
------------------------------
| 2 | 唐三藏 | NULL |
| 3 | 猪八戒 | 210.0 |
| 4 | 沙悟净 | 223.5 |
| 1 | 孙悟空 | 231.0 |
| 6 | 女儿国国王 | 233.0 |
| 5 | 白龙马 | 255.0 |
------------------------------
当有多个列进行排序时
mysql select id,name,math,english from student order by math,english desc;
--------------------------------------
| id | name | math | english |
--------------------------------------
| 2 | 唐三藏 | NULL | NULL |
| 3 | 猪八戒 | 56.0 | 87.0 |
| 8 | 二郎神 | 77.0 | 90.0 |
| 6 | 女儿国国王 | 77.0 | 89.0 |
| 1 | 孙悟空 | 77.0 | 88.0 |
| 7 | 玉皇大帝 | 77.0 | 70.0 |
| 5 | 白龙马 | 92.0 | 76.0 |
| 4 | 沙悟净 | 99.0 | 67.5 |
--------------------------------------
这里的设置就是先按照math进行升序排序排列完成后按照desc进行降序排序注意这里的降序排序是在math成绩相同时math相同的进行降序排序
3.7条件查询
SQL执行语句select 列名 from 表名 where 条件
以下是条件表 1.大于小于等于
代码实例
mysql select id,name,math from student where math80;
-----------------------------
| id | name | math |
-----------------------------
| 1 | 孙悟空 | 77.0 |
| 3 | 猪八戒 | 56.0 |
| 6 | 女儿国国王 | 77.0 |
| 7 | 玉皇大帝 | 77.0 |
| 8 | 二郎神 | 77.0 |
-----------------------------
5 rows in set (0.00 sec)mysql select id,name,math from student where math77;
-----------------------------
| id | name | math |
-----------------------------
| 1 | 孙悟空 | 77.0 |
| 6 | 女儿国国王 | 77.0 |
| 7 | 玉皇大帝 | 77.0 |
| 8 | 二郎神 | 77.0 |
-----------------------------
这里小编只列举了两个运算符意思是数学小于80的同学和数学等于77的同学
2.and与or
mysql select id,name,math,english from student where math60 or english80- ;
--------------------------------------
| id | name | math | english |
--------------------------------------
| 1 | 孙悟空 | 77.0 | 88.0 |
| 3 | 猪八戒 | 56.0 | 87.0 |
| 4 | 沙悟净 | 99.0 | 67.5 |
| 5 | 白龙马 | 92.0 | 76.0 |
| 6 | 女儿国国王 | 77.0 | 89.0 |
| 7 | 玉皇大帝 | 77.0 | 70.0 |
| 8 | 二郎神 | 77.0 | 90.0 |
--------------------------------------
mysql select id,name,math,english from student where math60 and english80;
--------------------------------------
| id | name | math | english |
--------------------------------------
| 1 | 孙悟空 | 77.0 | 88.0 |
| 6 | 女儿国国王 | 77.0 | 89.0 |
| 8 | 二郎神 | 77.0 | 90.0 |
--------------------------------------
and代表数学大于60并且英语成绩大于80的数据
or代表数学成绩大于60或者英语成绩大于80的数据
3.between and
代码实例
mysql select id,name,math from student where math between 60 and 90;
-----------------------------
| id | name | math |
-----------------------------
| 1 | 孙悟空 | 77.0 |
| 6 | 女儿国国王 | 77.0 |
| 7 | 玉皇大帝 | 77.0 |
| 8 | 二郎神 | 77.0 |
-----------------------------
这里的between and代表数学成绩在60到90之间这里的区间是闭区间
4.in离散区间
代码实例
mysql select id,name,math from student where math in(93,92,99,56);
-----------------------
| id | name | math |
-----------------------
| 3 | 猪八戒 | 56.0 |
| 4 | 沙悟净 | 99.0 |
| 5 | 白龙马 | 92.0 |
-----------------------
这里in代表的是离散区间当数学成绩等于括号里的内容时就进行打印
5.like模糊区间
这的%代指任意个任意字符
这里的_代指的一个任意字符
代码实例
mysql select id,name from student where name like 孙%;
-----------------
| id | name |
-----------------
| 1 | 孙悟空 |
-----------------
注意‘孙%’代表孙子开头‘%孙%’代表内容包含孙‘%孙’代表以孙结尾
5.null的判断
代码实例
mysql select id,name,chinese,english from student where chinese is null;
--------------------------------------
| id | name | chinese | english |
--------------------------------------
| 2 | 唐三藏 | NULL | NULL |
| 9 | 红孩儿 | NULL | NULL |
| 10 | 金池长老 | NULL | 98.0 |
--------------------------------------
3 rows in set (0.00 sec)mysql select id,name,chinese,english from student where chinese english;
-----------------------------------
| id | name | chinese | english |
-----------------------------------
| 2 | 唐三藏 | NULL | NULL |
| 9 | 红孩儿 | NULL | NULL |
-----------------------------------
2 rows in set (0.00 sec)
注意这里的is null代表的这一列而代表两边代表的数据相等这里比“”可以多判断一个null;
3.8分页查询
SQL执行语句select 列名 from 表名 limit 页数 offset 页数
代码实例
mysql select id,name,chinese,math,english from student limit 3;
-----------------------------------------
| id | name | chinese | math | english |
-----------------------------------------
| 1 | 孙悟空 | 66.0 | 77.0 | 88.0 |
| 2 | 唐三藏 | NULL | NULL | NULL |
| 3 | 猪八戒 | 67.0 | 56.0 | 87.0 |
----------------------------------------- 这里表示只显示三行数据加入offest之后就从offest 指定的第几个数据1开始查询
例如显示7,8,9行时:
mysql select id,name,chinese,math,english from student limit 3 offset 6;
--------------------------------------------
| id | name | chinese | math | english |
--------------------------------------------
| 7 | 玉皇大帝 | 56.0 | 77.0 | 70.0 |
| 8 | 二郎神 | 58.0 | 77.0 | 90.0 |
| 9 | 红孩儿 | NULL | 99.0 | NULL |
--------------------------------------------
这里主要运用在显示数据给客户端时数据过多从而进行分页的操作。当然这里也可以加入排序操作小编就不在演示了
️4.修改数据
SQL执行语句update 表名 set 列名值 where 条件
代码实例
mysql update student set english66 where name孙悟空;
Query OK, 1 row affected (0.00 sec)
mysql select * from student limit 3;
-----------------------------------------
| id | name | chinese | math | english |
-----------------------------------------
| 1 | 孙悟空 | 66.0 | 77.0 | 66.0 |
| 2 | 唐三藏 | NULL | NULL | NULL |
| 3 | 猪八戒 | 67.0 | 56.0 | 87.0 |
-----------------------------------------
如上图此时的孙悟空的英语成绩就为66了。
当修改多个列时
mysql update student set english80,math80 where name白龙马;
Query OK, 1 row affected (0.00 sec)
此时就能够进行多个列修改
注意如果update 后面不写任何的条件就表示对所有数据进行修改
️5.删除数据
SQL执行语句delete from 表名 where 条件
代码实例
mysql delete from student where name红孩儿;
Query OK, 1 row affected (0.00 sec)这里就是代表删除名字是红孩儿的一行
注意 • 这里的删除表示的是删除一行数据而不是一个数据 • 当没有条件时就会删除整张表的内容但是表还在而用drop 时就是数据和表这个框架• 一起删除。 ️6.总结
本期小编主要讲解了关于数据库表的CRUD的操作即增加数据查询数据修改数据和删除数据每种操作的SQL语句都做了罗列并且附上代码方便小伙伴们学习了解
~~~~最后希望与诸君共勉共同进步 以上就是本期内容了 感兴趣的话就关注小编吧。 期待你的关注~~~