MySQL初级-13-库和表的管理

本文最后更新于:2020年7月25日 下午

mysql Ver 14.14 Distrib 5.5.62

文中案例所用数据库下载

13.1 库的管理

13.1.1 库的创建

13.1.1.1 语法

CREATE DATABASE [IF NOT EXISTS] 库名;

13.1.1.2 示例

  1. 创建数据库library。

    CREATE DATABASE IF NOT EXISTS library;

13.1.2 库的修改

有安全隐患,因此一般不使用。

RENAME DATABASE books TO 新库名;(已废弃)

  1. 更改库的字符集。

    ALTER DATABASE library CHARACTER SET gbk;

13.1.3 库的删除

13.1.3.1 语法

DROP DATABASE [IF EXISTS] 库名;

13.1.3.2 示例

  1. 删除数据库library。

    DROP DATABASE IF EXISTS library;

13.2 表的管理

13.2.1 表的创建

13.2.1.1 语法

CREATE TABLE [IF NOT EXISTS] 表名(
	列名 列的类型[长度 约束],
    列名 列的类型[长度 约束],
    ...
    列名 列的类型[长度 约束],
)

13.2.1.2 示例

  1. 创建表book,要求有字段id,INT型;book_name,VARCHAR(20)型;price,DOUBLE 型;author_id,INT型,publish_date,DATETIME型。

    CREATE TABLE IF NOT EXISTS book(
    	id INT,
    	book_name VARCHAR(20),
    	price DOUBLE,
    	author_id INT,
    	publish_date DATETIME
    );

13.2.2 表的修改

13.2.2.1 语法

ALTER TABLE 表名 ADD|DROP|RENAME TO|MODIFY|CHANGE COLUMN 列(表)名 [列类型,约束];

13.2.2.2 修改列名

  1. 将book表中的publish_date列改名为pub_date。

    ALTER TABLE book CHANGE COLUMN publish_date pub_date DATETIME;

13.2.2.3 修改列的类型或约束

  1. 修改book表中pub_date列的字段类型我TIMESTAMP。

    ALTER TABLE book MODIFY COLUMN pub_date TIMESTAMP;

13.2.2.4 添加新列

  1. 在book表中添加新列num INT型。

    ALTER TABLE book ADD COLUMN num INT;

13.2.2.5 删除列

  1. 删除book表中的num列。

    ALTER TABLE book DROP COLUMN num;

13.2.2.6 修改表名

  1. 将book表的表名修改为books。

    ALTER TABLE book RENAME TO books;

13.2.3 表的删除

13.2.3.1 语法

DROP TABLE [IF EXISTS] 表名;

13.2.3.2 示例

  1. 删除books表。

    DROP TABLE IF EXISTS books;

13.2.4 表的复制

13.2.4.1 仅复制表结构

CREATE TABLE 表名 LIKE 被复制的表名;

13.2.4.2 复制表结构和表中数据

CREATE TABLE 新表名
SELECT * 
FROM 被复制的表名;

13.2.4.3 复制部分数据

CREATE TABLE 新表名
SELECT 列名
FROM 被复制的表名
WHERE 筛选条件

13.2.4.4 复制部分结构

CREATE TABLE 新表名
SELECT 列名
FROM 被复制的表名
WHERE 0;

只要满足筛选条件不成立均可实现复制部分结构而不复制表中数据。


版权声明:自由转载-非商用-非衍生-保持署名 Creative Commons BY-NC-ND 3.0 协议,转载请注明出处!

 目录