mysql语句
DDL(Data Define Language)数据定义语言
1、库的管理
1)库的创建(CREATE)
CREATE DATABASE IF NOT EXISTS database1;
2)库的修改(ALTER)
#修改字符集
ALTER DATABASE database1 CHARACTER SET utf-8或gbk;
3)库的删除(DROP)
DROP DATABASE IF EXISTS database1;
2、表的管理
1)表的创建(CREATE)
a.普通创建
CREATE TABLE IF NOT EXISTS table_name(
字段名 字段类型 ,
……
字段名 字段类型
)
b.复制创建
#复制表的所有结构
CREATE TABLE new_table LIKE old_table;
#复制表的部分结构
CREATE TABLE new_table SELECT list FROM old_table WHERE 0;
#复制表的所有结构+所有数据
CREATE TABLE new_table SELECT * FROM old_table;
#复制表的部分结构+所有数据
CREATE TABLE new_table SELECT field_list FROM old_table;
#复制表的部分结构+部分数据
CREATE TABLE new_table SELECT field_list FROM old_table WHERE condition
c.带约束创建
创建表时的约束可分为列级约束和表级约束,在mysql中:
列级约束:支持主键、唯一、非空、默认
表级约束:支持主键、唯一、外键
一般的,外键用表级约束添加,其他的用列级约束添加
#创建表时添加列级约束
CREATE TABLE user(
id INT PRIMARY KEY, #主键
name VARCHAR(20) NOT NULL, #非空
no INT UNIQUE, #唯一
flag TINYINT DEFAULT 1, #默认
)
#创建表时添加表级约束
CREATE TABLE user(
id INT,
no INT ,
book_id INT,
#以下添加表级约束
CONSTRAINT pk PRIMARY KEY(id), #主键
UNIQUE(no),#唯一,可以省略CONSTRAINT(其他约束也可一省略)
CONSTRAINT fk_user_book FOREIGN KEY(book_id) REFERENCES book(id) #外键,建议取个约束名
)
d.带标识列创建
同约束的设置方法,在创建表时,在后面添加 AUTO_INCREMENT
CREATE TABLE user(
id INT UNIQUE AUTO_INCREMENT,
name VARCHAR(20)
)
SET auto_increment_increment=3 #设置步长
SET auto_increment_offset=3 #设置起始值,mysql不支持,但可以通过插入数据时来手动插入一个起始值
2)表的修改(ALTER)
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
修改字段名
ALTER TABLE 表名 CHANGE COLUMN 字段名 新字段名;
修改字段的类型、约束或添加约束
ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型 约束类型;
添加新列
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 约束类型;
删除列
ALTER TABLE 表名 DROP COLUMN 字段名;
删除约束
ALTER TABLE user DROP PRIMARY KEY;#删除主键<br /> ALTER TABLE user DROP FOREIGN KEY fk_user_book;#删除外键<br />3)表的删除(DROP)<br />DROP TABLE IF EXISTS 表名;