在数据库中创建一张表的基本语法如下:
CREATE TABLE tablename (column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints , ……column_name_n column_type_n
constraints)
因为MySQL 的表名是以目录的形式存在于磁盘上,所以表名的字符可以用任何目录名允许的字符。column_name 是列的名字,column_type 是列的数据类型,contraints 是这个列的约束条件,在后面的章节中会详细介绍。
例如,创建一个名称为emp 的表。表中包括3 个字段,ename(姓名),hiredate(雇用日期)、sal(薪水),字段类型分别为varchar(10)、date、int(2)(关于字段类型将会在下一章中介绍):
mysql> create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
Query OK, 0 rows affected (0.02 sec)
表创建完毕后,如果需要查看一下表的定义,可以使用如下命令:
DESC tablename
例如,查看emp 表,将输出以下信息:
mysql> desc emp; +----------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+---------+-------+ | ename | varchar(10) | YES | | | | | hiredate | date | YES | | | | | sal | decimal(10,2) | YES | | | | | deptno | int(2) | YES | | | | +----------+---------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
虽然desc 命令可以查看表定义,但是其输出的信息还是不够全面,为了查看更全面的表定义信息,有时就需要通过查看创建表的SQL 语句来得到,可以使用如下命令实现:
mysql> show create table emp G; *************************** 1. row *************************** Table: emp Create Table: CREATE TABLE `emp` ( `ename` varchar(20) DEFAULT NULL, `hiredate` date DEFAULT NULL, `sal` decimal(10,2) DEFAULT NULL, `deptno` int(2) DEFAULT NULL,
KEY `idx_emp_ename` (`ename`)
)
ENGINE=InnoDB DEFAULT CHARSET=gbk
1 row in set (0.02 sec)
ERROR:
No query specified
mysql>
从上面表的创建SQL 语句中,除了可以看到表定义以外,还可以看到表的engine(存储引擎)和charset(字符集)等信息。“G”选项的含义是使得记录能够按照字段竖着排列,对于内容比较长的记录更易于显示。
2. 删除表
表的删除命令如下:
DROP TABLE tablename
例如,要删除数据库emp 可以使用以下命令:
mysql> drop table emp;
Query OK, 0 rows affected (0.00 sec)