数据表的基本操作
一、创建数据表
要对数据表进行操作,首先的新建一个数据库,暂且数据库就叫test_db,创建数据库语法:
create database database_name;
删除数据库语法为:drop database database_name;
查看数据库中表语法:show databases;
下面开始创建数据表:
1、创建表的语法:
create table <表名>
(字段名1 数据类型 [列级别约束条件] [默认值],
字段名2 数据类型 [列级别约束条件] [默认值],
....
[表级别约束条件]);
下面创建一个表tb_emp1:
create table tb_emp1(
id int(11),
name varchar(25),
deptId int(11),
salary float
);
创建完之后可以使用:show tables;查看表。
2、使用主键约束
主键:又叫主码,要求主键列的数据唯一而且不能为空。可以有多个。
使用主键约束有两种语法:
语法一:字段名 数据类型 primary key [默认值]
例:
create table tb_emp3(
id int(11) primary key,
name varchar(25),
deptId int(11),
salary float
);
语法二:[constraint<约束名>] primary key[字段名]
例:
create table tb_emp3(
id int(11),
name varchar(25),
deptId int(11),
salary float,
primary key(id)
);
多字段联合主键语法:primary key[字段1,字段2,...字段n]
例:
create table tb_emp4(
name varchar(25),
deptId int(11),
salary float,
primary key(name,deptId)
);
3、使用外键约束
外键:用来在两个表的数据之间进行链接,可以是一列,也可以是多列,外键可以不是本表的主键,但对应另一个表的主键。
语法:[constraint<外建名>] foreign key 字段名1[,字段名2,...] references<主表名> 主键列1[,主键列2,...]
例:
主表:
create table tb_dept1(
id int(11) primary key,
name varchar(25) not null,
location varchar(50)
);
从表:
create table tb_emp5(
id int(11) primary key,
name varchar(25),
deptId int(11),
salary float,
constraint fk_emp_dept1 foreign key(deptId) references tb_dept1(id)
);
4、非空约束
语法:字段名 数据类型 not null
例:
create table tb_emp6(
id int(11) primary key,
name varchar(25) not null,
deptId int(11),
salary float
);
5、唯一性约束
唯一性约束要求该列唯一,允许为空,但只能有一个空。有两种语法:
语法一:字段名 数据类型 unique
例:
create table tb_dept2(
id int(11) primary key,
name varchar(25) unique,
location varchar(50)
);
语法二:[constraint<约束名>] unique(<字段名>)
例:
create table tb_dept3(
id int(11) primary key,
name varchar(25),
location varchar(50),
constraint sth unique(name)
);
6、默认约束
如果插入字段时没有为这一列指定值,将会有一个默认值。
语法:字段名 数据类型 default 默认值
例:
create table tb_emp7(
id int(11) primary key,
name varchar(25) not null,
deptId int(11) default 111,
salary float
);
7、表属性值的自动增加
一个表只能有一个字段使用该约束,且该字段必须是主键的一部分。
语法:字段名 数据类型 auto_increment
例:
create table tb_emp8(
id int(11) primary key auto_increment,
name varchar(25) not null,
deptId int(11),
salary float
);
二、查看数据表结构
1、查看表基本结构
语法:describe 表名; 可以简写成:desc 表名;
例:
表中各个字段的含义:
Null:表示该列是否可以存储Null值;
Key:表示该列是否已经编制索引。PRI表示该列是表主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次;
Default:表示该列是否有默认值,如果有是多少;
Extra:表示可以获取的与给定列有关的附加信息,如AUTO_INCREMENT等。
2、查看表详细结构语句
语法:show create table <表名\G>;
不加\G可能显示的排版很乱。
例:
三、修改数据表
1、修改表名
语法:alter table <旧表名> rename [to] <新表名>;
例:alter table tb_dept3 rename tb_deptment3;
2、修改字段的数据类型
语法:alter table <表名> modify <字段名><数据类型>;
例:alter table tb_dept1 modify name varchar(30);
3、修改字段的排列位置
语法:alter table <表名> modify <字段1><数据类型> first|after<字段2>;
例:修改字段为表的第一个字段:alter table tb_dept1 modify name varchar(25) first;
修改字段到表的指定列之后:alter table tb_dept1 modifu name varchar(25) after location;
4、修改字段名:
语法:alter table <表名> change <旧字段名><新字段名><新数据类型>;
例:alter table tb_dept1 change location loc varchar(60);
如果将旧字段名和新字段名设置成一样的,就可使实现和modify一样的效果:只修改字段的数据类型。
5、添加字段
语法:alter table <表名> add <字段名><数据类型>[约束条件][first|after 已存在字段名];
例一:添加无完整性约束条件的字段:alter table tb_dept1 add managerId int(11);
添加有完整性约束条件的字段:alter table tb_dept1 add managerId int(11) not null;
在表的第一列添加一个字段:alter table tb_dept1 add column1 int(11) first;
在表的指定列之后添加一个字段:alter table tb_dept1 column2 int(11) after name;
6、删除字段
语法:alter table <表名> drop <字段名>;
例:alter table tb_dept1 frop column1;
7、更改表的存储引擎
语法:alter table <表名> engine=<更改后的存储引擎>;
例:alter table tb_deptment3 engine=myisam;
8、删除表的外键约束
语法:alter table <表名> drop foreign key<外键约束名>;
四、删除数据表
1、删除没有被关联的表
语法:drop table [if exists] 表1,表2,......表n;
语法中的if exists是为了同事删除多表时中途有表不存在时继续执行删除后面的表。
2、删除有关联的表,必须先解除关联才能删除主表。
例:
上一篇: 【Mysql优化04】查询索引优化实例
下一篇: MySQL实战之数据表的基本操作