07--MySQL自学教程:DQL(Data Query Language:数据库查询语言)简介、基础查询、条件查询、模糊查询以及排序(一)

1. DQL(Data Query Language:数据库查询语言)知识点概览

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

用来查询数据(记录),不会对数据进行改变,而是让数据库发送结果集给客户端

概览:

这里写图片描述

2.基本语法

这里写图片描述

select 列名1,列名2…….列名n from 表名 where 条件 group by 列名 having 条件 order by 列名;

这个SQL语句包含了DQL部分所有的查询知识点。简单点说,只要记住这句话,查询部分的语法基本就都掌握了。
下面我们将对各个部分分开进行详细说明。

3.查询方法概览

DQL查询方法概览

创建一个数据库和表格,方便查询演示。代码如下:

这里我是使用SQLyog创建的表格,使用cmd命令窗口也可以直接执行下列语句,后面的所有演示都是使用该软件写的,方便进行说明和注释

-- 创建数据库和表格方便演示使用
CREATE DATABASE queryDemo;  -- 创建数据库queryDemo
USE queryDemo;              -- 进入queryDemo数据库
-- 在queryDemo中创建表格demo1Student
CREATE TABLE demo1Student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20),age INT,score INT);

-- 插入数据
INSERT INTO demo1Student (NAME,age,score) VALUES ("张三",18,89);
INSERT INTO demo1Student (NAME,age,score) VALUES ("李四",23,77);
INSERT INTO demo1Student (NAME,age,score) VALUES ("王五",19,69);
INSERT INTO demo1Student (NAME,age,score) VALUES ("赵六",18,89);
INSERT INTO demo1Student (NAME,age,score) VALUES ("田七",20,92);
INSERT INTO demo1Student (NAME,age,score) VALUES ("小明",22,85);
INSERT INTO demo1Student (NAME,age,score) VALUES ("小红",25,97);

这里写图片描述

4.基础查询

DQL基础查询

代码演示

-- 1.1查询所有列: 
SELECT * FROM demo1Student;
-- 1.2查询指定列:
SELECT id,NAME FROM demo1Student;
SELECT NAME,age,score FROM demo1Student;

效果图:

SELECT * FROM demo1Student;
这里写图片描述

SELECT id,NAME FROM demo1Student;
这里写图片描述

SELECT NAME,age,score FROM demo1Student;
这里写图片描述

5.条件查询

DQL条件查询

代码演示

-- 条件查询  运算符  关键字
   -- 1.运算符 =、!=、<>、<、<=、>、>=;
    -- 这些都是普通的数学运算符,就就不做说明了,  <>:表示不等于
   SELECT * FROM demo1Student WHERE id=5;
   SELECT * FROM demo1Student WHERE age!=18;
   SELECT * FROM demo1Student WHERE age<>18;
   SELECT * FROM demo!student WHERE score>90;
   SELECT NAME,age FROM demo1Student WHERE NAME="张三";

   -- 2.BETWEEN…AND; IN(set);         IS NULL;  IS NOT NULL;  AND;OR;NOT
     -- 在...之间     与set集合交集     是否为空   是否为非空     并且 或   非
   SELECT * FROM demo1Student WHERE id BETWEEN 2 AND 4;  -- id在2到4之间的学生

   -- in(set):指与数据库中数据与set的交集,获得包含有set中数据的记录(行)
   SELECT * FROM demo1Student WHERE age IN(25,22,30);
   SELECT * FROM demo1Student WHERE NAME IN ("小","张三","哈哈");

   -- 检验null, 所以添加一个新数据
   INSERT INTO demo1student VALUES (8,"小花",20,NULL);

   SELECT * FROM demo1Student WHERE score IS NULL;       -- 分数为空的学生
   SELECT * FROM demo1Student WHERE score IS NOT NULL;   -- 分数不为空的学生
   SELECT * FROM demo1Student WHERE age=18 AND score>78; 
   SELECT * FROM demo1Student WHERE age=22 OR age=25; 
   SELECT * FROM demo1Student WHERE  NOT age=18;         -- age不是18岁的学生

运行结果:


运算符
SELECT * FROM demo1Student WHERE id=5;
这里写图片描述
SELECT * FROM demo1Student WHERE age!=18;
这里写图片描述
SELECT * FROM demo1Student WHERE age<>18;
这里写图片描述
SELECT * FROM demo1student WHERE score>90;
这里写图片描述
SELECT NAME,age FROM demo1Student WHERE NAME=”张三”;
这里写图片描述


关键字

SELECT * FROM demo1Student WHERE id BETWEEN 2 AND 4; – id在2到4之间的学生
这里写图片描述


– in(set):指与数据库中数据与set的交集,获得包含有set中数据的记录(行)
SELECT * FROM demo1Student WHERE age IN(25,22,30);
这里写图片描述
SELECT * FROM demo1Student WHERE NAME IN (“小”,”张三”,”哈哈”);
这里写图片描述


SELECT * FROM demo1Student WHERE score IS NULL; – 分数为空的学生
这里写图片描述
SELECT * FROM demo1Student WHERE score IS NOT NULL; – 分数不为空的学生
DQL查询
SELECT * FROM demo1Student WHERE age=18 AND score>78;
DQL查询
SELECT * FROM demo1Student WHERE age=22 OR age=25;
DQL查询
SELECT * FROM demo1Student WHERE NOT age=18; – age不是18岁的学生
DQL查询

6.模糊查询

DQL模糊查询

代码演示

-- 3.模糊查询
    -- _ 任意一个字符
    SELECT * FROM demo1student WHERE age LIKE "2_";
    SELECT * FROM demo1student WHERE age LIKE "_8";
    SELECT * FROM demo1student WHERE NAME LIKE "小_";
    -- %:任意0~n个字符
    SELECT * FROM demo1student WHERE age LIKE "%8";
    SELECT * FROM demo1student WHERE NAME LIKE "%小%";

运行结果

– _ 任意一个字符
SELECT * FROM demo1student WHERE age LIKE “2_”;
DQL查询
SELECT * FROM demo1student WHERE age LIKE “_8”;
DQL查询
SELECT * FROM demo1student WHERE NAME LIKE “小_”;
DQL查询


– %:任意0~n个字符

SELECT * FROM demo1student WHERE age LIKE “%8”;
DQL查询

SELECT * FROM demo1student WHERE NAME LIKE “%小%”;

DQL查询

7.排序

DQL排序查询

代码演示

-- 4.排序order by
-- 升序asc
   SELECT * FROM demo1student WHERE score>80 ORDER BY score ASC;

-- 降序desc
   SELECT * FROM demo1student WHERE score>80 ORDER BY score DESC;

运行结果

– 升序asc
SELECT * FROM demo1student WHERE score>80 ORDER BY score ASC;
DQL查询

– 降序desc
SELECT * FROM demo1student WHERE score>80 ORDER BY score DESC;
DQL查询

8.其他四种排序见下节

DQL查询

地址:http://blog.csdn.net/baidu_37107022/article/details/72627463

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值