数据库定义语言
库和表的管理
一、库的管理
创建、修改、删除
二、表的管理
创建、修改、删除
创建:create 修改:alter 删除:drop database 库 table 表
#案例:创建库Books CREATE DATABASE Books #为了提高容错性 CREATE DATABASE IF NOT EXISTS Books /* 如果库已经存在了就不创建,并且也不报错。 如果库不存在就创建 */
exists : 强调的是是否返回结果集,不要求知道返回什么
exists (sql 返回结果集为真) 有
not exists (sql 不返回结果集为真)没有
#通用的写法 DROP DATABASE IF EXISTS 旧的库名 CREATE DATABASE 新的库名 DROP TABLE IF EXISTS 旧的表名 CREATE TABLE 新的表名
/* 一般不修改,修改数据会出现问题 */ /* 需要修改: 1.停止MySQL服务 2.修改文件夹名 3.启动MySQL服务 */
ALTER DATABASE books CHARACTER SET gbk;
DROP DATABASE books; DROP DATABASE IF EXISTS books;
create table 表名( 列名 列的类型【长度 约束】, 列名 列的类型【长度 约束】, 列名 列的类型【长度 约束】, ... 列名 列的类型【长度 约束】
案例:创建book表
CREATE TABLE book( id INT,#编号 bName VARCHAR(20),#书名的最大长度 20个字符 price DOUBLE,#价格 authorId INT,#作者编号,实现分类存储减少冗余 publishDate datetime #出版日期 );
案例,创建author表
CREATE TABLE author (
id INT,
au_name VARCHAR(20),
nation VARCHAR(20)
)
DESC book; DESC author;
语法 ALTER TABLE 表名 add|drop|modify|change COLUMN 列名 新的列名 类型【约束】 ①修改列名 after table 表名 change column 旧列名 新列名 类型; ②修改列的类型或约束 after table 表名 modify column 列名 新类型【新约束】 ③添加新列 after table 表名 add column 列名 类型【(first|after 字段名)控制添加的位置】默认就是在最后 ④删除列 after table 表名 drop column 列名; ⑤修改表名 after table 表名 rename 【to】 新表名
#①修改列名 ALTER TABLE book CHANGE COLUMN publishDate pubDate datetime #②修改列的类型或约束 ALTER TABLE book MODIFY COLUMN pubDate TIMESTAMP; #③添加新列 ALTER TABLE author ADD COLUMN annual DOUBLE; #④删除列 ALTER TABLE author DROP COLUMN annual; #⑤修改表名 ALTER TABLE author RENAME TO book_author;
DROP TABLE book_author;
INSERT INTO author VALUES(1,‘村上春树‘,‘日本‘), (2,‘莫言‘,‘中国‘), (3,‘冯唐‘,‘中国‘), (4,‘金庸‘,‘中国‘);
create table 表名 like 旧表 CREATE TABLE copy LIKE author;
create table 表名 select 查询列表 from 旧表【where筛选】 CREATE TABLE copy2 SELECT * FROM author;
CREATE TABLE copy3 SELECT id,au_name FROM author WHERE nation=‘中国‘;
CREATE TABLE copy4 SELECT id,au_name FROM author WHERE 0;
after table 表名 ADD column 列名 类型【(first|after 字段名)控制添加的位置】默认就是在最后。很少使用
CREATE TABLE test2( t1 INT, t2 INT, t3 INT ); DESC test2 ALTER TABLE test2 ADD COLUMN ddd INT FIRST; ALTER TABLE test2 ADD COLUMN ddd2 INT AFTER t2;
ALTER TABLE test2 ADD COLUMN ddd3 INT last;不支持,默认就是在最后
#2将表department中的数据插入新表dept2中
CREATE TABLE dept2 SELECT department_id,department_name FROM myemployees.departments; /* 可以跨库复制表的结构 库名.表名 */
原文:https://www.cnblogs.com/rijiyuelei/p/12380523.html