12—— DDL(数据定义)语言:库和表的管理

   数据定义语言是的管理,主要有:

库和表的:创建:create修改:alter删除:drop


一、库的管理

1、库的创建

(1)、语法:

create database 库名;

# 如果该库存在则不创建
create database if not exists 库名;

(2)、应用实例

# 创建名为 db01 的数据库
CREATE DATABASE db01;

2、库的修改

  • 库一般不修改,以防止出现问题
  • 如果修改,一般是修改库的字符集。如将字符集修改成 utf8 的格式等。

(1)、修改库的字符集

开始的字符集如下:

   

将其修改成 utf8 的字符集

ALTER DATABASE db01 CHARACTER SET utf8;

   

3、库的删除

DROP DATABASE db01;

# 如果存在就删除
DROP DATABASE IF EXISTS db01;

【总结】 在实际的应用中如果要新建一个库,常见的操作是:

DROP DATABASE IF EXISTS 库名;
CREATE DATABASE 库名;

二、表的管理

  • 对表进行操作之前首先要进入表所在的库,常用  use 库名;

1、表的创建

(1)、语法

# 类型的长度和约束有时可以省略

create table 表名(
        列名1  列的类型(长度)  [约束],
        列名2  列的类型(长度)  [约束]
);

(2)、应用实例

  • 创建一个名为book的表(无任何约束):
    CREATE TABLE book(
    	id INT,		# 书籍的id
    	bName VARCHAR(20),  # 书名,varchar类型的长度必须指定,不能省略
    	price DOUBLE,	    # double 类型长度可以省略
    	authorId INT,
    	publishDate DATETIME 
    );

    结果如下:

         

2、表的修改

  • 修改列名
  • 修改列类型或约束
  • 添加新列
  • 删除列
  • 修改表名

(1)、修改列名:将book表中的 publishData 修改为 pubData  

# column 可以省略,最后要加上类型名
ALTER TABLE book CHANGE COLUMN publishDate pubData DATETIME;

(2)、修改类型:将book表中的 pubData 列类型由datetime 修改成为 timestamp 

ALTER TABLE book MODIFY COLUMN pubData TIMESTAMP;

    

(4)、添加新列:为表 book 添加新列 销量: sales 

ALTER TABLE book ADD COLUMN sales DOUBLE;

    

(5)、删除列:删除book 表中的sales列

ALTER TABLE book DROP COLUMN sales;

(6)、修改表名:将book 的表名修改成 books

ALTER TABLE book RENAME TO books;

3、表的删除

(1)、语法

drop table 表名;

# 添加判读是否存在
drop table if exists 表名;

(2)、应用实例:删除books 表

DROP TABLE books;

4、表的复制

有如下的一张表 author :

   

(1)、仅仅复制表的全部结构:创建表 theCopy01 复制author的全部结构

# 此时theCopy01 表的结构和 author 一样,但是没有数据
CREATE TABLE theCopy01 LIKE author;

    

 (2)、同时复制表的全部结构和数据:创建表 theCopy02 复制 author 

CREATE TABLE theCopy02
SELECT * FROM author;

(3)、只复制表的部分数据和结构:创建表  theCopy03 复制部分author的数据和结构

# theCopy03 表只复制author的id,auname 列
CREATE TABLE theCopy03
SELECT id,auname
FROM author;

# theCopy03 表复制时带有一定的条件限制
CREATE TABLE theCopy03
SELECT id,auname
FROM author
WHERE city='A' OR city='C';

(4)、只复制表的部分结构,而不复制数据:创建表  theCopy04 复制表author的部分结构

# 只复制表author的id 和 auname 列
CREATE TABLE theCopy04
SELECT id,auname
FROM author
WHERE 0;    # 0为false,表示条件一直不满足,将不会复制author表的数据

【总结】在实际的应用中如果要新建一个库,常见的操作是:

DROP TABLE IF EXISTS 表名;
CREATE TABLE 表名();
发布了213 篇原创文章 · 获赞 48 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/Jeffxu_lib/article/details/102253819