第二节:表的管理

一、表的管理

  1、表的创建

    语法格式:

create table 【if not exists】 表名(
	列名 列的类型【(长度) 列的约束】,
	列名 列的类型【(长度) 列的约束】
	...
	列的类型【(长度) 列的约束】
	
);

    创建表必须具备:

    ① create table 权限;

    ② 存储空间;

    ③ 必须指定表名;

    ④ 必须知道列名,数据类型和长度或约束;

  2、表的修改

    语法格式:

alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;

       ① 修改列名(column可以省略) 

ALTER TABLE book CHANGE COLUMN publishDate pubDate DATETIME;

  

       ② 修改列的类型或约束或默认值

ALTER TABLE book MODIFY COLUMN pubDate TIMESTAMP;

     ③ 添加新列

ALTER TABLE author ADD COLUMN annual DOUBLE;

     ④ 删除列

ALTER TABLE book DROP COLUMN annual;

     ⑤ 修改表名(必须是对象的拥有者)

ALTER TABLE author RENAME TO book_author;

    ⑥ 修改表的字符集

alter table 表名 character set 字符集名称;

 

  3、表的删除

    语法格式:

drop table 【IF EXISTS】 表名;

    一般在创建表/库的之前,都会先进行删除,再进行创建:

DROP DATABASE IF EXISTS 旧库名;

CREATE DATABASE 新库名;

DROP TABLE IF EXISTS 旧表名;

CREATE TABLE 表名();

    表的删除:

    ① 数据和结构都被删除;

    ② 所有正在运行的相关事务被提交;

    ③ 所有相关索引被删除;

    ④ DROP Table 语句不能回滚;

  4、查看表

    查询某个数据库中所有的表名称:

show tables;

  

    查看表结构:

DESC 表名

  

    查看表全部数据:

select * from 表名;

     查看创建表的 SQL 语句:

show create table 表名;

  

  5、复制表

    语法格式:

CREATE TABLE 新表名 LIKE 表名;

    

    ① 复制表结构,不会有数据

CREATE TABLE copy_book LIKE book;

  

    ② 复制表结构 + 表数据

CREATE TABLE copy_book2 
SELECT * FROM book;

  

    ③ 复制表结构 + 部分数据,部分列

CREATE TABLE copy_book3
SELECT id, bname
FROM book
WHERE id = 1;

  

    ④ 仅仅复制某些字段(列)不复制数据

      方式一:

CREATE TABLE copy_book4
SELECT id, bname
FROM book
WHERE 1 = 2;

  

      方式二:

CREATE TABLE copy_book4
SELECT id, bname
FROM book
WHERE 0;   #0代表 false

  

二、案例

  1、创建表

    表 book:

CREATE TABLE book (
	id INT,                #编号
	bname VARCHAR(20),     #图书名
	price DOUBLE,          #价格
	author INT,            #作者编号
	publishDate DATETIME   #出版日期 
);

  

    表:author

CREATE TABLE author (
	id INT,
	au_name VARCHAR(20),
	nation VARCHAR(10)

);

  

  2、将表departments中的数据插入新表dept2中

CREATE TABLE dept2
SELECT department_id,department_name
FROM myemployees.departments;

  

  3、将列Last_name的长度增加到50

ALTER TABLE emp5 MODIFY COLUMN last_name VARCHAR(50);

  

  4、根据表employees创建employees2

CREATE TABLE employees2 LIKE myemployees.employees;

  

  5、将表employees2重命名为emp5

ALTER TABLE employees2 RENAME TO emp5;

  

  6、在表emp5中添加新列test_column

ALTER TABLE emp5 ADD COLUMN test_column INT;

  

  7、直接删除表emp5中的列 dept_id

ALTER TABLE emp5 DROP COLUMN test_column;

  

原文地址:https://www.cnblogs.com/niujifei/p/14930826.html