DQL/DML/DDL/DCL

本文详细解析了SQL语言的四大分类:数据查询语言(DQL)、数据操纵语言(DML)、数据库模式定义语言(DDL)及数据控制语言(DCL)。介绍了每种语言的主要功能、常用操作指令及在数据库管理中的应用。

转载原文链接

1. 定义

1.1 DQL

数据查询语言DQL全称为(Data QueryLanguage),主要用于查询数据。

DQL基本结构是由SELECT子句,FROM子句,WHERE
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

1.2 DML

数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。

数据操纵语言DML主要有三种形式:
1)插入:INSERT
2)更新:UPDATE
3)删除:DELETE

在百度词条中,DML还包含了其他数据库操作,如排序操作、检索操作,详情参考百度词条DML

1.3 DDL

数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言,即数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等

DDL操作是隐性提交的!不能rollback

1.4 DCL

参考百度词条DCL,数据控制语言 (Data Control Language) 在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权。由 GRANT 和 REVOKE 两个指令组成。

DQL即Data Query Language,是数据查询语言,主要用于查询表,通常用来从一张表或者多张表(视图或者子查询等)中按指定的条件筛选出某些记录,涉及到的命令有select [^2]。 ### 语法 DQL最基本的语法为:`select 列限定 from 表限定 where 行限定;` [^2]。 ### 示例代码 ```sql -- 创建teacher表 create table teacher( id int, name varchar(30) ); -- 插入数据 insert into teacher (id,name) values (1,'张老师'); insert into teacher (id,name) values (2,'王老师'); -- 查询teacher表中所有的数据 select * from teacher; -- 查看所有行的name select name from teacher; -- 查看id为1的讲师姓名 select name from teacher where id = 1; ``` ### 使用DQL进行后端开发 使用DQL进行后端开发可以方便地从数据库中检索数据。可以使用DQL查询语句执行数据库查询,并通过参数化查询来提高安全性性能。在完成数据库操作后,需要关闭与数据库的连接以释放资源 [^1]。 ### 特殊表的使用 MySQL提供了一张虚拟表,名为“dual”,是为了满足用“SELECT … from…”的习惯而增设的。在使用dual表时,如果没有where子句,则可以省略“from dual”,当查询的字段不属于任何表的时候,就可以使用dual这张虚拟表 [^3]。 ### 分页查询 分页查询是数据库的方言,不同数据库有不同实现,MySQL使用LIMIT。起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数。如果查询的是第一页数据,起始索引可以省略,直接简写为LIMIT 10 [^4][^5]。 ```sql -- 查询员工信息,每页显示10条数据,第1页 select * from emp limit 0,10; select * from emp limit 10; -- 查询员工信息,每页显示10条数据,第2页 select * from emp limit 10,10; ``` ### 其他查询示例 ```sql -- 查询年龄为20,21,22,23岁的女性员工信息 select * from emp where age in (20,21,22,23) and gender='女'; -- 查询性别为男,并且年龄在20 - 40岁以内的姓名为三个字的员工 select * from emp where gender='男' and age between 20 and 40 and name like '___'; -- 统计员工表,年龄小于60岁的,男性员工女性员工的人数 select count(*) from emp where age<60 and (gender='男' or gender='女'); -- 查询员工表中,年龄在小于等于35之间的员工的姓名年龄,并且按照年龄降序,年龄相同,按照入职时间降序排序 select name,age from emp where age<=35 order by age desc,entrydate desc; -- 查询性别为男,且年龄在20 - 40岁(含)以内的前五个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序 select * from emp where gender='男' and age between 20 and 40 order by age asc,entrydate asc limit 0,5; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值