mysql的数据库操作

数据库设计

管理数据库

创建数据库

1
craete database 数据库名;

删除数据库

1
drop database 数据库名;

使用数据库

1
use 数据库名;

管理表

创建表

1
2
CREATE TABLE table_name (column_name column_type);

1
2
3
4
5
6
7
8
create table student1 (
stuno int not null AUTO_INCREMENT,
name varchar(100) not null,
sex bit default 0,
birthday date not null,
primary key(`stuno`)
);

  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码。

修改表

插入

1
2
3
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );

删除表

1
DROP TABLE table_name ;

主键和外键

主键

每张表都要有主键。

要求

  1. 唯一
  2. 不能更改
  3. 无业务含义

外键

另一个表的主键,连接另一个表。

表关系

一对一

一个A对应一个B,一个B对应一个A。
将一个表的主键同时设置为外键。

一对多

一个A对应一个B,一个B对应一个A,A和B是一对多,B和A是多对一。

在多的那一端设置外键,对应另一张表的主键

多对多

一个A对应多个B,一个B对应多个A。

需要新建一个关系表,关系表至少包含两个外键,分别对应到两张表。

三大设计范式

  1. 要求数据库表的每一列是不可分割的原子数据项
  2. 非主键列必须依赖主键列
  3. 非主键列必须直接依赖主键列