论DDL语言,和美女老师讨论的第一天
前言
前面简单对这四大语言做了基本了解,今天来讲解一下DDL语言,DDL 是数据定义语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改的操作语言。它和 DML 语言的最大区别是 DML 只是对表内部数据的操作,而不涉及到表的定义、结构的修改,更不会涉及到其他对象。DDL 语句更多的被数据库管理员(DBA)所使用,至于DML语言,
一、库的管理
1.库的创建
创建数据库:
create database 数据库名称;
创建数据库,判断不存在,再创建:
create database if not exists 数据库名称;
创建数据库,并指定字符集
create database 数据库名称 character set 字符集名;
#案例:创建库Books CREATE DATABASE IF NOT EXISTS books ;
2.库的查询
查询所有数据库的名称:
show databases;
查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
查询当前正在使用的数据库名称
select database();
使用数据库
use 数据库名称;
3.库的修改
语法: RENAME DATABASE books TO 新库名;
修改数据库的字符集
alter database 数据库名称 character set 字符集名称;
4.库的删除
删除数据库
drop database 数据库名称;
判断数据库存在,存在再删除
drop database if exists 数据库名称;
二、表的管理
1.表的创建
语法: create table 表名( 列名 列的类型【(长度) 约束】, 列名 列的类型【(长度) 约束】, 列名 列的类型【(长度) 约束】, ... 列名 列的类型【(长度) 约束】 );
注意 :最后一列,不需要加逗号( , )
#案例:创建表Book
2.表的查询
查询当前数据库中所有的表
show tables;
查询某个数据库中所有的表
show tables from 数据库名称;
查询表结构
desc 表名;
3.表的修改
对于已经创建好的表,尤其是已经有大量数据的表,如果需要对表做一些结构上的改变,我们可以先将表删除(drop),然后再按照新的表定义重建表。这样做没有问题,但是必然要做一些额外的工作,比如数据的重新加载。而且,如果有服务在访问表,也会对服务产生影响。因此,在大多数情况下,表结构的更改一般都使用 alter table语句,以下是一些常用的命令和语法。
语法: alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;
a.修改表名 alter table 表名 rename to 新的表名; b.修改表的字符集 alter table 表名 character set 字符集名称; c.添加一列 alter table 表名 add 列名 数据类型; d.修改列名称 类型 alter table 表名 change 列名 新列别 新数据类型; alter table 表名 modify 列名 新数据类型; e.删除列 alter table 表名 drop 列名;
4.表的删除
语法: drop table 表名; drop table if exists 表名;
5.表的复制
关于表的复制,在这里我们直接上案例。 案例:创建表author
CREATE TABLE IF NOT EXISTS author( id INT, au_name VARCHAR(20), nation VARCHAR(10) ) DESC author;
INSERT INTO author VALUES (1,村上春树,日本), (2,莫言,中国), (3,冯唐,中国), (4,金庸,中国);
查询两个表 : SELECT * FROM Author; SELECT * FROM copy2; 1).仅仅复制表的结构
CREATE TABLE copy LIKE author;
2).复制表的结构+数据 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;