MySQL基础操作(续)

 日升时奋斗,日落时自省

目录

一、新增数据

1.单行数据,全列插入

2.多行数据,指定列插入

(1)多行数据

(2)指定列出入

二、查询

1、全列查询

 2、指定列查询

3、加一个别名

 4、去重(distinct)

 5、排序

 (1)单列进行排序

(2)多列进行排序

6、where 条件使用

(1)单个条件

(2)and与IN使用比较

(3)范围 between and使用

(4)like模糊查询

  (5)判断是否为空

7、limit查询

 三、修改

 四、删除

在基本操作之前,还需要知道一些MySQL的基本数据类型,SQL是比较早的语言,于当前的编程语言有稍许不同

在MySQL常用基本数据类型

整型和浮点型int(4个字节)float(4个字节)double(8个字节)decimal(精确计算)

浮点类型并不是很精确 

我们了解浮点型是计算精确数字的一种类型,但是在数据库存储中一般不用,涉及到“钱”这种需要精确的类型使用decimal

 字符串类型:varchar (65,535字节) 可变文本数据,text (65,535字节)长文本数据

日期类型:datetime (8个字节)从1000年到9999,这个时间戳,足够维持稳定了,建议平常使用的时候就使用这个日期类型,如果有想法可以去了解另一种日期类型。

一、新增数据

添加数据之前,这里提及一个写注释的方法“-- ” 或者 “#”   

创建一个数据库之后就需要添加数据,添加命令行又分为两种,一种是单行数据,全列插入,另一种是多行数据,指定列添加。

1.单行数据,全列插入

添加命令行 insert into 表名  values()

 这里就是单行数据插入,只插入一条数据

在写varchar类型时,使用的是单引号括起来,其实双引号也是可以的,在数据库中没有很强的类型划分,单双引号都可以表示字符串类型

2.多行数据,指定列插入

(1)多行数据

添加代码 insert into books values(值,值,值。。。),(值,值,值。。。)

 有时候呢,书可能还没有上架,没有价格,那现在这个指定的数据库可以插入吗?  当然可以,只需稍加注意,便可以实现

(2)指定列出入

insert into books(需要插入的指定类型) values ( 值,值,值。。);

(3) 多行数据+指定插入是可以同时使用的,就是连起来就可以了

 这里肯定也会有友友会对于这个没有插入的地方有疑惑,不插入的地方我怎么知道他是啥

这里显示为空,是默认来的,我们查看一下表的结构

 这里有一行默认值对应不同类型,都是null所以当我们没有给price赋值的时候,它就被默认为空

二、查询

前面为了方便我们解释添加操作,我们其实已经进行查询表的操作,能够更清楚的看清插入情况

1、全列查询

命令行 查询代码 select * from 表名    ;

解释: * 表示全列  ,其实这个也好理解,如果学有其他语言的话,例如java中就有导包,导包很多人为了方便*表示所有

当然查询方式全部列也不一定非得用* ,也可以把表中的每一个列都写出来

 2、指定列查询

命令行 select  列名(可以是多个) from 表名;

 当前想给书的库存显示加50本,那怎么查询加50以后的结果呢

 这不就来了,,但是就会觉得这个名字太长了,列名同时也被写成了加50,那想改怎么办,能改

3、加一个别名

命令行

(1)select 列名 as 别名 from 表名;   或者是    (2)select 列名 别名 from 表名 ;

 

建议: 使用带有as 取别名,看着更加规范

注意:这里进行查询的是一个临时表,并没有存在数据库中,下次查询的全列是还是原来的表单,(查询终究是查询)

 4、去重(distinct)

查询多数据的时候,难免会有重复的数据,去重就是不可避免的了

去重 命令行 select distinct 列名 from 表名;

 那去重多列可以吗,可以但是有要求就是,多列都是相同的

 错误示范:那肯定有试我把distinct加在一个列的后面不就行了,那来看下

 5、排序

命令行 : order by  列名 (desc/aec)

排序需要使用的是 order by 来解决问题

排序 分 升序 、降序

升序 表示的是 aec  (aecend)

降序 表示的是 desc  (descend)

这里desc是descend降序的缩写,但是我们之前看见了一个desc显示表结构的一个缩写

显示表结构的desc是 description 描述,这个单词的缩写

 (1)单列进行排序

命令行 select 查询列 from books order by 列 (默认是升序)

 对比后是有序的了,这里是升序 MySQL默认的使用了aec来修饰,这里我们就写一个降序

这里的命令行:

  select * from books order by amount desc

 那们来看一下别名能不能排序

 这里能看到 有别名 ,有排序(降序)

这里就有人想,我把别名写在后面,行不行,那就看你报不报错了

 实际上是不行的,MySQL里面还是先跑查询后才开始排序的

那null能排序吗,答案是能排序

 这里仍旧使用的是默认排序(升序),这么看见null是可以排序的,是比较小的,那有多小呢,若如果于到0,或者负数,他还是最小的吗,可以试一下(价格是不会为负数的,一个例子别当真)

 可以看见-10也是大于null的所以,null就当做是一个最小值就行了

(2)多列进行排序

这里排序肯定是可以多列,排序的,但是也会涉及到先后顺序

price(价格)为降序, amount(库存)为升序

 这里能看到,先以price为降序为主来排序,当前序列相同时,在进行amount的升序排列

这里有一个前后关系,靠前的会先进行排序,靠后的会在靠前列排序好后,才会进行

order by 后每一个列后都可以设置一个排序方式

6、where 条件使用

where会联系到一些运算符号

常见的比较运算符:>,<,<=,>=

等于运算符:=   (使用当前运算符等于   null是不安全的)

等于运算符(安全的): <=>

不等号:!= 

确定范围 : between 数值1 and 数值2       范围:[数值1,数值2]

包括 : IN(option。。) 选中一个就返回true

判断为空  is null    ,判断 不为空 is not null

模糊匹配 : like  (基本使用的就是%和_)(%表示的是一个字符串)(_表示的是一个字符)

模糊匹配速度比较慢,耗时多 

 逻辑运算符:
not  就是不等于  ,直接当做英文的意思来理解就行

and  就是和 ,直接当做英文的意思来理解就行

or    就是或 ,直接当做英文的意思来理解就行

命令行 :select * from books where  写条件

(1)单个条件

 (2)and与IN使用比较

命令行:where in (option    )

可以用and,也可以使用IN来写,看哪一种使用起来更加方便

 可以看的出in在这个方面的方便跟突出一些

(3)范围 between and使用

命令行: where 列名 between 数值1  and 数值2

条件可以是多个也可以是一个,使用and逻辑运算符连接一下 

 现在的写法是可以通过其他的形式来写,这个看也已经很简单了,还有更精简的

 使用between 。。and。。就可以解决上面的的问题

 (4)like模糊查询

命令行: where 列名 like ‘’;

%表示一个字符串可以表示前面的,也可以表示后面的

 _表示一个字符任意位置

 _只能表示一个字符不是字符串,所以在三国后面加一个不会被找到,你给后面加两个下划线(__)就可以了,

(5)判断是否为空

is null 为空 ,is not null 不为空

 这里拿为空和不为空的对比一下,基本就是全表了

7、limit查询

命令行 :select 列名 from 表名 limit ( 限制个数) offset  (从第几行开始)

查新也是一个比较危险的操作,因为查询的数据在公司可能会比较大,将内存吃满,影响服务器使用,不能接收,你当前也查询不出来,带来麻烦,这个限制查询个数就会很好的解决当前问题

 设置好限制的条件就可以快速查询

limit也可以与其他的两个关联使用

例如:取价位最高的三本书

 limit还可以从第几个行开始筛选,做到分页的效果

 这里总结一个例子,同时使用这三个条件的

建议使用 limit 多少行 offset 第几行开始

 三、修改

update 表名 set 改变的条件 where 修改条件 

大体上就是按照需求条件进行修改

 四、删除

删除可以删一行也可以删多行,配合where,order by,limit使用

 这里例如我们想要删除前5个

 可以限制删除的个数limit,也可以限制删除的条件where

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值