> 文档中心 > 【数据库专题】耀杨:听说DDL想c我?——《狗叫江湖》“第四幕”

【数据库专题】耀杨:听说DDL想c我?——《狗叫江湖》“第四幕”


👏作者简介东星耀杨,C站煮播之星,【无规则教学】创始人,曾奉太上老君之名下凡,为了给迷途中的兄弟萌指点迷津帮助兄弟萌早日踏入如我这般境界!世人见我,皆称之“王霸之气侧漏”的男人,哇靠蒸滴c!c了兄弟萌!
在这里插入图片描述
👏往期回顾
💌【数据库专题】智多星带你五分钟攻略“关系代数”——《狗叫江湖》第二幕续集
💌【数据库专题】“第二幕”——《狗叫江湖》之关系数据库(1)“解锁新角色:刘能“
💌【数据库专题】“第一幕”——《狗叫江湖》之数据库系统概论(续集)【蒸滴很c】
💌【数据库专题】耀杨初入SQL被DML打断了双腿——《狗叫江湖》“第三幕”
👏耀杨和兄弟萌的约定:等我到一千粉,给兄弟萌发红包!感谢兄弟萌的陪伴和支持!
👏目录下面奉上本人靓照

《 听说有人想c我,我根本就不慌的!》

  • 《我什么帝位?》
  • 《长得歪瓜裂枣》
  • 数据定义语言DDL
    • :heart:SQL中的数据类型
    • :heart:建立一个数据库
    • :heart:删除数据库:
    • :heart:创建一个表
    • :heart:删除表:
    • :heart:修改表
      • :exclamation:修改表名
      • :exclamation:修改列名
      • :exclamation:修改列的类型或者约束条件
      • :exclamation:添加新列
      • :exclamation:删除列
    • :heart:复制表
      • :exclamation:全部复制
      • :exclamation:部分记录复制(行)
      • :exclamation:部分字段复制(列)
    • :heart:索引的删除与建立
      • :exclamation:为什么要用索引?
      • :exclamation:常见的索引类别:
      • :exclamation:建立索引
      • :exclamation:修改索引
      • :exclamation:删除索引
  • 《哇靠我不解释的!》

在这里插入图片描述

《我什么帝位?》

兄弟萌兄弟萌,又是想兄弟萌的一天😙😙😙,进来总是有小兄弟私信耀杨,说我是在水文,哇靠大胆!你什么身份,我什么帝位!哇靠,今天好好给兄弟萌教学,md为师放水了还不懂吗?

《长得歪瓜裂枣》

在为师第一次跨入sql江湖的时候,映入眼帘的就是一个长得歪瓜裂枣的家伙,江湖听闻是DDL,今天兄弟萌跟着耀杨一起拿捏了,嗨害嗨……OK,beautiful!
在这里插入图片描述

数据定义语言DDL

想必兄弟萌都知道了,为师之前就讲过,关系数据库系统支持三级模式机构,即模式,外模式和内模式,这三个模式的基本对象都有模式、视图和索引等等。

在SQL中的数据定义语言DDL中包括数据库定义、表定义、索引的的定义,

数据定义语言主要用于创建、修改、和删除数据库内的数据结构:

创建和删除数据库

创建、修改、重命名、删除表

创建和删除索引

接下来为师给兄弟萌一一讲解

定义:CREATE

删除:DROP

修改:ALTER

❤️SQL中的数据类型

数据类型 含义
CHAR(n),CHARACTER(n) 长度为 n定长字符串
VARCHAR(n) ,CHARACTERVARYING(n) 最长长度为n的定长字符串
CLOB 字符串大对象
BLOB 二进制大对象
INT,INTEGER 长整数(4字节)
SMALLINT 短整数(2字节)
BLGINT 大整数(8字节)
NUMERIC(p,d) 定点数,由p位数字(不含符号、小数点)组成,小数点后面又d位数字
DECIMAL(p,d),DEC(p,d) 同NUMERIC
REAL 取决于机器的单精度浮点数
DOUBLE PRECISION 取决于机器精度的双精度浮点数
FLOAT(n) 可选精度的浮点数,度至少为n位数字
BOOLEAN 逻辑布尔值
DATE 时间,DDDD-MM-TT
TIME 时间,HH:MM:DD
TIMESTAMP 时间戳类型
INTERVAL 时间间隔类型

主要看我细节:

一个属性数据类型的选择是要根据实际情况来决定的,一般要考虑到取值范围和要进行哪些运算。
在这里插入图片描述

❤️建立一个数据库

注意为师细节:

在数据库中,一个关系数据库管理系统的实例中可以建立多个数据库每一个数据库中可以建立多个模式,一个模式下通常可以包括多个基本表、视图和索引等等对象。

为师在这里主要基于MySQL进行教学,在MySQL数据库管理系统中具体的数据定义是与SQL中有些不一样。:

为师给兄弟萌专门创建一个数据库BROTHER:

CREATE DATABASE ;

在这里插入图片描述

❤️删除数据库:

drop database 

在这里插入图片描述

❤️创建一个表

创建完数据库之后,为师先给兄弟萌创建一个数据表Brother:

(小声嘀咕:给耀杨三连的好兄弟耀杨都会一一录入该表滴!择日登门拜访!)

Brother(Bnum,Bname,Bsex,Bdept,Bfens)

数据库的名为,含有四个基本属性,编号,名称,性别,领域,粉丝数。

CREATE TABLE Brother(Bnum varchar(255) primary key,/*列级完整性约束条件,Bnum为主码*/Bname varchar(255) unique,/*昵称取唯一值*/Bsex varchar(255) not null,/*性别不能为空*/Bdept varchar(255),Bfens INT); 

这样关于兄弟萌的数据表就建立完成了

耀杨向数据库中插入本人的基本信息(插入语句为师会在DML章节仔细讲解):

编号 昵称 性别 领域 粉丝数
00 跟着耀杨学编程 数据库 394

在这里插入图片描述

❤️删除表:

drop table .;

注意为师细节:如果没有使用use进入数据库,需要加上“.”

在这里插入图片描述

❤️修改表

❗️修改表名

alter table rename to brother;

❗️修改列名

为师将Bfens的列名改成Bfensi。

alter table Brother change column Bfens Bfensi INT;

❗️修改列的类型或者约束条件

我们将Bsex的约束条件改成char(4)

alter table Brother modify column Bsex char(4); 

❗️添加新列

为师给各位兄弟萌添加一个发量属性兄弟萌不会介意吧(放我一马,我是煮播!)

alter table Brother add column Bhair char(4);

❗️删除列

为师再将兄弟萌的发量给删掉(诶嘿!蒸滴c!为师最近蒸滴很是烦恼,头发太多 了都不知道该不该减……)

alter table Brother drop column Bhair;

在这里插入图片描述

❤️复制表

❗️全部复制

复制表再实际工程中经常用到:

create table Brother2 select * from Brother;

❗️部分记录复制(行)

create table Brother3 select * from Brother where Bname=‘跟着耀杨学编程’;

❗️部分字段复制(列)

create table Brother3 select Bname from Brother;

在这里插入图片描述

❤️索引的删除与建立

❗️为什么要用索引?

有兄弟私信耀杨:

“义子义子,明明可以使用查询操作呀,那索引到底是干啥用的呢?”

“M D ! 你真是瓜皮呀,这就相当于你有车不用非要步行上班一个道理呀,哇靠,不要搞我道心了!”

当表的数据比较大时,查询操作会很耗时,建立索引当然是为了加快查询速度了!

索引就类似于图书管中的索引,可以快速锁定到要查询的内容。

用户可以根据需要在基本表上建立一个或者多个索引。

❗️常见的索引类别:

顺序文件上的索引:针对俺指定属性值升序或者将降序存储的关系,在该属性上建立一个顺序索引文件,索引文件由属性值和相对应的元组指针组成。

B+数索引:B+数索是将索引属性组织成B+树形式,B+树的叶节点为属性值和相应的元组指针。(B+树具有动态平衡的优点)

散列索引:散列索引是建立若干个桶,将索引属性按照其散列函数值映射到相应桶中,桶中存放索引属性值和相应的元组指针。(散列索引具有查找速度快的特点)

位图索引:位图索引使用位向量记录索引属性可能出现的值,每个位向量对应一个可能值

注意细节

1.关系数据库管理系统在执行查询时会自动选择合适的索引作为存取路径,用户不必不能显示地选择索引。

2.索引是关系数据库管理系统的内部实现技术,属于内模式范畴。

3.建立和删除索引是由建立表的人负责完成的。

❗️建立索引

create [unique] [cluster] index on ( [] [,[]]......);

注意为师细节:

1.索引可以建立在该表的一列或多列上。
2.unique 表明此索引的每一个索引值只对应唯一的数据记录。
3.cluster表示要建立的索引是聚簇索引。

在这里为是决定为Brother表建立一个索引,按编号升序建立唯一索引。

CREATE UNIQUE INDEX Bsuoyin ON Brother(Bnum);

❗️修改索引

一般格式为:

ALTER INDEX  REMOVE TO ;

为师可以将Brother表中的Bsuoyin索引名改成Btunum。

ALTER INDEX Bsuoyin REMOVE TO Btunum

❗️删除索引

一般格式为:

DROP INDEX  ON ;

在这里插入图片描述

《哇靠我不解释的!》

兄弟们今天我可没有水文,一个字一个字打出来的,哇靠,我耀杨还有这么c的一天,MD!DDL都想掏我蛋,我各种极限反杀,哇靠根本不解释的!!!


追魂夺魄拉第三魂技烈火漂龙!!!

哇靠!!!蒸滴很c的耶——

在这里插入图片描述