mysql的数据库操作
数据库设计
管理数据库
创建数据库
1 | craete database 数据库名; |
删除数据库
1 | drop database 数据库名; |
使用数据库
1 | use 数据库名; |
管理表
创建表
1 | CREATE TABLE table_name (column_name column_type); |
1 | create table student1 ( |
- 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
修改表
插入
1 | INSERT INTO table_name ( field1, field2,...fieldN ) |
删除表
1 | DROP TABLE table_name ; |
主键和外键
主键
每张表都要有主键。
要求
- 唯一
- 不能更改
- 无业务含义
外键
另一个表的主键,连接另一个表。
表关系
一对一
一个A对应一个B,一个B对应一个A。
将一个表的主键同时设置为外键。
一对多
一个A对应一个B,一个B对应一个A,A和B是一对多,B和A是多对一。
在多的那一端设置外键,对应另一张表的主键
多对多
一个A对应多个B,一个B对应多个A。
需要新建一个关系表,关系表至少包含两个外键,分别对应到两张表。
三大设计范式
- 要求数据库表的每一列是不可分割的原子数据项
- 非主键列必须依赖主键列
- 非主键列必须直接依赖主键列