MySQL 登陆:
- 使用MySQL客户端直接输入密码
- 使用dos命令行窗口,输入mysql -h 主机名(本机为localhost) -P端口号(默认为3306) -u 用户名(默认为root) -p登陆密码
ER图
基数:表示一个实体到另一个实体之间关联的数目
元:表示关系所关联的实体个数
定义约束条件:
- 主键约束
- 外键约束
- 唯一性约束
- 非空约束
- 检查约束
- 默认值约束
使用规范化减少数据冗余
函数依赖
三个范式
Mysql字符集
show character set展示支持字符集
设置支持中文:
创建一个init.sql文件,init.sql中的内容:
set character_set_client = gbk;
set character_set_connection = gbk;
set character_set_database = gbk;
set character_set_results = gbk;
set character_set_server = gbk;
set collation_connection = gbk_chinese_ci;
set collation_database = gbk_chinese_ci;
set collation_server = gbk_chinese_ci;
再连接mysql之后,执行下命令:
\. C:\ProgramData\MySQL\MySQL Server 5.6\data\init.sql
创建数据库
creat database database_name;
查看数据库
show databases;
选择当前操作的数据库
use database_name;
删除数据库
drop database database_name;
MySQL表管理
存储引擎:
InnoDB存储引擎(默认)
MyISAM存储引擎
创建数据库表
create table_name
e.g.
create table my_table(
today datetime,
name char(20)
);
会生成相应的文件:
my_table.frm
查看数据库中所有表
show tables;
显示表结构:
desc my_table;
也可以使用
show create my_table;
展示表的相关信息
表记录的管理:
以InnoDB
为例:
对数据进行处理之后的数据信息和索引信息保存到了ibdata1
之中,ib_logfile0
及ib_logfile1
是重做日志文件,记录了已经全部完成的事务。
对数据进行修改之后,内容修改:
- 在Mysql服务器内存中产生
- 写道外存硬盘上的共享表空间文件
ibdata1
- 最后写道重做日志文件
ib_logfile0
独享表空间:
将innodb_file_per_table
的值设置为ON
(默认值为OFF
)
使用
show variables like 'innodb_file_per_table';
查看全局系统变量,
使用
set @@global.innodb_file_per_table = ON;
innodb_file_per_table
开启
之后再对数据库进行操作之后,不会再将信息添加到ibdata1
中,而时会再数据库的目录下新建一个daba_name.idb
文件(e.g.my_table.idb
)
无论是MyISAM
存储引擎还是InnoDB
引擎,都对应唯一一个frm文件,但是InnoDB
还有一个共享表文件ibdata1&&ib_logfile0
删除表
drop table table_name;
系统变量
分为全局系统变量(global)和会话系统变量(session),会话系统变量在系统变量的基础上增加了12个变量,但是仅仅用于定义当前会话的属性
查看系统变量
show global variables;
show session variables;
#session 可以省去,所以和 show variables等价
# @@global 标记系统变量
set @@global.innodb_file_per_table = ON;
# @@session标记会话系统变量
# 同上