表是数据库存储数据的基本单位。一个表包含若干个字段或记录。表的操作包括创建新表、修改表和删除表。这些都是数据库管理中最基本,也是最重要的操作。
一、通过SQL语句
MySQL中,创建表是通过SQL语句CREATE TABLE实现的,其语法如下:
CREATE TABLE 表名 (
属性名1 数据类型 [完整性约束条件],
属性名2 数据类型 [完整性约束条件]
);
表名:将要创建表的名称;
属性名:数据表中字段的名称;
数据类型:当前字段的数据类型,比如int型;
完整性约束条件:该字段是可选的,用于指定当前字段的某些特殊约束条件,下标为MySQL的约束条件关键字及其解释:
注意:在创建表时,首先要使用USE语句选择相应的数据库。
下面给出在数据库test中创建表example0 的代码:
mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> CREATE TABLE example0 (
-> id INT,
-> name VARCHAR(20),
-> sex BOOLEAN
-> );
Query OK, 0 rows affected (0.25 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| example0 |
+----------------+
1 row in set (0.00 sec)
上述代码中,在未创建表之前使用“show tables;”指令查看数据库中的表显示为空,创建之后再查看,可以看到example0已经存在了。
下面给出创建表时,带约束条件的方式:
CREATE TABLE IF NOT EXISTS t1 (
tid INT UNSIGNED NOT NULL AUTO_INCREMENT,
tname VARCHAR(30) NOT NULL,
PRIMARY KEY(tid)
)ENGINE=MYISAM AUTO_INCREMENT=1024 DEFAULT CHARSET=utf8;
上述代码创建的表中包括两个字段tid和tname。
tid的数据类型为INT,约束条件为UNSIGNED、NOT NULL、AUTO_INCREMENT,表示该字段为非负数、不能为空、自动增长;
tname的数据类型为VARCHAR,约束条件为非空;PRIMARY KEY(tid)指定tid为该表的主键;
ENGINE=MYISAM:表示该表采用MYISAM存储引擎;
AUTO_INCREMENT=1024:表示自动增长的字段从1024开始;
DEFAULT CHARSET=utf8:表示该表默认字符集编码为utf8。
通过SHOW COLUMNS FROM指令可以查看刚才创建的表的属性:
mysql> SHOW COLUMNS FROM t1;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| tid | int(10) unsigned | NO | PRI | NULL | auto_increment |
| tname | varchar(30) | NO | | NULL | |
+-------+------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
二、通过程序