Mysql常用DQL语句:数据库查询语句

目录

1).查询全表

2).带条件

3).模糊查询(关键字 like)

4).聚合函数查询(对单行单列数据进行求和\计数\平均值\最大值\最小值)

5).复杂查询和聚合函数一块用

6).排序查询(关键字order by)

7).数据库的备份和还原

8)数据库的约束


1).查询全表

-- 没有表的别名.
select
    id,
    name,
    age,
    sex,
    math
from
    student;
-- 有别名.
select
    id '员工编号',
    name '员工姓名',
    age '员工年龄',
    (math+english) '总分'
from
    student; 
--注意事项:两个整数类型求和,如果一个字段是null则结果为null,在mysql里面有函数 ifnull(字段名称,给期望值) ; 如果当前字段名称为null值,给他一个期望值.
select
    id '员工编号',
    name '员工姓名',
    sex '性别',
    (math+ifnull(english,0)) '总分'-- 当英语成绩是null空值,给一个0
from
    student ;

2).带条件查询

-- 情况1 select 指定的字段名称 from 表名 where 条件 ;where后面可以使用赋值运算符和比较运算符 <>(不等于)
select
    *
from
    student
where
    age=20 ;
-- 情况2. where后面跟多个条件
-- 并列条件或者或的条件,可以使用逻辑符&&(并列)也可用and between 
-- ||(或)也可用or 当有多个或的关系时可以用in集合语句
select
    *
from
    student
where 
    between 20 and 30 ;

select
    *
from
    student
where
    age in(18,20,45) ;
-- 情况3 查询某个字段为null的数据,语法:where 字段名称 is null/ is not null;
select
    *
from
    student
where
    english is null ;

3).模糊查询(关键字 like)

/*
语法: select 指定字段列表 from 表名 where 字段名称 like '%字符%'
%:就是匹配任意字段;
_:一个下划线代表一个任意字符(具有包含关系在里面)
*/
-- 模糊查询所有姓马的学生所有信息
select
    *
from
    student
where
    name like '%马%';
--查询姓名是两个字符的学生所有信息
select
    *
from
    student
where 
    name like '__';
--姓名中第二个字是化的学生所有信息
select
    *
from
    student
where
    name like '%_化%';

4).聚合函数查询(对单行单列数据进行求和\计数\平均值\最大值\最小值)

/*
聚合类型;
count,
sum,
AVG,max,
min
注意:对于null的字段名称不会被统计,除非使用ifnull(字段名称,期望值)
语法: select 聚合函数(字段名) from 表名;
*/

-- 英语成绩求和
select
    sum(ifnull(english,0))  '英语成绩' --英语成绩中有null
from
    student
--数学成绩总和
select
    sum(math) '数学总成绩'
from
    student ;

5).复杂查询和聚合函数一块用

-- 最常见:where 字段名称 比较运算符 (select 聚合查询)
--查询数学成绩最高分的学生信息,一步走.
select
    *
from
    student
where
    math = (select max(math) from student );
--查询数学成绩大于平均分的学生信息
select
    *
from
    student
where
    math > (select AVG(math) from student) ;

6).排序查询(关键字order by)

/*
语法: select 字段列表 from 表名 order by 字段名称 排序规则;
排序规则:asc升序(默认)  desc 降序
*/
--数学成绩升序,查询所有信息.
select
    *
from
    student
order by
    math asc ;
--多个字段排序
--语法:select 字段列表 from 表名 order by 字段名称1 排序规则1,字段名称2 排序规则2... ;
--查询数学成绩降序,英语成绩升序的所有学生信息
select
    *
from
    student
order by
    math asc,
    English desc ;

7).数据库的备份和还原

/*
备份:将当前数据库进行本地存储,存储.sql文件
还原:将本地磁盘上.sql文件进行执行,把这些库中表数据进行还原
*/
--方式1:命令行方式
备份:不需要登录SQL 在DOS控制台上操作
Mysqldump -uroot -p 密码 库名 >磁盘上某个文件夹中的xx.sql文件
还原:将指定磁盘备份的xx.sql文件读取,把里面的表进行还原操作
1)在DOS控制台上登录MySQL
2)显示所有库,show database;
3)use 库名;
4)source 本地磁盘上保存的xx.sql文件路径
方式2:图形界面化
备份:鼠标选中库---右键---备份(backup/export 导出 )----> 选中第二个 备份为数据库sql脚本进行存储
			-->选中Structure and data(结构和数据)--->选中本地磁盘路径 ---->x.sql
还原:在sqlyog使用sql创建库--->	库名--->右键---->import(导入)--->选第二个,执行本地 sql脚本即可

8)数据库的约束

约束:在操作数据库的时候,约束管理人员使用数据的时候行为;

用户没有插入数据时自动默认为为一个特定的值如;

CREATE TABLE emp(
	id INT, -- 员工编号
	emp_name VARCHAR(10),-- 员工姓名
	gender VARCHAR(5) DEFAULT '男'  -- 员工性别   ,加入默认约束
);

INSERT INTO emp(id,emp_name) VALUES(2,'张三') ;--则张三的性别默认为男

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值