My SQL—CRUD初阶(增删改查)

这里写目录标题

  • 回顾
  • My SQL基本CRUD(增删改查)操作
    • 新增
    • 查找
      • 全列查找
      • 指定列查询
      • 指定查询字段为表达式
      • 查询字段指定别名
      • 去重
      • 排序
      • 条件查询
      • 模糊查询
      • 分页查询
    • 修改
    • 删除

回顾

My SQL—CRUD初阶(增删改查)_第1张图片

类似的,SQL Server 和Oracle也是采取类似的方式来组织数据的,这样的数据库叫做“关系型数据库”。

2.创建表
create table 表名(列名,列类型,列名,列类型…);

在My SQL里,也和其他的编程语言类似,提供了一些数据类型。常用的类型,主要有:
1.int
2.double()
3.varchar()
4.datetime

3.查看表
show tables;
4.查看表结构
desc 表名;

查看到一张表里面有几列,每一列的类型和其他信息。

5.删除表
drop table 表名:
非常危险,一旦删除,可能就恢复不了。

My SQL基本CRUD(增删改查)操作

新增

inset into 表名 values(值,值…);

My SQL—CRUD初阶(增删改查)_第2张图片
insert 也可以一次插入多个行
My SQL—CRUD初阶(增删改查)_第3张图片

values后面的每个()都对应到一行,可以一次性的带有多个(),多个()之间使用逗号来分隔。

类似的功能,也可以一次插入一行,分三个insert语句来插入
insert into student values(1,‘zahngsan’,11,66.8);
insert into student values(2,‘wangwu’,12,64.8);
insert into student values(1,‘lisi’,51,99.9);
一次插入N条记录的速度比一次插一条,分N条插入,要快很多

My SQL—CRUD初阶(增删改查)_第4张图片

查找

全列查找

直接把一个表的所有列和所有行都查询出来。
select * from 表名;

*叫做“通配符”,表示一个表的所有列。

My SQL—CRUD初阶(增删改查)_第5张图片
注:把一个表里面的所有行和所有列都查找到,查找的结果是一个“临时表”。之前说的数据库的表,都是在硬盘上的。而此处的这个查询结果临时表,不是在硬盘上,而是在内存中,随着进行了输出之后,数据也就被释放了。
My SQL—CRUD初阶(增删改查)_第6张图片

select * from 表名 是一个非常危险的操作。
如果直接在生产环境的服务器上执行 select * from 表名,可能会带来灾难。
生产环境保存的数据可能是非常大的。
如果进行全列查询操作,此时就意味着My SQL服务器就会疯狂的来读取硬盘数据,瞬间就会把硬盘IO吃满,硬盘读取的速度是存在上限的,尤其是机械硬盘。同时My SQL服务器又会立即的返回响应数据,由于返回响应的数据也很大很多,也会把网卡的带宽吃满。
一旦服务器的硬盘和网络被吃满,此时数据库服务器难以对其他用户端的请求作出响应。(而生产环境的服务器,无时不刻要给普通用户提供响应)

指定列查询

只查询自己关注的列
select 列名,列名…from 表名;
My SQL—CRUD初阶(增删改查)_第7张图片

这里在查询的时候会显示的告诉数据库要查询的是哪些列,数据库就会有针对性的返回数据了。

指定查询字段为表达式

在查询的时候,同时进行一些运算操作(列和列之间)
例如:期望查询结果中的语文成绩比真实的多10分。
My SQL—CRUD初阶(增删改查)_第8张图片

查询每个同学的总分(语文+数学+英语)
My SQL—CRUD初阶(增删改查)_第9张图片

查询字段指定别名

相当于是给查询结果的临时表,指定新的别名。
My SQL—CRUD初阶(增删改查)_第10张图片

去重

针对查询的结果,把重复的记录去掉
My SQL—CRUD初阶(增删改查)_第11张图片

去重之后,98的得分就只有一个了。

如果是针对多个列进行去重,就得这多个列的值都相同的时候才能视为去重。
My SQL—CRUD初阶(增删改查)_第12张图片

排序

针对查询结果(临时表)进行排序。(不会影响到数据库服务器上的原始数据)
select 列名 … from 表名 order by 列名
针对数学成绩进行升序排序
My SQL—CRUD初阶(增删改查)_第13张图片
针对数学成绩进行降序排序
My SQL—CRUD初阶(增删改查)_第14张图片

有的数据库记录中是带有NULL值的,像这样的NULL认为是最小的。(升序在最前面,降序在最后面)
My SQL—CRUD初阶(增删改查)_第15张图片

根据表达式进行排序
My SQL—CRUD初阶(增删改查)_第16张图片
根据别名进行排序
My SQL—CRUD初阶(增删改查)_第17张图片
通过order by 来指定多个列进行排序
先根据第一个列进行排序,如果第一个结果相同,相同结果之间通过第二个列排序。

My SQL—CRUD初阶(增删改查)_第18张图片
如果不指定多个列的话,只有指定的一个列,此时如果结果相同,彼此之间的顺序是不可预期的。

NULL和其他值一起运算结果还是NULL,和0没有关系。

条件查询

在select后面加上一个where字句,后面跟上一个具体的筛选条件。
select 列名 from 表名 where条件;
My SQL—CRUD初阶(增删改查)_第19张图片

=是比较,而不是赋值。
NULL=NULL 结果仍然是NULL,会被视为假,条件不成立。
<=>也是比较相等,用法和=差不多,只是<=>比较空值结果是真。如:NULL<=>NULL比较,结果是真。

My SQL—CRUD初阶(增删改查)_第20张图片

BETWEEN a0 AND a1构成的是闭区间

IN(option)通过后面的这个()给出的几个固定的值,判断当前结果是否在这个值当中。

is NULL
is NOT NULL
专门用来比较空值的。

like 针对结果进行“模糊匹配”

My SQL—CRUD初阶(增删改查)_第21张图片
查询英语不及格的同学。
My SQL—CRUD初阶(增删改查)_第22张图片
查询语文成绩好于英语成绩的同学
My SQL—CRUD初阶(增删改查)_第23张图片
查询总分在200以下的同学
My SQL—CRUD初阶(增删改查)_第24张图片

where字句不能使用别名

查询语文成绩大于80,并且英语成绩大于80的同学
My SQL—CRUD初阶(增删改查)_第25张图片

查询语文成绩大于80,或者英语成绩大于80的同学
My SQL—CRUD初阶(增删改查)_第26张图片
and的优先级高于or
如果想打破优先级,需要加()
My SQL—CRUD初阶(增删改查)_第27张图片
My SQL—CRUD初阶(增删改查)_第28张图片
查询语文成绩在[80,90]的同学
My SQL—CRUD初阶(增删改查)_第29张图片
My SQL—CRUD初阶(增删改查)_第30张图片
查询数学成绩是58,59,98,99的同学
My SQL—CRUD初阶(增删改查)_第31张图片
My SQL—CRUD初阶(增删改查)_第32张图片

模糊查询

like,搭配通配符来使用

%代表任意个任意字符(也包含0个字符)

查找姓孙同学的成绩

My SQL—CRUD初阶(增删改查)_第33张图片
My SQL—CRUD初阶(增删改查)_第34张图片

_代表只能匹配一个任意字符

My SQL—CRUD初阶(增删改查)_第35张图片
My SQL—CRUD初阶(增删改查)_第36张图片

分页查询

SQL中通过limit来实现分页查询
My SQL—CRUD初阶(增删改查)_第37张图片

limit可以搭配条件,以及order by等操作来组合使用。

查询总成绩前三的同学
My SQL—CRUD初阶(增删改查)_第38张图片

select * from 表名,对于生产环境的数据库来说,非常危险,其实危不危险,看返回的结果数量是多还是少,返回的数据量少,其实还好,返回的数据比较多,就比较危险。

如何才能让sql不危险???
1.限制更严格的条件 where
使用limit更稳妥的限制。

修改

update 表名 set 列名=值,列名=值 where 条件;

set 不能省略
where指的是针对哪些进行修改,符合条件的就会修改,如果省略where,就会修改所有的记录。

注:update是会修改数据库服务器上面的原始数据

将孙悟空的数学改为80分
My SQL—CRUD初阶(增删改查)_第39张图片

此操作也非常危险。
修改如果出现操作失误,危害可能比删库还严重!!1
对于删库操作,一般公司都是有“预案的”,就可以快速的吧数据还原回来。对于误修改操作,最麻烦的是有些修改了,有些没修改。

将曹孟德的数学改为60,语文改为70
My SQL—CRUD初阶(增删改查)_第40张图片
将总成绩倒数前三的3位同学的数学成绩加10分
My SQL—CRUD初阶(增删改查)_第41张图片
将所有同学的语文成绩除以2
如果要修改表里的所有数据,不加where就可以了
My SQL—CRUD初阶(增删改查)_第42张图片

删除

delete from 表名 where 条件;
My SQL—CRUD初阶(增删改查)_第43张图片

一旦这里的条件写错,影响非常大!!!
如果不写条件,会把整张表的数据给删除掉!(和drop table 不一样)

My SQL—CRUD初阶(增删改查)_第44张图片

这里是删除表中所有的数据,得到一个空表,如果是drop table ,表都没有了。

你可能感兴趣的:(sql,数据库,database)