对于MySQL数据库,笔者在上篇文章就详细的介绍了如何使用及其创建数据表/删除表等操作,上篇文章是基础,这篇文章是升华部分!!对于MySQL数据库的增删改查会是将来我们在进行工作中最经常使用的部分!!那么,这就需要我们着重进行了解了!!
注意:本文是在上篇文章的基础上进行扩展的!!如果你是一个MySQL小白,那么,请先看之前的那篇文章,如果你已经接触过MySQL,那么请忽略!!!!!!!
对于MySQL数据库的增删改查,主要涉及四个过程:!!那么,接下来的部分,我们便深入了解一下MySQL的增删改查吧!!
在进行表数据的增删改查之前,我们仍然需要先选中某一个数据库!!因此笔者的准备操作为:
经过上述的代码,我们在MySQL中,可以看出……
那么,有了上述的操作,我们便可以在student表中,进行数据的增删改查了!
新增/插入数据 insert into 表名 values(值,值,值,…………);
在这插入数据的时候,我们需要注意的是:!!!
当然,在插入的时候,我们也可以!!
通过查看数据表student中的数据,我们可以看出……
对于这个代码,我们在后面进行讲述!!
对于我们第二次插入的数据,指定列插入的情况,其余没有插入的列,会出现默认值null!!
当然,我们也能一次插入多组数据!!
这个是对于数据表student全部插入多组数据,当然也能选择某个列进行多组插入数据!!这里便不再讲解!!语法一致!!
那我们再次查看表中的数据!
此时,根据结果,我们可以看出,成功的插入了多组数据!!
!!重点照顾!!
先创建一个表吧!!
上述创建了一个数据表,名称为homework
查看homework的表结构!
那么,接下来,我们就可以进行时间日期的插入了!!
1.手动插入时间!!
值得注意的是:在手动插入时间日期的时候,我们需要严格按照标准来!!
注意区分!!
插入瞬间的时间日期!!
sql提供了一个特殊的函数now(),来表示插入瞬间的时间日期!!
经过这个now()函数的插入,我们在查看数据表homework的所有数据的时候:可以看出时间对比!!
由于笔者的忙碌(笨),导致浪费了几秒钟!!抱歉!!当然这也能看出笔者写作的不易!!
2.查找操作
对于数据库的查找操作也很重要!!
全列查找:查找这个数据表的所有的行和列!(这个数据表中有啥,都给找出来!)
select* from 表名
虽然上述的这个代码,能够显示出来所有的行和列,但是,这个操作却是很不安全!!假如数据库的数据很多,几亿??几十亿??这种select* 的操作将会很不安全!!
指定列查询 select 列名,列名,……from 表名
我们需要注意一下指定列查询与全列查询的区别!!
通过指定列查询,我们可以减少不必要的查询!!
查询还可以是表达式!查询的过程中,可以做出简单的运算(列和列之间的运算)
注意一下运行结果中id列的区别!!
当我们再次进行查询的时候……
经过结果,我们可以看出原始的数据并没有发生改变!!吓死宝宝了可!
因此,在查询的时候,通过简单的运算,并不会改变原始的数据!只是会创建一个临时表,跟原始数据无关!!
当然,,我们也可以把多个列放在一块进行运算!!
创建一个数据表!并进行插入数据!
查看表中的所有数据!
在这个基础上,我们来进行多个列放在一起进行运算的操作!!
按照表达式查询,临时表的列名与表达式一样!这样很不直观!!很不好看!!
4.因此,我们可以通过!!
我们可以通过两个列名的对比,来看出别名的好处/优势!!
5.去重查询 distinct 可以针对指定的列进行去重查询(把重复的行去掉,只保留一行)
很明显上述代码的最后结果,没有重复的数据!!
需要注意的是:distinct指定多个列的时候,要求这些列的值都相同,才视为重复!!
6.查询结果排序 order by 子句(指定某些列进行排序(升序,降序))!
按照数学成绩进行升序排序!!
对于该段的代码,我们的运行结果为:
对于MySQL而言,如果你不指定排序,那么,输出的MySQL结果,可能是随机的!!是不可预期的!!
如:
就比如这个代码而言:
虽然目前看着很有顺序,但是,当你的数据多了起来!比如:几万??几亿??几十亿??又会是一个不一样的结果!!希望可以注意一下!!
!!(注意:对多个列进行排序的时候,写在前面的列优先排序,当出现数据一样的情况下,会在根据第二个列来进行排序!!
降序排序!!主要用到了desc
对数学成绩进行降序排序!
该段代码的最后结果为:
上述笔者讲述了一个升序排序,一个降序排序!!那么,希望大家能够注意一下语法问题!!!
我们也可以对多个列进行降序排序:如:先按照数学成绩降序排序,如果数学成绩相同,则按照语文成绩进行降序排序!!
运行结果为:
在日常生活中,我们所遇到的排序,大多数是按照多个列来进行排序的,那么,咱们最关键的就是要明确排序的列之间的主次关系!!
7.条件查询
所谓的条件查询,就是在查询的时候,指定筛选条件,符合条件的留下,不符合条件的直接pass!
条件查询,主要依靠:来完成条件查询!
查询英语成绩小于60的
经过上述的代码,我们可以看出来,所保留的结果都是英语成绩小于60的数据!!
对于该过程,我们可以理解为:
针对该数据库的表进行遍历,取出每一行的数据,把数据代入到条件中,看条件是否符合!如果为真,则保留,如果为假,则pass,进行下一条!
!
筛选总分小于200的!
对于该段代码,我们需要注意表达式!!代码的运行结果为:
对于上述的结果,不相信的老铁,可以用计算器来算算哟!!
当然,在上述的这个代码中,指定的条件,在select中可以出现也可以不出现!
该段代码的运行结果为:
值得注意的是:上述的运行结果,虽然chinses+math+english的列名,不怎么美观,但是,笔者仍然!!所以大家!!这个是!!!
对于该错误的代码,最后的运行结果为:
对于这个代码,这就需要我们来深入了解一下MySQL的执行顺序了!!
在上述的这个错误实列代码中,执行规则为:
遍历每一行
把这一行带入到where的条件中
符合条件的结果,再根据select这里指定的列进行查询/计算
注意:别名不能当作where的条件!这个和当前的sql语句的执行顺序有关,也是MySQL对于语法所规定的!!
查询语文大于80并且英语大于80
运行结果为:
查询语文大于80或者英语大于80的!
运行结果为:
筛选语文成绩在80到90之间的
写法1:
该段代码的运行结果为:
写法2:
该段代码的运行结果为:
数学成绩在58或者59或者98或者99之间的
写法1:
写法2:
模糊查询:like----->模糊匹配
所谓的模糊查询:不要求元素完全相识,只要满足一定的规则就可以了!
like只支持两种用法!!
比如:查找名字性孙的同学:
查找以孙结尾的名字
查找包含孙的名字
对于_(下划线)的使用不多,所以更多的还是使用%作为模糊查询!!
(在很多地方都可以见到)
就比如400多条的数据,,总不能一页全部显示出来吧!!所以,我们可能需要分页,分成40多页,一页十个数据……
使用limit关键字:限制查询结果是几个!!
查询前3条的数据!
当然,!
查询下标为3开始的3条数据!(从第四个数据开始)
查询下标为6开始的3条数据!(从第七个数据开始)
limit限制最多显示几条数据,如果数据不够,那么,有几个算几个!!
当然,我们进行了limit的分页查询,那么,我看也可以进行和之前的那些进行查询条件进行搭配使用!!
比如:我们要查询总分前三名的同学信息:
计算每个同学总成绩(表达式查询)
按照成绩进行排名(降序)
取前三条记录
那么,请看接下来的代码吧!!
该段代码的运行结果为:
3.修改 update 关键字
对于修改是一个很简单的语法,但是,对于大多数同学会记不住!!感觉太简单了,不用记,看看就行了,但是,等到后序在使用的时候,就会导致出现不会/写不出的情况!!
基础的语法为:
将孙悟空的数学成绩修改为80分;
代码的运行结果显示,我们修改成功了!!
然后我们在查看一下孙悟空同学的成绩即可看出是否修改!!
根据运行结果,我们可以看出,孙悟空的数学成绩成功的改为80分了!!
当然,对于修改的操作,我们也可以对多个列进行修改!!
将曹孟德的语文,数学,英语成绩都改为99分!
然后我们在查看一下曹孟德的成绩
那么,请看接下来的运行结果!
当然,我们也可以对所有的数据进行指定列进行修改!!
将总分为前三名的数学成绩都减30分!!
代码的运行结果为:
当然,如果你要是msth=math+30,那么,你就要考虑数据是否超出定义的范围了!!!
如果超出数据定义的范围,那么,可能会出现警告/不进行修改!!
将所有同学的语文成绩都改为0.5倍!!
那么,需要我们注意一下,该段代码的最后运行结果!
显而易见的:出现了警告!!那么,我们可以查看一下警告!
根据上述的警告原因,我们可以看出,数据的第2行和第5行发生了截断!!主要还是由于定义的数据与发生截断后的数据(小数点后几位)不匹配!!
所以update 的修改操作很危险!!
4.删除记录(行) 以行为单位的删除 delete
最基础的语法为:
删除姓孙同学的记录!
那么,我们查看一下表中所有的同学,看看还有没有孙姓的学生?
根据最后的结果显示,表中没有孙姓的同学了!!
因此,delete 就是把条件匹配出来的结果全部删除!
当然,如果我们!!
当然,如果要删除的数据量很大,很大,我们可以在删除的时候用CTRL+C(^C)进行强制中断!!
小结一下,瞬间开心!
到此为止,MySQL数据库的基础语法,笔者已经讲解的差不多了!!若有其他不足之处,那么,请移步其他文章!!尴尬!!害拍嘴喷!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/7354.html