本篇大纲
MySQL数据表
创建表
创建主键
AUTO_INCREATE
指定默认值
更新表结构
删除表,重命名表
01:表
MySQL 数据库的表是一个二维表,由一个或多个数据列构成
每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据
02:创建表(命令)
格式:使用create table 创建表,必须给出下列信息
新表的名字
表中列的名字和定义,用逗号分隔
创建表(实例)
CREATE TABLE customers
(
cust_id int NOT NULL AUTO_TNCREMENT,
cutst_name char(50) NOT NULL,
cust_address char(50) NULL,
cust_city char(50) NULL,
PRIMARY KEY (cust_id)
)ENGINE=InnoDB;
03:创建表(说明)
从例子中可以看到,表名紧跟在CREATETABLE关键字后面,实际的表定义(所有列)括在圆括号之中
各列之间用逗号分隔,这个表由9列组成。每列的定义以列名开始,后跟列的数据类型
表的主键可以在创建表时用PRIMARY KEY 关键字指定
04:给列指定NULL类型
NULL 值就是没有值或缺省
定义为NULL值的列允许在插入行时不给出该列的值,指定NOT NULL值的列,在插入或更新行时,该列必须有值
例1:创建表,并指定特定的列为NOT NULL
给列指定NULL类型(实例)
CREATE TABLE order(
order_num int NOT NULL AUTO_TNCRMENT,
order_date datetime NOT NULL,
cust_id int NOT NULL,
PRIMARY KEY (order_num)
)ENFINE=InnoDB;
05:创建主键
主键值必须唯一。即,表中的每行必须具有唯一的主键值
如果主键使用单个列,则他的值必须唯一。如果使用多个列,则这些列的组合值必须唯一
创建主键的语法是:在创建表的时候使用如下命令:
PRIMAY KEY(列名)
06:AUTO_INCREMENT
AUTO_INCREMENT告诉MySQL,本列每当增加一行时自动增量
每次执行一个insert操作时,MySQL自动对该列增1
每个表只允许一个AUTO_INCREMENT列,而且它必须可以被索引(通常使用它作为主键)
使用语句:select last_insert_id() 可以获取当前表中的AUTO_INCREMENT值
07:指定默认值
如果在插入行时没有给出值,MySQL允许指定此时使用的默认值
默认值用create table语句的列定义中的DEFAULT关键字指定
指定默认值(实例)
CREAT TABLE orderitems(
order_num int NOT NULL,
prod_id char(10) NOT NULL,
quantity int NOT NULL DEFAULT 1,
PRIMARY KEY (order_num,order_item)
)ENGINE=InnoDB
08:更新表
更新表的定义,使用ALTER TABLE语句
使用ALTER TABLE更改表结构,必须给出下面的信息
在ALTER TABLE之后给出更改的表名
所做更改的列表
09:添加列(实例1)
实例:给表添加一列
ALTER TABLE vendors ADD vend_phone CHAR(20) not null default '123456';
说明:上述语句给vendors表增加一个名为vend_phone的列,必须明确其数据类型
10:添加列(实例2)
11:修改列
格式:Alter table 表名 modify 列名 新类型 新参数;
alter table 表名 change 旧列名 新列名 新类型 新参数;
12:修改列(实例1)
13:修改列(实例2)
14:删除列(实例)
格式:alter table 表名 drop 列名;
实例:删除一例
ALTER TABLE vendors Drop vend_phone;
15:更新表(实例)
实例3:给表指定外键
16:删除表
删除表是删除整个表而不是其内容,使用命令
DROP TABLE 表名;
17:重命名表
使用RENAME TABLE 语句可以重命名一个表;
RENAME TABLE 旧的表名 TO 新的表名;