DDL概述
DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。以表举例:Create创建数据表,Alter可以更改该表的字段,Drop可以删除这个表,从这里我们可以看到,DDL所站的高度,他不会对具体的数据进行操作。
DDL的主要语句(操作)
Create语句:可以创建数据库和数据库的一些对象。
Drop语句:可以删除数据表、索引、触发程序、条件约束以及数据表的权限等。
-
Alter语句:修改数据表定义及属性。
DDL的操作对象(表)
表的概念
表的创建就是用来存放数据用的,由于我们存放的数据的不同,所以我们需要定义些数据类型,以方便管理。
表的属性
主键属性:主键就是主键约束,只不过起的名字不同了,主键的起名偏向于虚的(就是描述描述这件事),主键约束起名偏向于实得(就是描述操作的实施),描述的都是同一件事,主键约束就是表中的一个属性;在一个表中最多可以有一个主键;一个主键可以定义在一个或多个字段;主键使一个或多个字段的值必须唯一且不为空,这样做可以通过该字段或该组字段中的值唯一的代表一条记录。
唯一属性:一个表中只能有一个主键属性,为了方表用户,提出唯一约束;唯一约束可以定义在一个或多个字段上;唯一约束使该字段或该组字段中的值唯一,可以为空,但是,不能重复。
外键属性:又叫外键,又叫外键约束,跟主键和主键约束的关系是一样的;外键约束针对的两个表,如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表,但要注意,必须要计算机要知道你是这种关系。
核查、Null和缺省属性:核查属性又叫核查约束,Null属性又叫Null约束,缺省属性又叫缺省约束;这些名称是描述一件事,描述一种情况,这件事或这张情况我们当然可以人为的那样特意做(输入数据是注意就行),但是,他们的本意是实现自动化,也就是让计算机做这件事。
(你知道为什么建立主键和唯一约束的时候,会自动的创建索引吗?而且是唯一索引,想一想索引大多在那些字段上用,以及索引的作用就会知道了。像主键约束、唯一约束、非空约束、外键约束、核查约束和缺省约束这些操作都是使表具有某些特性,所以在这里我认为他们都是表的属性。)
CREATE
#创建库
#CREATE DATABASE 【IF NOT EXISTS】 库名
CREATE DATABASE IF NOT EXISTS books;
#创建表
/*
CREATE TABLE 【IF NOT EXISTS】 表名(
列名 列的类型【(长度)约束】,
列名 列的类型【(长度)约束】,
......
列名 列的类型【(长度)约束】,
列名 列的类型【(长度)约束】
)
*/
CREATE TABLE IF NOT EXISTS book(
id INT,#编号
name VARCHAR(20),
price DOUBLE,
authorId INT
);
#表的复制
CREATE TABLE book_copy LIKE book;#复制表结构
CREATE TABLE book_copy
SELECT * FROM book;#复制表结构+全部数据
CREATE TABLE book_copy
SELECT * FROM book
where id = '1';#复制表结构+部分数据
CREATE TABLE book_copy
SELECT id,name FROM book
where 0;#复制表部分结构
ALTER
#更改库的字符串
ALTER DATABASE books CHARACTER SET gbk;
#更改表的属性
ALTER TABLE book CHANGE COLUMN authorId author_id INT;#修改列名
ALTER TABLE book MODIFY COLUMN author_id VARCHAR(20);#修改列的属性或约束
ALTER TABLE book ADD COLUMN publish_date DATETIME;#添加列
ALTER TABLE book DROP COLUMN publish_date;#删除列
ALTER TABLE book RENAME TO book_rename;#修改表名
DROP
#删除库
#DROP DATABASE 库名 ;
DROP DATABASE books;
#删除表
#DROP TABLE 表名 ;
DROP TABLE book;