一、创建和删除数据库
1. 使用DDL语句创建数据库
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码;
示例:
#创建数据库
create database test default character set utf8;
#查看数据库
show databases;
#查看数据库编码
select schema_name,default_character_set_name from information_schema.schemata where schema_name = 'test';
2. 使用DDL语句创建数据库
DROP DATABASE 数据库名称;
示例:
#删除test数据库
drop database test;
3. 选择数据库
在创建表时,需要先选择数据库
USER 数据库名;
二、创建表与删除表
4. 使用DDL语句创建表
CREATE TABLE 表名(列名 类型,列名 类型......);
示例:
#创建一个 employees 表包含雇员ID,雇员名称,雇员薪水。
create table employees(employee_id int,employee_name varchar(10),salary float(8,2));
#查看已创建的表
show tables;
5. 使用DDL语句删除表
DROP TABLE 表名;
DROP TABLE IF EXISTS 表名; -- 表存在时删除表
示例:
#删除 employees 表
drop table employees;
三、修改表
6. 使用DDL语句修改表名
ALTER TABLE 旧表名 RENAME 新表名;
示例:
#创建一个 employees 表包含雇员ID,雇员名称,雇员薪水。
create table employees(employee_id int,employee_name varchar(10),salary float(8,2));
#将 employees 表名修改为 emp。
alter table employees rename emp;
7. 使用DDL语句修改列名
ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型;
示例:
#将 emp 表中的 employee_name 修改为 name
alter table emp change column employee_name name varchar(20);
8. 使用DDL语句修改列类型
ALTER TABLE 表名 MODIFY 列名 新类型;
示例:
#将 emp 表中的 name 的长度指定为40
alter table emp modify name varchar(40);
9. 使用DDL语句添加新列
ALTER TABLE 表名 ADD COLUMN 新列名 类型;
示例:
#在 emp 表中添加佣金列,列名为 commission_pct
alter table emp add column commission_pct float(4,2);
10. 使用DDL语句删除指定的列
ALTER TABLE 表名 DROP COLUMN 列名;
示例:
#删除 emp 表中的 commission_pct
alter table emp drop column commission_pct;
四、复制表
11. 表的列结构 + 数据的复制
CREATE TABLE 新表名 SELECT * FROM 旧表名;-- 复制表的列构造以及数据来创建新表
示例:
CREATE TABLE customerH SELECT * FROM customer;
注意:
(1).如果给后面的检索语句(SELECT)加上对应的检索条件(WHERE语句),或者限制记录数量(使用LIMIT语句),可以只复制满足条件的记录。
(2).使用此方法可能发生列属性被改变的情况,例如,根据MySQL的版本,VARCHAR(20)可能被修改为CHAR(20)。
(3).可能发生不能复制INDEX的有关设定的情况,复制完成后,请使用DESC命令来确认一下表的构造。
12. 复制表的列构造
只复制表的列结构来创建新表。此方法尽管不复制表的数据,但[AUTO_INCREMENT]和[PRIMARY KEY]等列构造将被复制。
CREATE TABLE 新表名 LIKE 旧表名; -- 复制列构造创建新表
示例:
CREATE TABLE customerG LIKE customer;
13. 数据的复制
INSERT INTO 表名 SELECT * FROM 含有数据的表; -- 向一个表中复制另一个表中的全部数据
示例:
INSERT INTO customerG SELECT * FROM customer;
注意:同第一种复制方法(复制表的列构造+数据)一样,可以加入WHERE语句或LIMIT语句来限制抽出的记录的数量。可以用改方法从其他表结构完全不同的表中复制数据。