数据库学习之MySQL (四)——DQL DDL DML DCL 事务 到底是什么

CSDN MySQL学习专栏 正在持续更新中:)

MySQL语句众多,但有章可循,分类有助于学习

DQL 数据查询语言

DQL (data query language) query就是查询,类似question,query和JQuery很像,也可以帮助记忆。 数据库语言中,查询是重点,很多优化算法和数据结构设计都是为了查询。
另外 查询不改变原数据,只是让数据库发送结果给客户端。

这里来做个实验:
我想查询大家的工资 需要拿到一个表 名字-工资的形式 该怎么办?

确定数据库(data1)
总表在哪(employees)
需要的栏目是什么(名字,工资)

这里就要用到select语句

USE data1;
SELECT `first_name`, `last_name`, `salary`
FROM employees;

在这里插入图片描述

明显 SELECT的是“栏目” FROM的是表格名称。
对表结构还不理解,或者,没有data1库,可以看我的上一个教程:
数据库学习之MySQL (三)——简单操作数据库 小试牛刀
然后data1数据库:data1.sql 数据库文件 配合阮菜鸡的MySQL教程使用

Q1 为啥每个栏目名字都加` 符号呢?
A1 设想,有个栏目叫show 系统会怎么识别?
所以这个符号是为了将关键字转化为普通字符串 当然不加也可以。

Q2 下列代码你觉得好看吗:

USE data1;

SELECT `hiredate`,`first_name`,`last_name`,`salary`,`email`,`commission_pct`,`manager_id`,`department_id`
FROM employees;

还是这个:

USE data1;

SELECT 
  `hiredate`,
  `first_name`,
  `last_name`,
  `salary`,
  `email`,
  `commission_pct`,
  `manager_id`,
  `department_id` 
FROM
  employees ;

A2 诀窍就是 在当前代码上 按下F12 系统自动为您排版


DDL 数据模式定义语言

数据库模式定义语言DDL(Data Definition Language) 是用于描述数据库中要存储的现实世界实体的语言。
说白了 用于创建数据库中的各种组成部分-----表、视图、索引、同义词、聚簇等,
比如下列:

CREATE TABLE `departments` (
  `department_id`   INT(4)     NOT NULL AUTO_INCREMENT,
  `department_name` VARCHAR(3) DEFAULT NULL,
  `manager_id`      INT(6)     DEFAULT NULL,
  `location_id`     INT(4)     DEFAULT NULL,
)

再看看实际表格:

在这里插入图片描述

还有 desc departments;:
在这里插入图片描述

回忆上节内容:表的每一列就是栏位 也就是我们DDL语言中创建表格的时候 第一列的每一项
在这里插入图片描述


DML 数据操作语言

数据操作语言(data manipulatation language)

插入:INSERT
更新:UPDATE
删除:DELETE

就这三种
manipulatation ->manipulate 操作 人为操纵的含义 计算机知识中经常看到的


DCL 数据控制语言

数据控制语言(Data Control Language) 定义:

用来设置或者更改数据库用户或角色权限的语句,数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

其实不管那么多,DCL大致包括以下:

命令 中文 说明
GRANT 授权 允许你把你自己拥有的那些权限授给其他的用户
ROLLBACK 回滚 回滚命令使数据库状态回到上次最后提交的状态 类似干了坏事还能Ctrl-Z回去
COMMIT 提交 类似github上的commit,在数据库的插入、删除和修改操作时,只有当事务(Transaction -> trans action) 在提交到数据库时才算完成。

事务 Transaction

那么事务是什么呢?定义上,是一个逻辑单位,所谓逻辑单位,我们所有的SQL语句都是逻辑,那么事务,就是包含了数据库 CRUD(增删查改) 操作,
另外,事务有意思的是,语句间都是荣辱与共,好像我们老师说的“我们都是一个集体 共同进退”,因此所有的语句必须完整的执行,要么全都执行成功,要么全都执行失败,而失败,就会回滚(rollback)到原来的数据状态.

事务的好处有什么:
保证数据的完整性,失败后可以恢复到原来状态
事务与事务之间互不干扰,这样数据会更加安全

什么情况下需添加事务呢?
crud过程中有两个及以上的数据库操作是需要添加

下一站:[数据库学习之MySQL (五)——select 语句 IFNULL() CONCAT()的应用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • daemon ˈdi:mən 守护神,守护进程 It's an rsync module that you def...
    米茶饿了阅读 449评论 0 0
  • .数据库 数据库的发展: 文件系统(使用磁盘文件来存储数据)=>第一代数据库(出现了网状模型,层次模型的数据库)=...
    小Q逛逛阅读 995评论 0 2
  • TCL (Transaction Control Language):事务控制语言 DML(data manipu...
    依然饭太稀阅读 3,014评论 0 0
  • 一、数据库系统 数据库DataBase【DB】,指的是长期保存到计算机上的数据,按照一定顺序组织,可以被各种用户或...
    fly5阅读 396评论 0 0
  • 数据库相关概念 1、DB:数据库,保存一组有组织的数据的容器。​2、DBMS:数据库管理系统,又称为数据库软件(产...
    Re_frain阅读 358评论 0 2