1.创建数据库
Create database 数据库名
例:create database bookstore;
2.显示数据库命令
Show databases;
3.删除数据库
(1)Drop database 数据库名
例:Drop database bookstore;
(2) 使用可选项
例:[IF EXISTS] DROP DATABASE [IF EXISTS] bookstore ;
4.打开数据库
Use 数据库名
例:use bookstore;
5.修改数据库
Alter database 数据库名
例:alter bookstore;
6.命行方式创建数据库表
CREATE TABLE 数据库表名
( 字段名1 数据类型1 [NOT NULL | NULL] ,
字段名2 数据类型2 [NOT NULL | NULL] ,
…
);
7.查看数据表结构
describe 数据库名;
例:describe book;或desc book;
8.增加列
alter table 表名 add 列定义 [first | after 列名]
([FIRST | AFTER 列名]部分是可选的。如果指定了FIRST,则新添加的列将被放置在已有列的最前面;如果指定了AFTER 列名,则新添加的列将被放置在指定列之后。)
例:在表book中增加一列“浏览次数”。
ALTER TABLE book ADD 浏览次数 tinyint NULL;
拓展:在表book中增加一列“浏览次数”,位置在单价列的后面。
ALTER TABLE book ADD 浏览次数 tinyint NULL after 单价 ;
9.删除列
ALTER TABLE 表名 DROP 列名
例:删除book表中“书名”列。 ALTER TABLE book DROP 书名 ;
10.更改列名
ALTER TABLE 表名 CHANGE 旧列名 新列定义
例:将book表中“出版时间”列名改为“出版日期”列。
ALTER TABLE book CHANGE 出版时间 出版日期 date not null ;
11.更改列类型
ALTER TABLE 表名 MODIFY 列定义
例:将book表中“出版日期”列类型改为日期时间类型。
ALTER TABLE book MODIFY 出版日期 datetime not null ;
12.修改表名
RENAME TABLE 旧表名1 TO 新表名1 [ , 旧表名2 TO 新表名2 ]……
例:将book表名改为book1
RENAME TABLE book to book1 ;
再改回去
RENAME TABLE book1 to book ;
13.复制表
(1)只复制结构不复制内容
例:假设数据库BookStore中有一个表Book,创建Book表的一个名为book_copy1的拷贝。
CREATE TABLE book_copy1 LIKE Book ;
(2)即复制结构,又复制内容
列:创建表Book的一个名为book_copy2的拷贝,并且复制其内容。
CREATE TABLE book_copy2 AS (SELECT * FROM Book) ;
14.定义主键
(1)在列级定义主码
例: 创建表book_copy,将“书名”定义为主键。
CREATE TABLE book_copy (
图书编号 varchar(6) NULL,
书名 varchar(20) NOT NULL PRIMARY KEY, /*在列级定义主码*/
出版日期 date
);
(2)在表级定义主码
CREATE TABLE book_copy (
图书编号 varchar(6) NULL,
书名 varchar(20) NOT NULL,
出版日期 date, PRIMARY KEY(书名) /*在表级定义主码*/
);
(3)定义复合主键
例: CREATE TABLE course (
学号 varchar(6) NOT NULL ,
姓名 varchar(8) NOT NULL ,
毕业日期 date NOT NULL ,
课程号 varchar(3) ,
学分 tinyint , PRIMARY KEY (学号 , 课程号, 毕业日期) /*多属性只能在表级定义主码*/
);
(4)定义外键
FOREIGN KEY (外键) REFERENCES 父表表名 (父表列名)
例:CREATE TABLE book_ref (
图书编号 varchar(20) NULL ,
书名 varchar(20) NOT NULL ,
出版日期 date NULL , PRIMARY KEY (书名) , /*在表级定义实体完整性*/
FOREIGN KEY (图书编号)
REFERENCES Book (图书编号) /*在表级定义参照完整性*/
ON DELETE RESTRICT ON UPDATE RESTRICT );