该章要点
- 一、 查看数据库表; 【show tables;】
- 二、 创建数据库表【create table 表名(字段名1,数据类型 列级别约束条件 默认值,字段名2,数据类型 列级别约束条件 默认值,…表级别约束条件); 】
- 三、查看数据表结构【describe 表名; 或者 desc 表名; 】
- 四、定义主键约束
- (1).单字段主键
- 同时定义单字段主键
- 最后定义单字段主键
- (2) 多字段联合主键
- 五、定义外键约束
- 六、定义非空约束
- 七、定义唯一性约束
- (1)在定义玩列后直接定义唯一约束
- (2)在定义完所有列之后指定唯一约束
- 八、定义默认值约束
- 九、定义表属性值的自动增加
- 十、 修改数据表
- (1)修改表名
- (2)修改字段的数据类型
- (3)修改字段名
- (4)添加字段
- 添加无完整性约束条件的字段
- 添加有完整性约束的条件
- 在表的第一列添加一个字段
- 在表的指定列之后添加一个字段
- 删除字段
- 修改字段的排列位置
- (1)修改字段为表第一个字段
- (2)修改字段到指定列之后
- 更改表的存储引擎
- 删除表的外键约束
- 四、删除数据库表:【drop table if exists 表名1,表名2,…表名n; 】
- 删除没有关联的数据表
- 删除被其他表关联的主表
一、 查看数据库表; 【show tables;】
命令语句:use db_demo1;
show tables;
二、 创建数据库表【create table 表名(字段名1,数据类型 列级别约束条件 默认值,字段名2,数据类型 列级别约束条件 默认值,…表级别约束条件); 】
命令语句:
查看当前所有数据库show databases;
创建数据库:create database db_demo1;
选择数据库:use db_demo1;
创建包含字段表:create table tb_employee(id int(11),name varchar(25),departmentIdint(11),salary float);
三、查看数据表结构【describe 表名; 或者 desc 表名; 】
查看表的详细结构
:【show create table 表名\G; 】
四、定义主键约束
主键是唯一能够表示一条记录的字段
,他们之间是一一对应的关系,就像身份证号码和人之间的关系一样,通过主键可以定义不同数据表之间的关系。主键分为两种类型:单字段主键和多字段联合主键。
(1).单字段主键
同时定义单字段主键
语法结构:create table 表名(字段名,数据类型 列级别约束条件 默认值 primary key,…);
命令语句:create table tb_employee2(id int(11) primary key,name varchar (25),departmentId int(11),salary float);
最后定义单字段主键
语法结构:create table 表名(字段名,数据类型 列级别约束条件 默认值,…primary key (字段名));
(2) 多字段联合主键
语法结构:create table 表名(字段名,数据类型 列级别约束条件 默认值,…primary key (字段1,字段2,…,字段n));
五、定义外键约束
外键是表中的一个字段
,它不是本表的主键,但对应另外一个表的主键,一个表可以有一个或多个外键,多个外键字段名称不能相同。外键用来在两个表之间建立连接,它可以是一列或多列。
外键对应的是参照完整性,一个表的外键可以是空值,如果不为空值,那么每一个外键值必须等于另一个表中主键的某个值。
语法结构:create table 子表名(字段名,数据类型 列级别约束条件 默认值primary key,…constraint 外键约束名称 foreign key(字段) references 父表名(主键字段));
定义数据表tb_employee5,让它的键departmentId作为外键连接到tb_department1表的主键id
六、定义非空约束
非空约束是指字段的值不能为空
,对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据系统会报错。
语法结构:create table 表名(字段1 数据类型 默认值 primary key,字段2 数据类型 默认值 not null,…);
七、定义唯一性约束
唯一性要求该列唯一,允许为空,但只能出现一个空值,唯一性能确保一列或几列值不重复。
(1)在定义玩列后直接定义唯一约束
语法结构:create table 表名(字段1 数据类型 默认值 primary key,字段2 数据类型 默认值 unique,…);
(2)在定义完所有列之后指定唯一约束
语法结构:create table 表名(字段1 数据类型 默认值 primary key,字段2 数据类型默认值 ,…,constraint sth unique(字段1,字段2,…));
八、定义默认值约束
默认约束可以指定某列的默认值
语法结构:create table 表名(字段1 数据类型 默认值 primary key,字段2 数据类型 default 默认值 ,…);
九、定义表属性值的自动增加
在数据库应用中,经常希望在每次插入新纪录时,系统会自动生成字段的主键值,这可以通过为主键添加AUTO_INCREMENT关键字来实现
。MySQL中它的初始值默认为1。注意,一个表只能有一个一个字段使用自增约束,且该字段为主键的一部分。它可以是任意的整数类型(tinyint,smallint,int,bigint等)
语法结构:create table 表名(字段1 数据类型 默认值 primary key auto_increment,字段2 数据类型 默认值 ,…);
十、 修改数据表
修改表是指修改数据库中已有数据表的结构。MySQL使用alter table
语句修改表。
(1)修改表名
语法结构:alter table 旧表名 rename 新表名;
(2)修改字段的数据类型
语法结构:alter table 表名 modify 字段名 数据类型;
(3)修改字段名
语法结构:alter table表名 change 旧字段名 新字段名 新数据类型;
(4)添加字段
添加完整字段包括字段名、数据类型、完整性约束。添加字段的语法格式如下:
语法结构:alter table 表名 add 新字段 数据类型 约束条件 first | after 已存在的字段名;
添加无完整性约束条件的字段
语法结构:alter table 表名add 新字段 数据类型;
添加有完整性约束的条件
语法结构:alter table 表名 add 新字段 数据类型 约束条件;
在表的第一列添加一个字段
语法结构:alter table 表名 add 字段名 数据类型 first;
在表的指定列之后添加一个字段
语法结构:alter table 表名 add 字段名 数据类型 after 已存在字段名;
删除字段
语法结构:alter table表名 drop字段名;
修改字段的排列位置
语法结构:alter table表名 modify字段名1 数据类型 first|after 字段2;
(1)修改字段为表第一个字段
语法结构:alter table 表名modify 字段名 数据类型 first;
(2)修改字段到指定列之后
语法结构:alter table 表名modify 字段1 数据类型 after字段2;
更改表的存储引擎
存储引擎是MySQL中的数据存储在文件或者内存中时采用的不同技术实现。用户可以根据自己的需要,选择不同的引擎,甚至可以为每一张表选择不同的存储引擎。MySQL中的主要存储引擎有MyISAM、InnoDB、MEMORY(HEAP)、BDB、FEDERATED等。可以使用SHOW ENGINES语句查看系统支持的存储引擎。
语法结构:alter table 表名 engine=更改后的存储引擎名;
语法结构:修改存储引擎前先查看当前存储引擎:
show create table tb_department3\G;
删除表的外键约束
对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表与从表的关系。MySQL中删除外键的语法格式如下:
语法结构:alter table 表名 drop foreign key 外键约束名;
四、删除数据库表:【drop table if exists 表名1,表名2,…表名n; 】
删除没有关联的数据表
语法结构:drop table if exists 表名1,表名2,…表名n;
删除被其他表关联的主表
首先要解除关联表,只要删除表的外键约束即可通过drop table if exists 表名 进行删除。
语法结构:1.alter table 表名 drop foreign key 外键约束名;
2.drop table if exists 表名1,表名2,…表名n;