【数据库专题】耀杨:听说DDL想c我?——《狗叫江湖》“第四幕”
👏作者简介:东星耀杨,C站煮播之星,【无规则教学】创始人,曾奉太上老君之名下凡,为了给迷途中的兄弟萌指点迷津,帮助兄弟萌早日踏入如我这般境界!世人见我,皆称之“王霸之气侧漏”的男人,哇靠蒸滴c!c了兄弟萌!
👏往期回顾:
💌【数据库专题】智多星带你五分钟攻略“关系代数”——《狗叫江湖》第二幕续集
💌【数据库专题】“第二幕”——《狗叫江湖》之关系数据库(1)“解锁新角色:刘能“
💌【数据库专题】“第一幕”——《狗叫江湖》之数据库系统概论(续集)【蒸滴很c】
💌【数据库专题】耀杨初入SQL被DML打断了双腿——《狗叫江湖》“第三幕”
👏耀杨和兄弟萌的约定:等我到一千粉,给兄弟萌发红包!感谢兄弟萌的陪伴和支持!
👏目录下面奉上本人靓照
《 听说有人想c我,我根本就不慌的!》
- 《我什么帝位?》
- 《长得歪瓜裂枣》
- 数据定义语言DDL
- 《哇靠我不解释的!》
《我什么帝位?》
兄弟萌兄弟萌,又是想兄弟萌的一天😙😙😙,进来总是有小兄弟私信耀杨,说我是在水文,哇靠大胆!你什么身份,我什么帝位!哇靠,今天好好给兄弟萌教学,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,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+树具有动态平衡的优点)
散列索引:散列索引是建立若干个桶,将索引属性按照其散列函数值映射到相应桶中,桶中存放索引属性值和相应的元组指针。(散列索引具有查找速度快的特点)
位图索引:位图索引使用位向量记录索引属性可能出现的值,每个位向量对应一个可能值
注意细节:
关系数据库管理系统在执行查询时会自动选择合适的索引作为存取路径,用户不必不能显示地选择索引。
索引是关系数据库管理系统的内部实现技术,属于内模式范畴。
建立和删除索引是由建立表的人负责完成的。
❗️建立索引
create [unique] [cluster] index <索引名>on <表名>(<列名> [<列序>] [,<列名>[<次序>]]......);
注意为师细节:
索引可以建立在该表的一列或多列上。
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的耶——
来源地址:https://blog.csdn.net/qq_52136981/article/details/123668036
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341