SQL分类
1. 数据查询语言:DQL 代表指令: select/show
2. 数据操作语言:DML 代表指令: insert/update/delete
3. 事务处理语言:TPL 代表指令: begin/transaction/commit/rollback
* 不是所有的关系型数据库都提供事务安全处理
4. 数据控制语言:DCL 代表指令: grant/revoke
* 专门用于权限管理
5. 数据定义语言:DDL 代表指令: create/drop/alter
* 专门用于结构管理
启动mysql:net start mysql
关闭mysql:net stop mysql
登陆mysql:mysql [-hlocalhost] -uroot -p
退出mysql:exit,q,quit
Mysql服务端架构有一下几层构成
1. 数据库管理系统(最外层):DBMS:专门管理服务器端的所有内容
2. 数据库(第二层):DB,专门用于存储数据的仓库
3. 二维数据表(第三层):Table,专门用于存储具体实体的数据
4. 字段(第四层):Field,具体存储某种类型的数据(实际存储单元)
创建数据库:create database 数据库名字 [库选项]
字符集:charset 字符集,如果不指定默认是DBMS(安装时候指定的,校对集随字符集)
校对集:collate校对集
显示部分 匹配模式 模糊查询
获取以my开头的全部数据库:my%
获取m开头,后面第一个字符不确定,最后为database的数据库:m_database
获取以database结尾的数据库:%database
-- 数据库操作 --
显示数据库创建语句
#show create database 数据库名字;
显示数据表创建语句
#show create table 数据表名字G;
修改数据库字符集:字符集和校对集
alter database 数据库名字 charset=字符集
#create database mydatabase charset gbk;
-- 数据表操作 --
存储引擎:mysql提供的具体存储数据的方式,默认有一个innodb(5.5之前默认是myisam)
复制已有表结构
#create table 新表名 like 数据库.表名;
每当一张数据表创建,那么会在对应的数据库下创建一些文件(与存储引擎有关)
innodb存储引擎所有文件都在外部的ibdata文件中
@多维度修改表
修改表名
#rename table 旧表名 to 新表名;
修改表选项
#alter table 表名 表选项 [=] 新值;
新增字段
#alter table 表名 add 新字段名 列类型 [列属性] [位置 first/after] 字段名;
eg: alter table my_student add age int;--默认最后
first:默认增加到第一个字段
after:需要指定放在哪个字段之后
eg:alter table my_student add age int after id;
修改字段名
#alter table 表名 change 旧字段名 新字段名 新字段类型;
eg:alter table user5 change age nj int;
修改字段类型
#alter table 表名 modify 字段名 新类型 [新属性] [新位置]
alter table user5 modify nj2 varchar(60);--可以通过修改字段名修改
删除字段
#alter table 表名 drop 字段名;
删除表结构
#drop table 表名[,表名2...];
字符集:
Mysql.exe与Mysqld.exe之间的处理关系一共分为三层
客户端传入数据给服务端:client:character_set_client
服务端返回数据给客户端:server:character_set_results
客户端与服务端之间的连接:connection:character_set_connection
set names 字符集的本质:就是一次性打通三层关系的字符集,变得一致
在系统中有三个变量来记录着这三个关系对应的字符集:show variables like 'character_set%';
mysql> set names gbk;
mysql> show variables like 'character_set%';
+--------------------------+------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | F:StudySoftWaremysql-5.7.27-winx64sharecharsets |
+--------------------------+------------------------------------------------------+
8 rows in set, 1 warning (0.02 sec)
解析:
character_set_client :客户端传入数据
character_set_connection:连接层
character_set_database:当前数据库存储方式
character_set_results:结果返回的字符集
修改服务器端变量名的值
set character_set_client=gbk;