MySQL学习笔记(六)MySQL中库和表的管理

此文转载自:https://blog.csdn.net/m0_48834053/article/details/110009038#commentBox

MySQL学习笔记(六)-MySQL中库和表的管理

作者:就叫易易好了
日期:2020/11/23

DDL即数据定义语言

创建:create

修改:alter

删除:drop


库和表的管理:

一、库的管理

1、库的创建

语法:

create database 库名;

案例:创建库Books
CREATE DATABASE Books;
如果已经存在Books数据库,那么编译器就会报错
所以不确定有没有要创建的数据库的时候
我们可以采用以下语句:
CREATE DATABASE IF NOT EXISTS Books;
这样的话如果存在Books数据库,也不会报错
不存在这个数据库,就会创建这个数据库

此时数据库里就多了一个Books库

一般建立的数据库的位置在

你安装的盘/MySQL/mysql server/data

2、库的修改

如果要修改库名的话,目前没有语句可以修改(安全性低)

可以通过上面说的库的地址,直接重命名库的名字。

没事别瞎改

3、删库跑路

DROP DATABASE Books;
或者
DROP DATABASE IF EXISTS Books;(推荐)

二、表的管理

语法:

create table 表名

​ 列名 列的类型【(长度) 约束】,

  列名   列的类型【(长度) 约束】,

​ …

列名   列的类型【(长度) 约束】

1、表的创建

  • 创建一个表,名字是Book
CREATE TABLE Book(
	id INT,#编号
    bName VARCHAR(20),#图书名
    price DOUBLE,#价格
    authorid INT,#作者编号
    publishDate  DATETIME #出版日期
);

在这里插入图片描述

  • 再来一个作者表
CREATE TABLE author (
	id INT,
    author_name VARCHAR(20),
    nation VARCHAR(10) #国籍
);

在这里插入图片描述

2、表的修改

语法:

alter table 表名 add|drop|modify|change conlumn

2.1 修改列名

如果我想把book表里的publishDate改成PD,可以这样写:

ALTER TABLE book CHANGE COLUMN publishdate PD DATETIME;
2.2 修改列的类型或约束

如果我要把book表里的PD改成timestamp类型

ALTER TABLE book MODIFY COLUMN PD TIMESTAMP;
2.3 添加新列

如果我要在author表中添加一个annual列,可以使用以下语句

ALTER TABLE author ADD COLUMN annual DOUBLE;
2.4 删除列

现在我要把刚才在author表中添加的列删除,可以使用以下语句:

ALTER TABLE author DROP COLUMN annual;
2.5 修改表名

如果我要把book表重命名为bookname,可以使用一下语句

ALTER TABLE book RENAME TO bookname;

3、表的删除

现在我要删除bookname这个表格

DROP TABLE bookname;

4、表的复制

先在author表中插入几个数据

INSERT INTO author VALUES
(1,'余秋雨','中国'),
(2,'贾平凹','中国'),
(3,'东野圭吾','日本'),
(4,'莫言','中国');

此时author表格为:

在这里插入图片描述

4.1 只复制表的结构
CREATE TABLE copy LIKE author;

此时copy表中的结构和author表一样,但是没有数据。

4.2 复制表的结构和数据
CREATE TABLE copy_2
SELECT * FROM author;
4.3 只复制部分数据
CREATE TABLE copy_3
SELECT id,author_name
FROM author
WHERE nation='中国';
4.4 只复制某些字段
CREATE TABLE copy_4
SELECT id,author_name
FROM author
WHERE 100=200; #一个恒不成立的条件,这时就是空表了,只有两个表头
或者写成WHERE 0;

未完待续

原文地址:https://www.cnblogs.com/phyger/p/14035127.html