表操作

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;

  

  

操作表的约束

 

 

   

 

posted @ 2017-06-14 17:38  王学勤  阅读(123)  评论(0)    收藏  举报