网站首页 > 精选文章 正文
点击上方蓝字关注我们
今天是数据库语言分类的第一讲,主要会介绍数据库的四类语言,以及其语法,课程大纲详见脑图。

数据库定义语言
数据库定义语言(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知识点汇总,错过这次再等一年
数据岗知识体系及岗位介绍
【文末免费领资料】从生物医学转行到互联网数据分析师,我做对了什么?

分享数据知识,成就数据理想
- 上一篇: 快速计算Excel一个单元格里内容的行数
- 下一篇: sql语句,筛选条件、聚合分组、连接查询
猜你喜欢
- 2024-12-15 完数:一个整数等于它的因子(除去本身)之和
- 2024-12-15 单元格内数据分行合并转换的方法
- 2024-12-15 MySQL中采用类型varchar(20)和varchar(255)对性能上的影响
- 2024-12-15 PostgreSQL常见的字段类型及应用示例
- 2024-12-15 sql语句,筛选条件、聚合分组、连接查询
- 2024-12-15 快速计算Excel一个单元格里内容的行数
- 2024-12-15 用C++语言实现矩阵乘法
- 2024-12-15 数学知识:水仙花数
- 2024-12-15 数据的统计结果如何用文本表达出来?
- 2024-12-15 MySQL数据库关于表的一系列操作
- 05-3022《Vue 入门教程》VueRouter 路由嵌套
- 05-30前端面试题-Vue 项目中,你做过哪些性能优化?
- 05-30超简 Vue3+elementPlus 后台管理系统
- 05-30还有前端不知道Electron的?手把手教你把Vue项目打包成桌面程序
- 05-30Nuxt最简入门,让vue项目快速被搜索引擎收录
- 05-30Mac上最美最好用软件系列
- 05-30AI编程小白必备|Cursor安装及配置教程
- 05-30好玩儿的编程语言——文言文编程语言
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)