mysql数据定义语言(DDL)库和表(创建库、创建表)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/czh500/article/details/85310249

mysql数据定义语言(DDL)库和表(创建库、创建表)

我就直接po截图和代码了,代码中有注释

#
SHOW VARIABLES WHERE variable_name = 'datadir';
SHOW VARIABLES WHERE variable_name LIKE '%datadir%';
SHOW VARIABLES WHERE variable_name LIKE '%cha%';
SHOW VARIABLES LIKE 'version';
SHOW VARIABLES LIKE 'datadir';
SHOW VARIABLES LIKE '%datadir%';
SHOW VARIABLES LIKE '%cha%';
#
#DDL
/*

数据定义语言

库和表的管理

一、库的管理
创建、修改、删除
二、表的管理
创建、修改、删除

创建: create
修改: alter
删除: drop

*/

#一、库的管理
#1、库的创建
/*
语法:
create database  [if not exists]库名;
*/

#案例:创建库shoppingCart
CREATE DATABASE shoppingCart;

#如果库不存在,就创建,如果库存在,就不创建了(容错性处理)
CREATE DATABASE IF NOT EXISTS shoppingCart;

#2、库的修改
#这句话旧版本可以使用,但是在新版本中已经废弃了,因为这句话不够安全
#注意:一般别去改库名,别没事给自己找麻烦
RENAME DATABASE shoppingCart TO 新库名;

#更改库的字符集(修改完数据库字符集,需要重启mysql数据库)
ALTER DATABASE shoppingCart CHARACTER SET utf8;

#3、库的删除
DROP DATABASE shoppingCart;
#
DROP DATABASE IF EXISTS shoppingCart;

#二、表的管理
#1.表的创建 ★

/*
语法:
create table 表名(
	列名 列的类型【(长度) 约束】,
	列名 列的类型【(长度) 约束】,
	列名 列的类型【(长度) 约束】,
	...
	列名 列的类型【(长度) 约束】
);
*/
#案例:创建表Book

CREATE TABLE Book(
	id INT, #编号 
	bName VARCHAR(30), #书名
	price DOUBLE, #价格
	authorId INT, #作者编号
	publishDate DATETIME #出版日期
);

#查看表结构
DESC Book;

#案例:创建表author
CREATE TABLE author(
	id INT,
	aName VARCHAR(25),
	nation VARCHAR(80)
);
#创建表时,容错性处理
CREATE TABLE IF NOT EXISTS author(
	id INT,
	aName VARCHAR(25),
	nation VARCHAR(80)
);

#查看表结构
DESC author;

#2.表的修改

/*
语法
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;

*/

#1.修改列名
ALTER TABLE Book CHANGE COLUMN publishDate pubDate DATETIME;
#
#修改列名,COLUMN关键字可以省略,建议不要省略
ALTER TABLE Book CHANGE publishDate pubDate DATETIME;

#2.修改列的类型或约束,COLUMN关键字可以省略,建议不要省略
ALTER TABLE Book MODIFY COLUMN pubDate TIMESTAMP;

#3.添加新列
ALTER TABLE author ADD COLUMN annual DOUBLE;

#4.删除列
ALTER TABLE author DROP COLUMN annual;

#
CREATE TABLE mytest(
	t1 INT,
	t2 INT,
	t3 INT,
	t4 INT
);
#
DESC mytest;
#FIRST和AFTER这2个关键字是在添加新列的时候,表示添加到哪个位置,这2个关键字用的比较少
#添加新列,默认是加到最后的位置
#FIRST关键字的作用是,把这个新列插入到最前面
ALTER TABLE mytest ADD COLUMN newt1 INT FIRST;
#AFTER关键字的作用是,把这个新列插入到t2列的后面
ALTER TABLE mytest ADD COLUMN newt2 INT AFTER t2;

#5.修改表名,TO可以省略
ALTER TABLE author RENAME TO myAuthor;

#
DESC Book;
#
DESC author;

#3.表的删除
DROP TABLE author;
#
DROP TABLE IF EXISTS book;

#查看当前库的所有表
SHOW TABLES;

#通用的写法:
DROP DATABASE IF EXISTS 旧库名;
CREATE DATABASE 新库名;

DROP TABLE IF EXISTS 旧表名;
CREATE TABLE  新表名(列名 列的类型【(长度) 约束】, ......);

#4.表的复制
INSERT INTO author VALUES
(1, '吴承恩', '中国'),
(2, '施耐庵', '中国'),
(3, '曹雪芹', '中国'),
(4, '罗贯中', '中国'),
(5, 'JK罗琳', '美国'),
(6, '村上春树', '日本');
#清空表
TRUNCATE TABLE author;
#
SELECT * FROM author;
#1.仅仅复制表的结构
CREATE TABLE author2 LIKE author;
#
SELECT * FROM author2;

#2.复制表的结构+数据
CREATE TABLE author3 SELECT * FROM author;
#
SELECT * FROM author3;

#3.复制表的结构,不要表中的数据
CREATE TABLE author4 SELECT * FROM author WHERE 666 = 888;
#
SELECT * FROM author4;

#只复制部分数据
CREATE TABLE author5 SELECT * FROM author WHERE nation = '中国';
#
SELECT * FROM author5;

#只复制部分列和部分数据
CREATE TABLE author6 SELECT author.`aName`, author.`nation` 
FROM author WHERE nation = '中国';
#
SELECT * FROM author6;

#只复制部分列,并且不要数据
CREATE TABLE author7 SELECT author.`aName`, author.`id`
FROM author WHERE 119 = 110;
#或者直接在WHERE后面写个0零
CREATE TABLE author8 SELECT author.`aName`, author.`id`
FROM author WHERE 0;
#
SELECT * FROM author7;
SELECT * FROM author8;

#可以加IF NOT EXISTS提高容错性
CREATE TABLE IF NOT EXISTS author9 SELECT author.`aName`, author.`id`
FROM author WHERE nation = '中国';
#
SELECT * FROM author9;

#
#注意:0表示FALSE,非0表示TRUE
#0表示FALSE假
SELECT * FROM author WHERE 0;
#1表示TRUE真
SELECT * FROM author WHERE 1;
#非0零,表示TRUE真
SELECT * FROM author WHERE 666;
#非0零,表示TRUE真
SELECT * FROM author WHERE 888;

#
CREATE TABLE IF NOT EXISTS author20181227(
	id INT,
	aName VARCHAR(25),
	nation VARCHAR(80),
	age INT,
	hobby VARCHAR(200),
	salary DOUBLE,
	birthday DATETIME
);
#
SELECT * FROM author20181227;
#把某张表中查询到的结果集插入到另一张表中(注意:另一张表指的是已经存在的表)
#INSERT INTO后面跟的SELECT语句,你可以理解成是一个子查询
INSERT INTO author20181227(aName, nation, id) SELECT 
author.`aName`, author.`nation`, author.`id` FROM author WHERE nation = '中国';

猜你喜欢

转载自blog.csdn.net/czh500/article/details/85310249
今日推荐