网站跟app的区别是什么,html代码自动生成,个人养老金制度是什么意思,个人工作室和公司区别目录 创建数据库创建数据库案例字符集和校验规则查看系统默认字符集以及校验规则查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响 操纵数据库查看数据库修改数据库删除数据库数据库备份和恢复表的备份和恢复查看连接情况 创建数据库
创建数据库的… 目录 创建数据库创建数据库案例字符集和校验规则查看系统默认字符集以及校验规则查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响 操纵数据库查看数据库修改数据库删除数据库数据库备份和恢复表的备份和恢复查看连接情况 创建数据库
创建数据库的SQL如下
CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSETcharset_name] [[DEFAULT] COLLATEcollation_name];说明
大写的表示关键字[] 是可选项CHARACTER SET指定数据库采用的字符集COLLATE指定数据库字符集的校验规则。
如果创建数据库时未指明数据库的编码格式或校验规则则默认使用MySQL配置文件中对应的编码格式或校验规则。
创建数据库案例 创建名为 db1 的数据库 说明当我们创建数据库没有指定字符集和校验规则时系统使用默认字符集utf8校验规则是utf8_ general_ ci。 创建一个使用utf8字符集的 db2 数据库 SQL中的charsetutf8也可以写成character setutf8或character set utf8。 创建一个使用utf字符集并带校对规则的 db3 数据库 SQL中的collateutf8_general_ci也可以写成collate utf8_general_ci。
字符集和校验规则
查看系统默认字符集以及校验规则
通过查看MySQL系统变量variables中的character_set_database、ollation_database可以得知系统默认的字符集以及校验规则。 如果是在指定数据库下使用该SQL则查看的是该数据库对应的字符集以及校验规则。
查看数据库支持的字符集
使用 show charset 可以查看数据库支持的字符集。 字符集主要是控制用什么语言比如utf8就可以使用中文。
查看数据库支持的字符集校验规则
使用 show collation 可以查看数据库支持的字符集校验规则。 校验规则对数据库的影响 字符集编码格式和字符集校验规则的区别 字符集编码格式指的是在存储数据时各个字符的底层编码用于指定数据的存储格式。字符集校验规则是在字符集内用于比较字符的一套规则用于对数据进行比对。
比如我们存储数据的时候是按照utf8的格式进行存储的那么将来在对数据做比对时也必须按照utf8的格式进行比对因为“存数据”和“取数据”的方式必须保持一致。
在对数据库当中的数据进行增删查改时不可避免的需要进行数据的比对因为在对数据做增删查改之前都需要先通过比对的方式找到目标数据。 校验规则对数据库的影响 我们知道字符集编码格式和校验规则必须是对应的。但实际同一中字符集编码格式一般会有多种可选择的校验规则比如utf8编码格式的校验规则有utf8_general_ci、utf8_bin、utf8_unicode_ci等校验规则。
使用不同的校验规则操作数据库中的数据可能会得到不同的结果比如utf8_general_ci校验规则在比对数据时是不区分大小写的而utf8_bin校验规则在对比数据时则是区分大小写的。 操作数据库时采用utf8_general_ci校验规则 创建数据库时指定数据库的校验规则为utf8_general_ci数据库的编码格式默认为utf8。 在该数据库中创建一个简单的person表由于创建未指定表的编码格式和校验规则因此person表将继承当前数据库的编码格式和校验规则。 此时向表中插入一些数据通过select语句可以查看插入表中的数据。 此时我们可以指定查看表中的namea会将A和a一起给筛选出来根本原因就是utf8_general_ci校验规则在进行数据比对时是不区分大小写的。 我们在对表中的数据进行排序也会发现时不区分大小写的。 操作数据库时采用utf8_bin校验规则 创建数据库时指定数据库的校验规则为utf8_bin数据库的编码格式默认为utf8。
在该数据库中同样创建一个简单的person表该person表将继承当前数据库的编码格式和校验规则。 同样我们向表中插入一些数据通过select语句可以查看插入表中的数据。 但这时指定查看表中namea’的记录时只会将a筛选出来根本原因就是utf8_bin校验规则在进行数据比对时是区分大小写的。 我们在对表中的数据进行排序也会发现此时是区分大小写的。 操纵数据库
查看数据库
使用 show databases SQL可以查看系统中的所有数据库。 使用 show create databases 数据库名可以查看对应数据库的创建语句。 说明
MySQL 建议我们关键字使用大写但是不是必须的数据库名字的反引号,是为了防止使用的数据库名刚好是关键字/*!40100 default.... */ 这个不是注释表示当前mysql版本大于4.01版本就执行这句话。
修改数据库
修改数据库的SQL如下
ALTER DATABASE db_name [[DEFAULT] CHARSETcharacter_name] [[DEFAULT] COLLATEcollation_name];
说明
对数据库的修改主要指的是修改数据库的字符集或校验规则。
实例 将test1 数据库字符集改成 gbk。 删除数据库
删除数据库的SQL如下
DROP DATABASE [IF EXISTS] db_name;
执行删除之后的结果:
数据库内部看不到对应的数据库对应的数据库文件夹被删除级联删除里面的数据表全部被删。 注意不要随意删除数据库。
数据库备份和恢复 数据库备份 使用如下命令即可对指定数据库进行备份
mysqldump -P 端口号 -u 用户名 -p 密码 -B 数据库名1 数据库名2 ... 数据库备份存储的文件路径
下面我们创建一个数据库并在该数据库中创建两个表。 在两个表中分别插入两条记录 这时在命令行中执行如下命令即可将该数据库进行备份并指定将备份后产生的文件存放在当前目录下。 打开back.sql文件即可看到文件中的内容实际就是我们在该数据库中执行的各种SQL命令包括创建数据库、创建表、插入数据等SQL语句。 数据库恢复 使用如下命令即可对指定数据库进行恢复
source 数据库备份存储的文件路径
我们先将刚才创建的数据库删除 这时让MySQL服务器执行如下命令即可对数据库进行恢复。 实际恢复数据库的时候就是按顺序执行数据库备份文件中的SQL语句执行完毕后数据库也就恢复出来了同时该数据库下的两张表以及表当中的数据也都恢复出来了。 表的备份和恢复
使用如下命令即可对指定表进行备份
mysqldump -P 端口号 -u 用户名 -p 密码 数据库名 表名1 表名2 ... 表备份存储的文件路径
假设我们此时数据库中除了person1和person2以外还有其他表 如果只想备份数据库中的person1和person2表这时就可以在命令行中执行如下命令并指定将备份后产生的文件存放在当前目录下。 与person1和person2表相关的SQL语句就会被保存到备份文件当中。 表恢复 表恢复之前需要先选中一个数据库表明需要将表恢复到哪一个数据库中为了防止恢复出来的表与该数据库中已有的表的表名重复一般在恢复表时会选择创建一个空的数据库然后在该数据库中进行表的恢复。
在数据库中使用如下命令即可对指定表进行恢复
source 表备份存储的文件路径
我们先将刚才的数据库删除。 这时创建一个空的数据库并在该数据库中执行如下命令即可对表进行恢复。 当备份文件中的SQL语句执行完毕后该数据库下就恢复出了person1和person2表并且表当中的数据也都恢复出来了。 查看连接情况
使用show processlist SQL即可查看当前连接MySQL的用户。 Id列一个标识可以在MySQL中通过kill id杀死指定id的线程。User列显示当前用户如果不是root这个命令就只显示你权限范围内的SQL语句。Host列显示这个语句是从哪个IP的哪个端口上发出的可用来追踪出问题语句的用户。db列当前执行的命令是在哪一个数据库上如果没有指定数据库则该值为NULL。Command列显示当前连接执行的命令一般就是休眠Sleep、查询Query和连接Connect。Time列表示该线程处于当前状态的时间单位是秒。State列显示使用当前连接的SQL语句的状态。Info列一般记录的是线程执行的语句默认只显示前100个字符如果要看全部信息需要使用show full processlist。
show processlist可以告诉我们当前有哪些用户连接到我们的MySQL如果查出某个用户不是你正常登录的那么很有可能你的数据库被人入侵了以后如果发现自己的数据库比较慢时可以用这个SQL来查看数据库连接情况。