1 MySQL数据库简介
MySQL是一种关系型数据库,由于体积小、速度快、总体拥有成本低、开放源码,所以许多中小型网站为了降低总体拥有成本选择MySQL作为网站数据库。
其他优点:可以和其他开发语言结合,可移植性(跨平台),可在不同操作系统中使用,轻量级数据库
2 MySQL数据库操作
查看现有数据库:show databases;
新建数据库:create database 库名;
删除数据库:drop database 库名;
切换数据库:use 库名;
3 数据库建表方式和原则
3.1 MySQL支持数据类型
- 数值
- 日期/时间
每个时间类型有一个有效范围和一个“零”值,当指定不合法的、MySQL不能表示的值时使用“零”值。
- 字符串(字符)
char是定长,varchar是变长。当选择char类型存储,数据长度小于char的长度时,其余长度会用空格填满。
3.2 表的创建(create)和删除(drop)
- 表的创建
create table 表名(
属性名1 数据类型[约束条件],
属性名2 数据类型[约束条件],
属性名3 数据类型[约束条件],
……
);
- 表的删除
drop table 表名1,表名2,……
3.3 表的修改(alter)
添加列(属性)
alter table 表名 add 属性名 数据类型;
删除列(属性)
alter table 表名 drop 属性名;
修改属性的数据类型
alter table 表名 modify 属性名 新的数据类型;
修改字段名
alter table 表名 change 旧字段名 新字段名 数据类型;
显示表结构
desc 表名;
4 关系的约束
4.1 实体完整性
- 实体完整性是对关系中的记录唯一性
- 定义表中的所有行 唯一的标识
- 表中主属性(字段)不能为Null且不能有相同值
- 一般用主键、唯一索引、unique关键字来表现
主键约束
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
- 唯一、不重复、不能为空;
- 一个表中有且只能有一个主键约束。
- 设置主键约束:
1)创建表的同时创建主键约束
格式一:
create table 表名(
列名1 数据类型 primary key,
列名2 数据类型
);
格式二: 主键约束的名字写法:PK_列名
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 主键约束的名字 primary key(列名1)
);
格式三:
create table 表名(
列名1 数据类型,
列名2 数据类型,
primary key(列名1)
);
2)对已有表设置主键约束
格式一:
alter table 表名 modify 列名 数据类型 primary key;
格式二:
alter table 表名 add primary key(列名);
格式三:
alter table 表名 add constraint 主键约束的名字 primary key(列名);
3)删除已设置的主键
alter table 表名 drop primary key;
- 设置联合主键约束:设置联合主键只能用格式二、三,在列名处依次列出。
联合主键:指把两个列看成一个整体,这个整体不为空、唯一、不重复。
唯一约束
unique
- 唯一约束是指定table的列或列组合不能重复,保证数据的唯一性;
- 唯一约束不允许出现重复的值,但是可以为多个null;
- 同一个表可以有多个唯一约束、多个列组合的约束;
- 如果不给唯一约束名称,就默认和列名相同;
- MySQL会给唯一约束的列上默认创建一个唯一索引。
- 设置唯一约束
1)创建表的同时创建唯一约束
格式一: 唯一约束的名字格式:UN_列名
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 唯一约束的名字 unique(列名1)
);
格式二:
create table 表名(
列名1 数据类型 unique,
列名2 数据类型 unique,
列名3 数据类型
);
2)已存在表添加唯一约束
格式:
alter table 表名 add unique(列名1