0


数据库系列三

1、MySQL默认的字符集及修改

(1)默认字符集

MySQL默认的字符集是拉丁文,我们通过SQL命令进行查看当前的字符串类型

show variables like'%character%';

请添加图片描述

(博主之前就修改了MySQL字符集的类型,该图是修改后的)

(2)修改字符集类型

要想插入中文的字符,我们必须修改字符集类型。

1、在电脑开始界面找到MySQL(安装操作在博主的数据库系列一),找到MySQL 5.7 Command Line Client,右键,点击更多,再点击打开文件位置,如图:

在这里插入图片描述

2、选中第一个(后面带有-Unicode)的,右键,点击属性,将目标里的全部复制到记事本上。
在这里插入图片描述
在这里插入图片描述

3、找到 “–defaults-file=C:\ProgramData\MySQL\MySQL Server 5.7\my.ini” 这行,通过这行找到my.ini的路径,找到my.ini后,先复制一份,避免接下来配置修改出错的情况。

在这里插入图片描述

4、选中my.ini右键用记事本打开,找到以下字样
在这里插入图片描述

在下面加入一行配置:default-character-set=utf8

再找到[mysqld],在下面加入一行配置:character-set-server=utf8 (mysqld就是mysql的服务器)

其他的配置不要乱动!其他的配置不要乱动!其他的配置不要乱动!

一定要保存修改后再退出!!!

5、然后打开服务,找到MySQL57

在这里插入图片描述

右键点击重新启动,关闭服务。

6、再次创建新的数据表和数据表(旧的数据库和数据表无效)的时候,字符集类型就改为了utf8,varchar类型在 插入命令 中就可以输入 中文 了,你可以使用:

show variables like’%character%’; 进行验证,至此,字符集修改完毕。

2、插入命令

insert into [数据表名] values ();

执行插入命令之前,需要先选中数据库(使用数据库),并且插入命中()里的内容要跟你要插入的表里的数据类型相对应:

如果全选的话,[数据库名] 后就不需要修改;

如果只插入一些数据类型的话,[数据库名] 后必须要说明。

例如:我创建了一个数据库,选中数据库后建立了一个(student)学生表

createtableifnotexists student(-> id int,-> sn int,-> name varchar(20),-> qq_mail varchar(20));

在这里插入图片描述

现在我要使用插入命令插入具体数据:

insertinto student values(1,11,'小何','[email protected]');

在这里插入图片描述

(select * from student;在下面会具体说到)

如果我只想插入id、name以及qq_mail,那么就需要对插入命令做出修改:

insertinto student (id,name,qq_mail)values(2,'张三','[email protected]');

在这里插入图片描述

数据表里的数据值默认为NULL

插入命令,可以插入一组数据,还可以插入多组数据。

insertinto[数据表名]values(),(),()...;

()与()之间用逗号分割。

如果可以多次一组插入和一次多组插入,你会选择哪种?

正解:选择一次多组插入。

mysql是一个"客户端""服务器"结构的程序。我们在客户端输入的SQL都会通过网络传输给服务器,由服务器来进行具体操作。

如果选择一次多组插入,客户端就会向服务器发送一个带有多组数据的请求,服务器也只会对这一个要求进行操作并返回一个响应;

如果选择多次一组插入,那么向服务器发送的要求就有多个,服务器的操作也会有很多,返回的响应也会有多个,那么网络传输的开销就大大增加了。

3、查询数据表

(1)全列查找

select*from[数据表名];

在这里插入图片描述

如果数据表里的数据很大的话,使用全列查找可能响应的时间很长,可能将机器的磁盘和网络带宽给吃满。

(2)指定列查找

select[列名],[列名]from[数据表名];

在这里插入图片描述

select 指定列查找 比 select * 效率要高一点。

(3)查询字段为表达式

select[列名],[表达式]from[数据表名];

在这里插入图片描述

select 查询的结果是一个“表结构”-临时表,不会永久存在。

(4)为表达式起别名

select 表达式 as 别名 from[数据表名];

在这里插入图片描述

as 可省略。

(5)去重查询

selectdistinct 列名 from[数据表名];

当列里有相同的数据时,用该命令保证数据唯一性。

例如:

selectdistinct math from exam_result;

(6)排序查询

select 列名 from[数据表名]orderby 列名/表达式 asc/descc;

排序分为升序排序(ASC)和降序排序(DESC)

例如:升序排序

在这里插入图片描述

默认为升序!!!

降序排序
在这里插入图片描述

排序的时候,如果某个值是NULL,那么这个值就是最小的值。

(7)条件查询

select 列名 from[数据表名]where+条件;

比较运算符:

运算符                说明
>,>=,<,<=            大于,大于等于,小于,小于等于
  =                   等于
 <=>                  比较老的等于
 !=,<>                不等于
between a0 and a1     范围匹配,[a0,a1],在范围中返回true
in (option,...)       判断值是否在()若干个选项中存在
is null               是null
is not null           不是null
like                  模糊匹配

逻辑运算符:

运算符                说明
 and                  多个条件必须都为真,返回值才为真
 or                   任意一个条件为真,返回值就是真
 not                  条件为真,返回值就为假

当where后的条件中既有and和or的时候,and 的优先级高于 or。

在这里插入图片描述

(8)分页查询

通过分页查询限制一次查询返回的结果数目

使用 limit 完成分页查询,例如:

在这里插入图片描述

博主水平较低,如果有误,请多多指教!!!


本文转载自: https://blog.csdn.net/qq_49324828/article/details/122418740
版权归原作者 抓住努力的尾巴呀 所有, 如有侵权,请联系我们删除。

“数据库系列三”的评论:

还没有评论