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;
未完待续