表操作
MySQL数据库中,表是一种很重要的数据库对象,是组成数据库的基本元素,由若干个字段组成,主要用来实现存储数据记录。表操作包含:创建表、查看表、删除表、修改表,
这些操作是数据库对象的表管理中最基本、最重要的操作
表的概念
表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似,都是按行和列的格式组织的。其中每一行代表一条唯一的记录,每一列代表记录中的一个字段
表中的数据库对象包含列、索引和触发器
- 列(Columns):也叫属性列,在具体创建表时,必须指定列的名字和数据类型
- 索引(Indexes):是指根据指定的数据库表列建立起来的顺序,提供了快速访问数据的途径且可监督表的数据,使其索引所指向的列中的数据不重复
- 触发器(Triggers):指用户定义的事务命令集合,当对一个表中的数据进行插入、更新或删除时这组命令就会自动执行,可以用来确保数据的完整性和安全性
创建表
语法:
ccreate table table_name(
属性名 数据类型,
属性名 数据类型,
属性名 数据类型,
.
.
属性名 数据类型
)
table_name参数表示要创建的表的名字,表的具体内容定义在括号中,各列之间用逗号分割。其中,"属性名"参数表示表字段名称,"数据类型"参数指定字段的数据类型。表名不能重复,命名规则与数据库名一致
实例:
在数据库company中创建名为t_dept的表
SQL:
create database company;

show databases;

use company

create table t_dept(
deptnu int,
dname varchar(20),
loc varchar(40)
);

desc t_dept;

查看表结构
表创建完后,经常要查看表信息。那么在MySQL软件中如何查看表信息呢?
1、describe语句查看表定义
SQL:describe table_name; desc table_name;
2、show create table语句查看表详细定义
SQL:show create table table_name;

删除表
SQL:drop table table_name;
做表删除操作时,要慎重,删除表会将表中的数据全部删除


修改表
对已经创建好的表,使用一段时间后,需要进行一些结构上的修改,就是修改表操作。该操作的解决方案是先将表删除,然后再按照新的表定义重建表。但是这种解决方案有问题,如果表中已经存储了大量数据,那么重建表后还需要完成很多工作,如数据的重载等。
为了解决这种问题,MySQL DBMS提供了"alter table"语句实现修改表结构。
1、修改表名
数据库中,可以通过表名来区分不同的表,因为表名在数据库中是唯一的,不能重复。
SQL:alter table old_table_name rename [to] new_table_name;
old_table_name参数表示要修改的表的名字,new_table_name参数表示修改后的新名字。要操作的表表对象必须是已经存在的
实例:修改company库中t_dept的表名为tt_dept



2、增加字段
对于表,可以看成是由列和行来构成的,其中列经常被称为字段。根据创建表的语法可以发现,字段是由字段名和数据类型进行定义的。
a、在表的最后一个位置增加字段
SQL:alter table table_name add attribute_name attribute_data_type;
table_name参数表示被修改表的表名;attribute_name参数表示要增加字段的名字;attribute_data_type参数表示字段数据类型。该语句执行成功,字段将增加到表的最后一个位置
实例:为company库中tt_dept表增加一个名为description,类型为VARCHAR(40)的字段,置于最后一个位置
desc tt_dept;

alter table tt_dept add description varchar(40);


b、在表的第一个位置增加字段
默认添加的字段会被置于表的最后一个位置,如果想在表的第一个位置添加字段,可以通过关键字first修饰来实现。
SQL:alter table table_name add attribute_name attribute_data_type first;
实例:为company库中tt_dept表增加一个名为id,类型为int的字段,置于表的第一个位置
desc tt_dept;

alter table tt_dept add id int first;


c、在表的指定字段之后增加字段
SQL:alter table table_name add attribute_name attribute_data_type after attribute_name;
多了一个关键字after,表示所增加的字段在该关键字所指定的关键字之后
实例:为company库tt_dept表增加一个名称为name,类型为CHAR(5)的字段,置于id字段后。
desc tt_dept;

alter table tt_dept add name char(5) after id;


3、删除字段
对于表,既然可以增加字段,那么一定也可以删除字段。所谓删除字段是指删除已经在表中定义好的某个字段。
SQL:alter table table_name drop attribute_name;
实例:为company库tt_dept表删除名为name的字段
alter table tt_dept drop name;


4、修改字段
根据创建表的语法发现,字段是由字段名和数据类型来定义的,如果要实现修改字段,除了修改字段名外,还可以修改数据类型来实现。由于一个表中有很多的字段,因此还可以修改字段的顺序
a、修改字段的数据类型
SQL:alter table table_name modify attribute_name attribute_data_type;
实例:为company库tt_dept表修改deptnu字段的数据类型为VARCHAR(20)
desc tt_dept;

alter table tt_dept modify deptnu varchar(20);


b、修改字段的名字
SQL:alter table table_name change attribute_old_name attribute_new_name attribute_old_data_type;
实例:为company库tt_dept表修改loc字段名为location
desc tt_dept;

alter table tt_dept change loc location varchar(40);


c、同时修改字段名和属性
通过关键字modify可以修改字段的数据类型,通过关键字change可以修改字段的名字,那如何同时修改名字及类型呢?
SQL:alter table table_name change attribute_old_name attribute_new_name attribute_new_data_type;
实例:为company库tt_dept表修改名为location、类型为VARCHAR(40)字段,修改为名为loc,类型为VARCHAR(20)
desc tt_dept;

alter table tt_dept change location loc varchar(20);


d、修改字段顺序
SQL:alter table table_name modify 属性名1 数据类型 first|after 属性名2;
属性名1参数表示所要调整顺序的字段名,first参数表示将字段调整到表的第一个位置,after 属性名2参数表示将字段调整到属性名2字段位置后。属性名1和属性名2必须是表中已经存在的字段名
实例:为company库tt_dept表调整deptnu字段到loc字段位置后
desc tt_dept;

alter table tt_dept modify deptnu varchar(20) after loc;


操作表的约束

浙公网安备 33010602011771号