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

前言 ´・ᴗ・`

  • 本篇我们聊聊 MySQL的语句分类
  • 正如上节所说 我们重点在DQL 数据查询语言 其他的语句一般都是基于DQL而工作的
  • 闲话少说 我们看看这些概念 为后面的学习做铺垫

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 修改alter 删除drop数据库中的各种组成部分-----表、视图、索引、同义词、聚簇等,
不过我们后面先学的是数据操作语言 顾名思义 操作(CURD数据),而库 表等等的操作放在其后面

比如下列:

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过程中有两个及以上的数据库操作是需要添加

总结 ´◡`

好的 这一节我们相当于出了新手村了——正式开始学习SQL
剑指核心——DQL 数据查询语言

看 铃音在督促你学习(^ワ^
在这里插入图片描述

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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值