1+X | MySQL
why MySQL
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
基本操作
- 启动(macOS):
mysql.server start
- 进入mysql命令行 -
mysql -u root -p
- 创建数据库 -
create database 库名;
- 查看数据库 -
show databases;
- 删除数据库 -
drop database 库名;
- 打开数据库 -
use 库名;
- 查看数据表 -
show tables;
- 查看数据表详情 -
desc 表名;
- 退出mysql命令行 -
quit;
/exit;
数据表
-
注释
# ;/**/ ;--
-
数据类型
-
字符串类型
char - 定长字符串
varchar - 变长字符串
text - 文本
blob
-
整型
tinyint - 极小型
smallint - 小整型
int - 整型
bigint - 大整型
-
浮点型
float - 单精度
double - 双精度
decimal - 定点型
-
日期型
date - 日期型
time - 时间型
year - 年份
-
-
约束
not null/null - 非空/空
default - 默认值
primary key - 主键
foreign key - 外键
unique - 唯一
-
创建数据表
create table 表名(列1 类型 [宽度] 约束,列2 类型 [宽度] 约束,...)
use mydb; # 创建学生表 drop table if exists student; create table student ( sno varchar(3) not null primary key comment '学号', -- 主键约束(值不能为空,且唯一) sname varchar(4) not null, -- 非空约束 ssex char(2) characterset big5 collate big5_chinese_ci default "男", -- 默认值约束 sbirthday varchar(10) default null, class varchar(5) not null ) engine=innodb default charset=utf8; -- 设置编码 # 创建教师表 drop table if exists teacher; create table teacher ( tno varchar(3) primary key, tname varchar(4) not null, tsex varchar(2) not null, tbirthday datetime not null, prof varchar(6) default null, depart varchar(10) not null ) engine=innodb default charset=utf8;
auto_increment
- 表示该列是否是自动编号(int,主键,创建主键是会自动生成一个唯一索引)- 一张表中只能有一个主键(primary key)
desc 表名;
- 查看表结构show tables;
- 查看所有表- InnoDB引擎支持外键
增、删、查、改
-
查询
-
通配符 -
_、%、[]、[^]
-
分组 -
group by
; -
排序 -
order by
; -
分组条件 -
having
; -
分页 -
limit 起始下标(如果缺省,默认从0开始),条数
--查询2-5条 select * from student limit 1,4 --前三条 select * from student limit 3
-
-
创建
- create view - 视图
- create trigger - 触发器
- create procedure - 存储过程
- 调用 - call 存储过程名
- 定义存储过程时的约束 - in,out,inout
- create index - 索引(主键索引、唯一索引、全文索引、组合索引)
- drop - 删除以上对象
-
事物
特征 - 原子性、一致性、隔离性、持久性
-
权限
可添加的权限 - all,select,insert,update,delete,create,grant option ,,,
注意 - 不能添加revoke权限
-
备份
-
mysqldump -u 账号 -p 密码 数据库名 > [路径]/文件名
注意 - 备份的文件名的扩展名可以是 - txt,sql,doc等文本文件,一般为sql
-
-
还原
mysql -u 账号 -p 密码 数据库名 < [路径]/文件名