一、表的创建
语法:
CREATE TABLE 表名(
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
……
列名 列的类型【(长度) 约束】,
)
eg1.创建表book
CREATE TABLE book(
id INT,#编号
bName VARCHAR(20), #书名
prize DOUBLE, #价格
authorId INT, #作者
publishDate DATETIME #出版日期
)
eg2.创建表author
create table author(
id int,
au_name varchar(20),
nation varchar(20)
)
#查看表结构:DESC 表名;
二 、表的修改
语法:
alter table 表名 change / modify / add / drop / rename to + column 列名 修改内容
1、修改列名
eg1.将publishDate列名修改为pubDate
ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;
2、修改列的类型或约束
eg2.将出版时间的DATETIME类型修改为TIMESTAMP类型
ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
3、添加新列
eg3.在author表中添加作者年薪一列
ALTER TABLE author ADD COLUMN annual DOUBLE;
4、删除列
eg4.删除suthor表中作者年薪一列
ALTER TABLE author DROP COLUMN annual;
5、修改表名
eg5.修改author表名为book_author
ALTER TABLE author RENAME TO book_author;
三 、表的删除
eg1.修改book_author表
DROP TABLE book_author;
容错处理:DROP TABLE IF EXISTS book_author;
#查看当前库的所有表:SHOW TABLES;
#通用写法:
DROP DATABASE IF EXISTS 旧库名;
CREATE DATABASE 新库名;
DROP TABLE IF EXISTS 旧表名;
CREATE DATABASE 新库名;
四 、表的复制
1、仅仅复制表的结构
eg1.复制表book_author的结构到copy表
CREATE TABLE copy LIKE book_author;
2、复制表的结构和数据
eg2.复制表book_author的数据和结构到copy2表
CREATE TABLE copy2
SELECT * FROM book_author;
3、只复制表的部分数据
eg3.复制表book_author的id和author_name列中国籍为中国的作家信息到copy3表
CREATE TABLE copy3
SELECT id,au_name
FROM book_author
WHERE nation='中国';
4、只复制表的部分结构
eg4.复制表book_author的id和author_name列,不复制数据
CREATE TABLE copy4
SELECT id, au_name
FROM book_author
WHERE 0; #恒不成立
5、跨库复制
eg5.复制myemployees库中表departments的两列到表dept2
CREATE TABLE dept2
SELECT department_id,department_name
FROM myemployees.departments;