首页 > 数据库 >数据库常用DQL语言合集

数据库常用DQL语言合集

时间:2024-01-11 14:04:25浏览次数:38  
标签:users -- 数据库 表中 查询 表名 DQL 合集 select

DQL(Data Query Language)数据查询语言

DDL是数据定义语言,主要是对数据库和数据表的操作

数据库常用DQL语言合集_表名


(1)操作数据库

--创建库

create database 库名;

--创建库时判断库是否存在,不存在则创建

create database if not exists 库名;

--查看所有数据库

show databases;

--使用指定数据库

use 库名;

--查看当前指定数据库包含的数据表

show tables;

--查看数据库的结构定义信息

show create database 库名;

--删除数据库

drop database 库名;

--修改数据库的字符集为utf8

alter database 库名 character set utf8;

(2)操作数据表

--创建表

create table 表名(

字段1 类型1,

字段2 类型2,

字段3 类型3,

...........

);

--查看表结构

desc 表名;

--查看创建表的SQL语句

show create table 表名;

--修改表名

alter table 表名 rename to 新的表名;

--添加一个新的字段

alter table 表名 add 字段; 字段类型;

--修改字段名

alter table 表名 rename column 字段名 to 新的字段名;

--修改字段类型(注意类型修改前后数据是否兼容)

alter table 表名 modify column 字段名 新的字段类型;

--删除一个字段

alter table 表名 drop 字段名;

--删除表

drop table 表名;

--删除表时判断表是否存在,若存在则删除

drop table if exists 表名;

DML

DML是数据操作语言,主要是对数据表的操作


(1)插入数据(insert into)

数据表插入数据分为全字段插入数据和部分字段插入数据


①全字段插入数据(有两种方法,推荐第一种方法)


--有多少个字段,就要写多少个值,且是一一对应的

insert into 表名 values(值1,值2,值3...值n);

--此方法要写出所有字段,并一一对应插入值

insert into 表名(字段1,字段2...字段n) values(值1,值2...值n);

②部分字段插入数据


--部分字段插入数据,只写需要插入数据的字段名

insert into 表名(字段1,字段2...) values(值1,值2...);

(2)删除数据(delete / truncate)

--删除表中所有数据

delete from 表名;

--删除表中指定的数据

delete from 表名 where 字段 = 值;

--删除表中所有数据(先删除整张表,然后创建一张一样的空表,此方法更高效)

truncate table 表名;

(3)修改数据(update)

--无限制条件的修改,会修改整张表

update 表名 set 字段 = 值;

--有限制条件的修改,只修改特定记录

update 表名 set 字段 = 值 where 条件(字段 = 值);

DQL

DQL是数据查询语言,主要就是select配合其他限制条件的关键字进行查询

数据库常用DQL语言合集_字段_02

(1)无条件查询

--查询表中所有数据

select *from 表名;

(2)查询在...到...之间(between and / && / and)

--查询users表中年龄在18~25岁之间的记录

--方式1 between..and..

select *from users where age between 18 and 25;

--方式2 &&

select *from users where age>=18 && age<=25;

--方式3 and

select *from users where age>=18 and age<=25;

(3)指定条件查询

①单个条件(or / in)


--查询users表中年龄为18,20,25岁的记录

--方式1 or

select *from users where age=18 or age=20 or age=25;

--方式2 in

select *from users where age in(18,20,25);

②多个条件(and)


--查询users表中年龄为23,性别为女,名字为小楠的记录

select *from users where age=23 and gender='女' and name='小楠';

(4)查询不为NULL值(is not null),为NULL值(is null)

--查询users表中序号不为空的记录

select *from users where id is not null;

--查询user表中序号为空的记录

select *from users where id is null;

(5)模糊查询(like)

_:单个任意字符

%:多个任意个字符

--查询users表中姓名第一个字为李的记录

select *from users where name like '李%';

--查询users表中姓名第二个字为李的记录

select *from users where name like '_李%';

--查询users表中姓名含有李字的记录

select *from users where name like '%李%';

--查询users表中姓名是两个字的记录

select *from users where name like '__';

(6)去除重复记录查询(distinct)

--查询users表中所在城市不相同的记录

--select distinct 字段 from 表名;

select distinct city from users;

(7)排序查询(order by)

①单个条件


--查询users表中记录,并以年龄升序排序

select *from users order by age; --默认升序

--查询users表中记录,并以年龄降序排序

select *from users order by age desc;--desc降序

②多个条件


注意:多个排序条件时,只有当第一个排序条件值一样,才会执行第二个排序条件,以此类推


--查询users表中记录,并体育成绩降序,年龄降序

select *from users order by PE desc,age desc;

(8)聚合函数

①计算和(sum)


select sum(字段) (as sumvalue) from 表名;

②计算最大值(max)


select max(字段) (as maxvalue) from 表名;

③计算最小值(min)


select min(字段) (as minvalue) from 表名;

④计算平均值(avg)


select avg(字段) (as avgvalue) from 表名;

⑤计算个数(count)


select count(字段) (as totalcount) from 表名;

(9)分组查询(group by)

--查询users表中的记录,按照性别分组,查询男,女的体育成绩平均分

select gender,avg(PE) from users group by gender;

--查询users表中的记录,按照性别分组,分别查询男、女的体育成绩平均分,人数

select gender, avg(PE),count(id) from users group by gender;

--查询users表中的记录, 按照性别分组,分别查询男、女的体育成绩平均分,人数 要求:分数低于60分的人,不参与分组

select gender, avg(PE),count(id) from users where PE > 60 group by gender;

--查询users表中的记录,按照性别分组,分别查询男、女的体育成绩平均分,人数 要求:分数低于60分的人,不参与分组,分组之后,人数要大于2个人

select gender,avg(PE),count(id) from users where PE > 60 group by gender having count(id)>2;

(10)分页查询(limit)

注意:第一条记录的索引是0


--查询users表中的前10行条记录

select *from users limit 10;

--查询users表中第2~11条记录 (从第2条记录开始累加10条记录)

select *from users limit 1,10;

--查询users表中第5~17条记录 (从第5条记录开始累加13条记录)

select *from users limit 4,13;

(11)内连接查询

如果查询数据的来源来自多张表,则必须对这些表进行连接查询,连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理,连接查询分为内连接和外连接


语法格式


--语法1 (隐式内连接)

select 字段1,字段2...

from 表1,表2...

where 过滤条件;

--语法2 (显式内连接)

select 字段1,字段2...

from 表1 inner join 表2 ...

on 过滤条件;


标签:users,--,数据库,表中,查询,表名,DQL,合集,select
From: https://blog.51cto.com/zhuzhuxia/9198131

相关文章

  • opengauss 数据库对表进行授权
    opengauss数据库导入后,新增的用户没有权限,需要对schema下所有表进行批量授权,sql如下#高斯对单表进行授权GRANTDelete,Insert,References,Select,Trigger,Truncate,UpdateONTABLE"db_test"."api_access_log"TO"usertest"WITHGRANTOPTION;GRANTDelete,Insert,......
  • 中国电信天翼云位列云数据库领导者象限!
    1月9日,计世资讯(CCWResearch)发布《2022-2023年中国信创数据库行业市场研究报告》(以下简称“报告”),从产品技术能力和市场及战略能力两个维度对我国主要数据库产品服务商进行竞争力分析。其中,中国电信天翼云凭借其产品丰富的管理功能、灵活的部署架构,位列云数据库产品领域领导者象限......
  • Oracle 21c-创建数据库
    1、创建数据库报错‘ORA-01501:CREATEDATABASE失败,ORA-01100:数据库已装载’  执行‘CREATEDATABASETest12;’时报错如下:  2、原因及正确创建数据库的方法  oracle自12C版本开始后,有了多租户的概念(PDB和CDB);可使用创建用户的方式创建数据库。,语句如下:    cre......
  • 数据库内核那些事|PolarDB查询优化:好好的谓词,为什么要做下推?
    导读 数据库的查询优化器是整个系统的"大脑",一条SQL语句执行是否高效在不同的优化决策下可能会产生几个数量级的性能差异,因此优化器也是数据库系统中最为核心的组件和竞争力之一。阿里云瑶池旗下的云原生数据库PolarDBMySQL版作为领先的云原生数据库,希望能够应对广泛用户场景......
  • openGauss学习笔记-192 openGauss 数据库运维-常见故障定位案例-XFS文件系统问题
    openGauss学习笔记-192openGauss数据库运维-常见故障定位案例-XFS文件系统问题192.1在XFS文件系统中,使用du命令查询数据文件大小大于文件实际大小192.1.1问题现象在数据库使用过程中,通过如下du命令查询数据文件大小,查询结果大于文件实际的大小。du-shfile192.1.2原因......
  • openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读
    openGauss学习笔记-193openGauss数据库运维-常见故障定位案例-备机卡住-数据库只读193.1switchover操作时,主机降备卡住193.1.1问题现象一主多备模式下,系统资源不足时,发生switchover,出现主机降备时卡住。193.1.2原因分析当系统资源不足时,无法创建第三方管理线程,导致其管理......
  • 从数据库读写分离到CQRS
    1.数据库读写分离对于数据库的操作就四种:CRUD我们把这四种操作,又划分为两类,读和写 当我们的系统并发量高的时候,自然会考虑到提高数据库性能,数据库读写分离, 但是,实际测试下来,总是有各种不满意的地方。其中最麻烦的就是各种复杂查询的性能,写库有单点故障问题2.CQRS有了......
  • flowable适配人大金仓Kingbase数据库
    背景因为国产化的需求,需要把现有项目的数据库改成人大金仓,适配某个项目的时候因为使用了没适配Kingbase的flowable,导致无法启动。原本使用的是Oracle数据库,kingbase兼容Oracle数据库,可以直接当成Oracle来使用。错误1:couldn'tdeductdatabasetypefromdatabaseproductnam......
  • 悦数图数据库助力电信运营商宽带业务提效
    随着5G和万物互联时代的到来,家庭和企业对宽带的需求持续增长,同时,基础设施的完善和运营商支持的网络设备规模的扩大使得网络拓扑更加复杂。因此,如何提高宽带业务处理的效率,以及如何有效地规划从终端和末端设备到机房设备的最优路径,成为了运营商宽带业务持续扩展亟需解决的瓶颈。01......
  • ArcNeural: AI 时代的多模数据库丨技术专栏
    导读 本文根据Fabarta资深技术专家谭宇在“2023中国软件技术大会”演讲实录整理而来。围绕以下四个方面进行介绍:首先简单介绍Fabarta背景以及我们为什么要研发ArcNeural;其次深入介绍ArcNeural的架构与实现;三是介绍围绕ArcNeural我们如何构建AI应用;最后进行总结与展望......