数据库语言、SQL语言、数据库系统提供的两种语言

1.数据库语言

数据库语言有很多种,其中一种是SQL语言。

2. SQL语言

【几乎所有的关系数据库系统都使用SQL语言。】

SQL语言中包含很多不同的部分,有:

(1)DDL语言(Data definition language),数据定义语言:

用于描述数据库中要存储的现实世界实体的语言。

(2)DML语言(Data Manipulation Language),数据操纵语言:

使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。

(3)DCL语言(Data control language),数据库控制语言:

用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL.

关键字:GRANT, REVOKE

(4)TCL语言(Transaction Control Language),事务控制语言:

对事务进行控制的语句,包括commit,rollback等语言。

3.数据库系统提供的两种语言

(1)数据定义语言DDL:用于描述数据库中要存储的现实世界实体的语言。

可说明(三个层次的)数据库模式,或定义数据的其他特征。

DDL的输出放在数据字典(data dictionary)中,数据字典包含元数据(metadata),元数据是关于数据的数据。

DDL包含很多种。

其中,典型地如 数据存储和定义(data storage and definition)语言:

定义了数据库模式的实现细节,而这些细节对用户来说通常是不可见的。

数据存储和定义语言必须由计算机软件进行编译,转换为便于计算机存储、查询和操纵的格式,完成这个转换工作的程序称为模式编译器。

sql 复制代码
SQL提供了丰富的DDL语言。

SQL类型的数据定义语言DDL称为 SQL数据定义语言DDL ,可以用来定义(逻辑层次的逻辑模式中)具有数据类型和完整性约束的表。
关键字: CREATE, ALTER, DROP, RENAME, TRUNCATE 
 
例如:用 SQL数据定义语言DDL 中 的数据存储和定义语言 ,定义一个department表:
	create table department
		(dep5ame char (20), 
		building budget
		char (15), numeric (12,2));

(2)数据操纵语言DML:使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。

DML可分成交互型DML和嵌入型DML两类。

交互型DML:这类DML自成系统,可在终端上直接对数据库进行操作。

嵌入型DML:这类DML是嵌入在主语言中使用。此时主语言是经过扩充能处理DML语句的语言。

依据语言的级别,DML又可分成过程性DML和非过程性DML两种。

过程性DML:用户编程时,不仅需要指出"做什么"(需要什么样的数据),还需要指出"怎么做"(怎么获得数据)。层状、网状的DML属于过程性语言。

非过程性DML:用户编程时,只需要指出"做什么",不需要指出"怎么做"。关系型DML属于非过程性语言。

查询(query)是要求对信息进行检索的语句。

DML中涉及信息检索的部分称作查询语言(query language)。

由此可见,查询语言只属于DML语言中的一种。

sql 复制代码
SQL类型的数据操纵语言DML称为 SQL数据操纵语言DML.
关键字:INSERT, UPDATE, DELETE

SQL数据操纵语言DML中的查询语言(简称SQL查询语言,Data Query Language,简写DQL语言),指SELECT 数据查询语言,是非过程化的。
该SQL查询以几个表作为输入(也可能只有一个表),但总是仅返回一个表。
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。一般结构为:
SELECT <字段名表>
    FROM <表或视图名>
    WHERE <查询条件>

【参考文章:SQL中的四种语言DML DDL DCL TCL ------ 游语

相关推荐
技术宝哥35 分钟前
Redis(2):Redis + Lua为什么可以实现原子性
数据库·redis·lua
学地理的小胖砸2 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
不知几秋2 小时前
sqlilab-Less-18
sql
dddaidai1232 小时前
Redis解析
数据库·redis·缓存
数据库幼崽2 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd3 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou3 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh4 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵5 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多6 小时前
Linux——mysql主从复制与读写分离
数据库·mysql