创建数据表
在讲解如何创建数据库后,我们再学习下如何在指定数据库内创建自定义的表。
创建了新的数据库后,我们可以通过
use database_name;
来指定使用创建的数据库,然后再在该数据库下创建新的表。
CREATE TABLE 语句用于创建数据库中的表
表由行和列组成,每个表都必须有个表名
语法
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
其中
table_name
指定创建表的表名,在指定的数据库中,表名应该时唯一不冲突的
column_name
指定规定表中列的名称,比如前面我们介绍的教师表teachers
,我们的列名就是(id, name, email, age, country)
。
data_type
参数规定列的数据类型。例如 字符型varchar
、整型integer
、浮点型decimal
、日期型date
等等。
size
参数规定表中列变量存储对应类型数据的最大长度。例如name VARCHAR(20)
表示列名name
最多能存储20个字符,超过20则不被允许。
提示:
如需了解 MS Access、MySQL 和 SQL Server 中可用的数据类型,请访问我们完整的 数据类型参考手册 。
1.1 CREATE TABLE 实例
现在我们想要创建一个名为 "Persons" 的表,包含五列:PersonID、LastName、FirstName、Address 和 City。
我们使用下面的 CREATE TABLE 语句:
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
其中
PersonID
列的数据类型是 整数int
, 为每个人身份的唯一标识符,类似于你的身份证号码。
LastName
、FirstName
、Address
和 City
列的数据类型是 字符varchar,且这些字段的最大长度为 255 个字符,分别对应每个人的 名字、姓氏以及家庭住址和所在城市。
执行结果如下
mysql> CREATE TABLE Persons
-> (
-> PersonID int,
-> LastName varchar(255),
-> FirstName varchar(255),
-> Address varchar(255),
-> City varchar(255)
-> );
Query OK, 0 rows affected (0.05 sec)
MySQL中,可以用desc table_name
查看表的结构。
这里我们查看"Persons" 表结构如下所示:
mysql> desc Persons;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| PersonID | int(11) | YES | | NULL | |
| LastName | varchar(255) | YES | | NULL | |
| FirstName | varchar(255) | YES | | NULL | |
| Address | varchar(255) | YES | | NULL | |
| City | varchar(255) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
练习题:创建表
题目描述:lintcode课程为了更好的给学员提供服务,我们需要为建立一个学生表来维护和更新学生个人信息,请创建一个表名为students
的学生表,该表包含以下信息:学生唯一标识符StudentId
,学生姓名name
,学生邮箱email
,学生性别gender
,学生年龄age
,学生国家country
,其中学生唯一标识符StudentId
为int(10)
,其他字符信息均为varchar(20)
,请写出正确的建表语句
-- write your sql here
Last updated
Was this helpful?