mysql有哪些基础知识

59次阅读
没有评论

共计 2433 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 mysql 有哪些基础知识,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一:连接 mysql

关于 mysql 的下载和安装我在这里就不说了,第一步我们要连接我们的 mysql 服务器,打开 cmd 命令切换到你安装 MySQL Server 的 bin 目录下,然后输入 mysql -h localhost -u root -p

其中 -h 表示你的主机地址(本机就是 localhost, 记住不要带端口号)-u 就是连接数据库名称 - p 就是连接密码。出现以下图就表示连接成功了

二:常用的 sql 语句

2.1:创建数据库 create database 数据库名

2.2:删除数据库 drop database 数据库名

2.3:查询系统中的数据库 show databases

2.4:使用数据库 use 数据库名

2.5:查询数据库的表 show tables

2.6:查询表结构 desc + 表名

2.7:查询创建表的 sql 语句 show create table + 表名

2.8:删除表 drop + 表名

2.9:一次删除多条表记录:delete t1,t2 from t1,t2[where 条件] 如果 from 后面用别名那么 delete 后面也需要用别名

3.0:一次性更新多次表 update t1,t2 …tn set t1.field=expr1,tn.exprn=exprn;

三:查询

3.1:select 普通查询

在这里我创建了一个数据放了 2 个表,看下图

3.2:查询不重复记录

用关键字 distinct 如下图

3.3:排序和限制

用关键字 order by 进行排序 desc 降序 asc 升序,limit 关键字进行限制输出

order by 后面跟字段(order by 只写一次即可先排第一个字段然后第二个以此类推,limit 后面第一个数是索性,第二个是输出的个数)。

四:聚合操作

很多情况下,用户都需要进行一些统计,比如统计整个公司的人数或者部门的人数,这时就会用到聚合操作。聚合操作语法入戏下

select【field1,field2…fieldn】fun_name from 表名

where 条件

group by field1,field2…fieldn

with rollup

having 条件

fun_name 叫做聚合函数或者聚合操作,常见的有 sum(求和)、count(*)记录数、max(最大值)、min(最小值)。

group by 表示要分类聚合的字段,比如按照部门分类统计的员工数量,部门就应该写在 group by 后面

with rollup 是可选语法,表示是否对分类聚合后的结合在进行汇总

having 表示对分类后的结果在次进行筛选

4.1:按照课程号进行统计班级的人数

4.2:按年级统计人数,并统计总人数

rollup 就是进行人数汇总的,从图中我们可以看出。

4.3:统计年龄不小于 20 的人数

having 和 where 的区别:having 是对聚合后的结果进行筛选,而 where 是在聚合钱就对记录进行筛选,如果逻辑允许,尽可能使用 where 先过滤记录,这样将减少结果集,对聚合的效率大大的提高,然后在根据 having 进行过滤。

五:表连接

如果需要同时显示多个表中的字段的时候,就可以使用表连接来实现这样的功能。从大类上可以分为内连接和外连接,他们的主要区别是:内连接仅仅筛选出 2 个表互相匹配的记录,而外连接会筛选出其他不匹配的记录,我们经常使用的是内连接。

5.1:查询学生所选择的课程

外连接又分为左连接和右连接。

左连接(包含所有左边表中的记录甚至右边表中没有和它匹配的记录)

右连接(包含所有右边表中的记录甚至左边表中没有和它匹配的记录)

从中可以看出左连接是以左边的表为主,右连接是以右边的表为主。

六:子查询

某些情况下,当进行查询的时候,需要的条件是另外一个 select 语句的结果,这个时候就用到了子查询,用于子查询的关键字主要包括 in、not in、=、!=、exist、not exist 等

如使用 in 进行查询

但是使用内连接同样能达到以上的效果

但是内连接的效率在很多情况下都是高于子查询的,所以如果不影响业务逻辑的前提下优先考虑内联。

七:联合

将 2 个表的数据按照一定规则下查询出来,将结果合并一起显示出来。这个时候我们就可以使用 union 或者 union all。具体语法如下

select * from t1 union\union all select * from t2 union\union all select * from tn;

union 和 union all 的区别在于 union 是在筛选的结果集去除重复的记录。

切记不可以 2 个表不匹配就进行联合,如下

如果我们每个表都查询 2 个字段

八:常见的函数

8.1:concat

cancat 函数:把传入的参数连成一个字符串,任何字符串和 null 进行拼接的结果都是 null,如下图

8.2:insert(str,x,y,instr) 函数,将字符串 str 从第 X 个位置开始,y 个字符长的字符串替换成 instr 下面把字符串 hellomysql2016 的第 5 个字符后面的 4 个字符替换成 you

8.3:Lower(Str) 和 Upper(Str)把字符串转换成小写或者大写。

8.4:left(str,x)和 right(str,x)分别返回字符串最左边的 x 个字符和最右边的 x 个字符,如果第二个参数为 null,不返回任何字符

8.5:ltrim(str) 和 rtrim(str) 去掉字符串左边或者右边的字符

8.6:repeat(str,x):返回 str 重复 x 次的结果

8.7:replace(str,a,b)用字符串 b 替换字符串 str 中所有出现字符串 a。

8.8:trim(str) 去掉开头和结尾的空格

8.9:substring(str,x,y):返回从字符串 str 中的第 x 个位置起 y 个字符串长度的字符串。

关于“mysql 有哪些基础知识”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计2433字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)