前言
之前我们介绍了SQL中如何创建删除使用数据库,本篇文章我们将介绍创建删除表等操作。
创建表(CREATE TABLE)
表(Table)是以行和列形式组织的数据的集合,表被创建以后,列数是固定的,但是行数可以改变。创建表时,需要给表命名,并定义它的列以及每一列的类型。
SQL CREATE TABLE 语句用于创建新的表。
代码语言:sql复制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 语句的组合来创建现有表的一个副本。
示例
下面的例子将创建一个以 name 为主键的 player 表,该表用来存储一些世界足球运动员的信息。代码如下:
代码语言:sql复制CREATE TABLE website (
name VARCHAR(20) NOT NULL,
age INT NOT NULL,
position VARCHAR(20) NOT NULL,
club CHAR(3) NOT NULL DEFAULT '',
PRIMARY KEY (`name`)
);
执行 CREATE TABLE 命令以后,你可以根据提示信息来确实表是否创建成功,也可以使用 DESC 命令来查看表的结构,如下所示:
代码语言:sql复制SQL> DESC player;
--------- --------------------- ------ ----- --------- ----------------
| Field | Type | Null | Key | Default | Extra |
--------- --------------------- ------ ----- --------- ----------------
| name | varchar(20) | NO | PRI | NULL | |
| age | INT | NO | | NULL | |
|position | VARCHAR(20) | NO | | NULL | |
| country | char(3) | NO | | NULL | |
--------- --------------------- ------ ----- --------- ----------------
4 rows in set (0.00 sec)
如上所示,我们就完成了表的创建。
删除表(DROP TABLE)
不需要使用某个数据表时,您可以将它删除。SQL DROP TABLE 语句用来删除数据表,以及与该表相关的所有数据、索引、触发器、约束和权限。
注:一旦删除了表,那么该表中所有的信息将永远丢失,慎用删除命令
DROP TABLE 语句的基本语法如下:
代码语言:sql复制DROP TABLE table_name;
注:table_name 表示要删除的数据表的名字。
示例
首先验证 player 表是否存在,然后将其从数据库中删除,如下所示:
代码语言:sql复制SQL> DESC player;
--------- --------------------- ------ ----- --------- ----------------
| Field | Type | Null | Key | Default | Extra |
--------- --------------------- ------ ----- --------- ----------------
| name | varchar(20) | NO | PRI | NULL | |
| age | INT | NO | | NULL | |
|position | VARCHAR(20) | NO | | NULL | |
| country | char(3) | NO | | NULL | |
--------- --------------------- ------ ----- --------- ----------------
4 rows in set (0.00 sec)
这意味着 player 表是有效的,接着我们使用如下的代码将它删除:
代码语言:sql复制SQL> DROP TABLE player;
Query OK, 0 rows affected (0.01 sec)
现在,如果您再次尝试使用 DESC 命令,那么您将看到以下的错误:
代码语言:sql复制SQL> DESC player;
ERROR 1146 (42S02): Table 'fcbayern.player' doesn't exist
注:fcbayern是我们使用的演示数据库的名字。
总结
本文主要介绍了SQL创建表和删除表的操作,我们在删除表的时候需要特别注意。后面我们将继续介绍SQL中向表格里插入数据等操作。