启动mysql, cmd 进入bin文件
mysql -u root -p
**
DDL
**
- GRANT授权、REVOKE撤销
GRANT ALL ON employees.* TO "root"@"%" IDENTIFIED by "root";
REVOKE ALL ON *.* FROM root;
- 删除用户(慎用)
DROP USER user1;
- 创建数据库
库是数据的集合,所有数据按照数据模型组织在数据库中
CREAT DATABASE IF NOT EXISTS gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CHARACTER SET 指定字符集
COLLATE 指定字符集的校对规则,用来做字符串的比较
- 删除数据库
DROP DATABASE IF EXISTS gogs;
- 创建表
- 表分为行和列,MySQL是行存数据库。
- 行Row,也称为记录Record,元祖
- 列Column,也成为Field。
CREAT TABLE 'employees'(
'emp_no' int(11) NOT null,
'birth_date' date not null,
'last_name' varchar(14) not null,
'gender' enum('M','F') not null,
'hire_date' date not null,
primary key('emp_no')
)engine=innoDB defult charset=utf8;
- DESC
查看列信息
{DESCRIBE | DESC} tbl_name [col_name | wild]
desc employees;
desc employees '%name';
-
PRIMARY KEY主键
表中一列(建议)或者多列组成唯一的key
主键往往设置成整型、长整型,且自增AUTO_INCREMENT -
索引INDEX
主键索引:主键会自动建立主键索引
唯一索引:但可以为空,非空值必须唯一
普通索引:没有唯一性要求,就是建立了一个字典的目录 -
约束Constraint
-
外键约束Foreign Key
-
视图,也称虚表,是由查询语句生成的,可以通过视图进行CRUD操作
-
数据类型
类型 | 含义 |
---|---|
tinyint | 1字节,带符号范围-128到127,无符号范围是0到255 |
smalllint | 2字节 |
int | 整型,4字节,同Integer |
bigint | 长整型,8字节 |
float | 单精度浮点数精确到大约7位小数位 |
double | 双精度浮点数精确到大约15位小数 |
DATE | 日期,支持范围为‘1000-01-01‘到‘9999-12-31‘ |
TIMESTAMP | 时间戳。范围是‘1970-01-01 00:00:00’到‘9999-12-31 23:59:59’ |
char(M) | 固定长度,右边填充空格已达到长度要求。M为长度,范围0~255.M指的是字符个数 |
varchar(M) | 变长字符串。M表示最大列长度。M的范围是0~65535.但不能突破行最大字节数65535 |
text | 大文本。最大长度65535(2^16-1)个字符 |
BLOG | 大字节。最大长度为65535(2^16-1)字节的BLOG列 |
- 关系操作
- 关系:在关系数据库中,关系就是二维表
- 关系操作:就是对表的操作
- 选择(selection):又称为限制,是从关系中选择出满足给定条件的元祖
- 投影(projection):在关系上投影就是从选择出若干属性列组成新的关系
- 连接(join):将不同的两个关系连接成一个关系