1.查看数据库中已经创建的表:show tables
2.查看表的基本结构:describe 表名
3.查看表详细结构语句:show create table 表名
4.增加表的字段、修改表名、修改字段数据类型、删除表的字段:alter table
5.删除表:drop table 表名
6.创建临时表:create temporary table 表名
7.删除临时表:drop table 表名
以上仅供参考,具体操作以本文正文为主
数据表创建后,就可以用show tables命令查询已创建的表的情况。也可以查看表结构,即是指查看数据库中已存在的表的定义。查看表结构的语句包括describe
语句和show create table
语句。
通过这两个语句,可以查看表的字段名、字段的数据类型、完整性约束条件等。
命令和运行结果如下:
mysql>show tables;
MySQL中,describe
语句可以查看表的基本定义,包括字段名、字段数据类型、是否为主键和默认值等。
(1)查看表course的基本结构。
(2)查看表sc的基本结构。
(3)查看表score的基本结构。
(4)查看表student的基本结构。
show create table
。 show create table
语句可以查看表的详细定义,包括表的字段名、字段的数据类型、完整性约束条件等信息,除此之外,还可以查看表的存储引擎和字符编码。
如:查看表score的详细结构:
mysql> show create table course;
当数据库表创建完毕后,也可以通过安装路径(如:C:\Documents and Settings\All Users\MySQL\MySQL Server 5.7\Data\teaching)查看磁盘文件数据库及其包含的数据表文件,如图所示。
修改表是指修改数据库中已存在的表的定义。修改表比重新定义表简单,不需要重新加载数据,也不会影响正在进行的服务。MySQL中通过alter table
语句来修改表。
修改表包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段的排列位置、更改默认存储引擎和删除表的外键约束等。
修改数据库表语法格式如下:
alter [ignore] table tbl_name
alter_specification [, alter_specification] ...
alter_specification:
add [column] column_definition [first | after col_name ] //添加字段
|alter [column]col_name{set default literal|drop default} //修改字段默认值
|change [column] old_col_name column_definition //重命名字段
[first|after col_name]
|modify [column]column_definition[first|aftercol_name] //修改字段数据类型
|drop [column] col_name //删除列
|rename [TO] new_tbl_name //对表重命名
|order by col_name //按字段排序
|convert TO character set charset_name[collate collation_name] //将字符集转换为二进制
|[default] character set charset_name [collate collation_name] //修改表的默认字符集
alter table
用于更改原有表的结构。例如,可以增加或删减字段、重新命名字段或表,还可以修改默认字符集。
(1)增加字段。在创建表时,表中的字段就已经定义完成。如果要增加新的字段,可以通过alter table
语句进行增加。增加表的字段,可以实现如下功能:
例如:在student表的Email列后面增加一列address。
mysql>alter table student
->add address varchar(30) not null after Email;
(2)修改表名。表名可以在一个数据库中唯一的确定一张表。数据库系统通过表名来区分不同的表。MySQL中,修改表名是通过SQL语句alter table
实现的。
例如:将表sc重名为se_course。
mysql> alter table sc rename to se_course;
(3)修改字段的数据类型。alter table
语句也可以修改字段的数据类型。
例如:修改course表的type字段,因为该字段一般是取固定值。因此,也可以把该字段的定义写成:type enum (‘必修课,’ 选修课‘) default ’必修课‘
。
mysql> alter table course
-> modify type enum('必修','选修') default '必修';
运行后结果:
(4)删除字段。
删除字段是指删除已经定义好的表中的某个字段。MySQL中,alter table
语句也可以删除表中的字段。
如:删除student表的字段address。
mysql> alter table student drop address;
删除表是指删除数据库中已存在的表。删除表时,会删除表中的所有数据。因此,在删除表时要特别注意。
MySQL中通过drop table
语句来删除表。删除表的语法格式如下:
drop table table_name
如:在mysqltest数据库中创建表example,并查看表example的基本结构,然后删除example表。
代码和运行结果如下:
mysql> use mysqltest;
Database changed
mysql> Create table example(
-> today datetime,
-> name char(20) );
Query OK, 0 rows affected (0.11 sec)
mysql> desc example;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| today | datetime | YES | | NULL | |
| name | char(20) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.02 sec)
mysql> drop table example ;
Query OK, 0 rows affected (0.07 sec)
Mysql临时表适合当工作在非常大的表上时,偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后多这些表运行查询。
创建临时表很容易,给正常的create table
语句加上temporary
关键字即可。例如,创建临时表tmp_emp1。
mysql> create temporary table tmp_emp1
-> (name varchar(10) not null,
-> value integer not null
-> );
临时表将在连接MySQL期间存在。断开时,MySQL将自动删除表并释放所用的空间。当然你可以在仍然连接的时候删除临时表并释放空间。删除方法与一般用户表相同。
drop table tmp_table
show tables
语句不会列举临时表。