欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据表的基本操作

程序员文章站 2022-05-03 14:42:28
...

一、创建数据表

要对数据表进行操作,首先的新建一个数据库,暂且数据库就叫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、删除有关联的表,必须先解除关联才能删除主表。

例:

数据表的基本操作