百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

SQL知识大全(一):数据库的语言分类你都知道吗?

yuyutoo 2025-01-11 18:30 1 浏览 0 评论


点击上方蓝字关注我们


今天是数据库语言分类的第一讲,主要会介绍数据库的四类语言,以及其语法,课程大纲详见脑图。



数据库定义语言


数据库定义语言(DDL,Data Definition Language)是负责数据的模式定义与数据的物理存取构建,主要包括CREATE建表语句,ALTER 更新表结构语句,DROP 删除语句,DECLARE 创建游标。

CREATE建表语句

创建一张名为OrderItems的空表

CREATE TABLE OrderItems 
(
order_num     INTEGER              NOT NULL,
order_item    INTEGER              NOT NULL,
prod_id       CHAR(10)             NOT NULL,
quantity      INTEGER             NOT NULL   DEFAULT 1, 
item_price    DECIMAL(8,2)        NOT NULL
)


已有部分数据表,关联数据表,建中间表

CREATE VIEW ProductCustomers AS
SELECT cust_name, cust_contact, prod_id 


FROM Customers, Orders, OrderItems


WHERE Customers.cust_id = Orders.cust_id 


AND OrderItems.order_num = Orders.order_num;


ALTER 更新表结构

ALTER之前需要完成表的备份,因为ALTER的过程是不可逆的。

#增加一列
ALTER TABLE Vendors 
ADD vend_phone CHAR(20);
#删除一列
ALTER TABLE Vendors 
DROP COLUMN vend_phone;

DROP 删除表

DROP TABLE CustCopy;


数据操纵语言


数据操纵语言(DML,Data Manipulation Language):负责数据的操纵,包括查询及增、删、改等操作,SELECT(选择),DELETE(删除),UPDATE(更新),INSERT(插入)四类语法。


SELECT(选择)

SELECT说起来大家都不陌生,它是SQL中最常见的语法,主要用法是从数据表中选择你想要的那几列数据。

#选择表中的某列
SELECT
prod_name
FROM
Products;


#选择表中的多个列
SELECT prod_id, prod_name, prod_price
FROM Products;




#选择表中的所有列
SELECT
*
FROM
Products;


DELETE(删除)

DELETE删除行,甚至删除所有的行,但是并不删除表本身。如果要快速删除所有行,可以使用TRUNCATE TABLE语句,因为不记录数据变动。下面举几个例子。


1.从表中删除特定的行

下面这个例子是从Customers 这张表中,删除cust_id = '1000000006'的行。

DELETE FROM Customers 
WHERE cust_id = '1000000006'; 


2.从表中删除所有的行

下面例子删除所有的行,但是并不删除Customers 这张表。

DELETE FROM Customers


UPDATE(更新)

UPDATE(更新)由三部分组成,分别是要更新的表,列名和他们的新值,确定要更新那些行的过滤条件。

1.更新表中特定的列

#更新一列
UPDATE Customers
 SET cust_email = 'kim@thetoystore.com' WHERE cust_id = '1000000005'; 


#更新多列
UPDATE Customers
 SET cust_contact = 'Sam Roberts', 
 cust_email = 'sam@toyland.com' WHERE cust_id = '1000000006'; 


#删除某列
#删除某列可以将该列设为null
UPDATE Customers
 SET cust_email = NULL
 WHERE cust_id = '1000000005';


2.更新表中所有的行

该示例将Customers表中cust_email列全部更新为'kim@thetoystore.com' 。

UPDATE Customers
 SET cust_email = 'kim@thetoystore.com' 


INSERT(插入)

INSERT插入可以在数据表中插入完整的行,插入行的一部分,插入某些查询结果,下面我们将会给出几个例子进行说明。


1.插入完整的行

在Customers这张表中插入一行数据。

INSERT INTO Customers
VALUES('1000000006',
       'Toy Land',
       '123 Any Street',
       'New York',
       'NY',
       '11111',
       'USA',
       NULL,
       NULL);


2.插入行的一部分

在Customers表中插入部分行,cust_contact,cust_email字段没有插入数据。

INSERT INTO Customers(cust_id,
                      cust_name,
                      cust_address,
                      cust_city,
                      cust_state,
                      cust_zip,
                      cust_country,
                      cust_contact,
                      cust_email)
VALUES('1000000006',
       'Toy Land',
       '123 Any Street',
       'New York',
       'NY',
       '11111',
       'USA',
       NULL,
       NULL);


3.插入某些查询结果

从CustNew中SELECT出一些结果插入到Customers表中。

INSERT INTO Customers(cust_id,
                      cust_contact,
                      cust_email,
                      cust_name,
                      cust_address,
                      cust_city,
                      cust_state,
                      cust_zip,
                      cust_country)
SELECT cust_id,
       cust_contact,
       cust_email,
       cust_name,
       cust_address,
       cust_city,
       cust_state,
       cust_zip,
       cust_country


FROM CustNew;




数据控制语言


数据控制语言(DCL,Data Control Language):负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能,主要语法有GRANT授权,REVOKE取消授权等。大部分情况下,这部分语法主要是提供给数据库工程师以及数仓开发使用的,分析师不太能用到这些语法,所以也不细讲了。


事务控制语


事务控制语言(TCL,Transaction Control Language)包括SAVEPOINT 设置保存点,它是事务处理中设置临时的占位符,可以对它发布回退;ROLLBACK 回滚,撤销指定的SQL语句;COMMIT提交,将未储存的SQL写入数据库表。


参考书籍:《SQL必知必会》


往期推荐


史上最全的SQL知识点汇总,错过这次等一年

数据岗知识体系及岗位介绍

【文末免费领资料】从生物医学转行到互联网数据分析师,我做对了什么?



分享数据知识,成就数据理想

相关推荐

史上最全的浏览器兼容性问题和解决方案

微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...

平面设计基础知识_平面设计基础知识实验收获与总结
平面设计基础知识_平面设计基础知识实验收获与总结

CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...

2025-02-21 16:01 yuyutoo

写作排版简单三步就行-工具篇_作文排版模板

和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...

写一个2048的游戏_2048小游戏功能实现

1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...

今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……

  最近的天气暖和得让很多小伙伴们喊“热”!!!  昨天的气温到底升得有多高呢?你家有没有榜上有名?...

CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式

之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...

柠檬科技肖勃飞:大数据风控助力信用社会建设

...

你的自我界限够强大吗?_你的自我界限够强大吗英文

我的结果:A、该设立新的界限...

行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?

行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...

让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华

去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...

2025-02-21 16:00 yuyutoo

今年国家综合性消防救援队伍计划招录消防员15000名

记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...

一起盘点最新 Chrome v133 的5大主流特性 ?

1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...

竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使

style="text-align:center;"data-mce-style="text-align:...

学物理能做什么?_学物理能做什么 卢昌海

作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...

你不知道的关于这只眯眼兔的6个小秘密
你不知道的关于这只眯眼兔的6个小秘密

在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...

2025-02-21 16:00 yuyutoo

取消回复欢迎 发表评论: