10. SQL--create table:创建表
1. 前言
表(table)是以行和列形式组织的数据的集合,表被创建以后,列数是固定的,但是行数可以改变。创建表时,需要给表命名,并定义它的列以及每一列的类型。
sql create table 语句用于创建新的表。
2. 语法
create table 语句的基本语法如下:
create table table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnn datatype,
primary key( one or more columns )
);
create table 是 sql 命令,告诉数据库你想创建一个新的表,它后面紧跟的 table_name 是表的名字。然后在括号中定义表的列,以及每一列的类型,稍后会有更加清晰明了的示例。
primary key 关键字用来指明表的主键。
另外,您也可以使用 create table 和 select 语句的组合来创建现有表的一个副本。
3. 示例
下面的例子将创建一个以 id 为主键的 website 表,该表用来存储一些世界知名网站的信息。代码如下:
create table website (
id int not null auto_increment,
name varchar(20) not null,
url varchar(30) default '',
age tinyint unsigned not null,
alexa int unsigned not null,
uv float default '0',
country char(3) not null default '',
primary key (`id`)
);
几点说明:
某些字段使用了 not null 约束,表名在插入数据时这些字段不能为 null;
auto_increment 约束用来将某个字段的值设置为自动增长的序列;
default 约束用来设置字段的默认值;
primary key 用来设置表的主键。
执行 create table 命令以后,你可以根据提示信息来确实表是否创建成功,也可以使用 desc 命令来查看表的结构,如下所示:
sql> desc website;
+---------+---------------------+------+-----+---------+----------------+
| field | type | null | key | default | extra |
+---------+---------------------+------+-----+---------+----------------+
| id | int(11) | no | pri | null | auto_increment |
| name | varchar(20) | no | | null | |
| url | varchar(30) | yes | | | |
| age | tinyint(3) unsigned | no | | null | |
| alexa | int(10) unsigned | no | | null | |
| uv | float | yes | | 0 | |
| country | char(3) | no | | | |
+---------+---------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
现在,website 表已经存在于数据库中了,您可以存入与世界著名网站有关的数据。