0
点赞
收藏
分享

微信扫一扫

C语言王国探险记之函数的简单概念

流计算Alink 2023-07-06 阅读 138

Mysql专栏:@Mysql
本篇博客简介:介绍数据库的库操作

库的操作

创建数据库

创建数据库的语法格式如下

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_nam
  • 大写的表示关键字 (其实mysql中大小写并不严格 所以我们使用小写关键字也可以 )
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

我们简单理解下 字符集就是向计算机中存储数据的格式 校验规则就是从计算机中取出数据的格式

创建数据库案例

在这里插入图片描述

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则
是:utf8_ general_ ci

在这里插入图片描述

在这里插入图片描述

字符集和校验规则

我们简单理解下 字符集就是向计算机中存储数据的格式 校验规则就是从计算机中取出数据的格式

一般来说字符集和校验规则是要配套的

查看系统默认字符集和校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

在这里插入图片描述

查看数据库支持的字符集和校验规则

show charset // 查看支持的字符集

在这里插入图片描述

show collation; // 查看支持的字符集校验规则

在这里插入图片描述

校验规则对于数据库的影响

create database test1 collate utf8_general_ci
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
create database test2 collate utf8_bin;
use test2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

表的字符集校验规则默认是数据库的字符集校验规则

之后我们分别对于这两个表进行查询和排序

不区分大小写

mysql> use test1;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a  |
| A  |
+------+
2 rows in set (0.01 sec)

区分大小写

mysql> use test2;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a  |
+------+
2 rows in set (0.01 sec)

不区分大小写

mysql> use test1;
mysql> select * from person order by name;
+------+
| name |
+------+
| a  |
| A  |
| b  |
| B  |
+------+

区分大小写

mysql> use test2;
mysql> select * from person order by name;
+------+
| name |
+------+
| A  |
| B  |
| a  |
| b  |
+------+

通过上面的两组对比我们可以很明显的发现字符集的校验规则能够影响到数据的查询和排序

操纵数据库

查看数据库

语法:

show databases;

在这里插入图片描述

显示创建语句

语法:

show create database test1;

它的作用是显示创建数据库的语句

比如说我们使用gbk字符集创建test1数据库 之后使用显示创建语句

在这里插入图片描述

我们可以发现在下面的记录中展示了test1数据库的字符集

需要注意的是

  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
  • /*!40100 default… */ 这个不是注释 表示当前mysql版本大于4.01版本 就执行这句话

修改数据库

一般来说我们修改数据库就是修改数据库的字符集还有校验规则

修改数据库名字和属性都是很危险的事情 很可能会导致一系列的问题

语法如下

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

比如说我们修改test1数据库的字符集为utf8

在这里插入图片描述

我们可以看到字符集成功被修改为utf8了

数据库删除

语法:

DROP DATABASE [IF EXISTS] db_ name;

比如说我们要删除test1数据库

在这里插入图片描述

此外还有一种方法可以删除数据库

我们可以使用Linux的管理员权限进入保存数据库数据的目录下 直接删除对应目录即可

查看连接情况

语法:

show processlist

在这里插入图片描述
从左到右介绍下第一列的含义

  • id : mysql中对于用户的一个标识
  • user:当前用户
  • host :主机
  • db:正在访问的数据库
  • command:显示当前连接执行的命令
  • time:显示线程执行当前状态的时间
  • state:当前连接sql语句的状态
  • info:线程执行的语句

当我们发现自己的数据库运行速度较慢的时候 可以通过该指令来查询访问数据库的用户 如果查出哪个用户不是正常登录的 那么很可能是你的数据库被黑入了

举报

相关推荐

0 条评论