SQL研习录(03)——简单查询
版权声明
- 本文原创作者:清风不渡
- 博客地址:https://blog.csdn.net/WXKKang
SELECT(选择)
说到SQL,我们使用最频繁的就是SELECT了,SELECT语法用于从数据库中选择数据(也可以称之为查询),返回的数据存储在结果表里面,称为结果集
首先我们来准备测试数据,代码如下:
USE demo;
CREATE TABLE student(
s_id varchar(50) PRIMARY KEY,
s_name varchar(50),
s_gender varchar(50)
)
INSERT INTO student(s_id,s_name,s_gender) VALUES('S101','Lucy','female');
INSERT INTO student(s_id,s_name,s_gender) VALUES('S102','Jack','male');
INSERT INTO student(s_id,s_name,s_gender) VALUES('S103','Tom','male');
INSERT INTO student(s_id,s_name,s_gender) VALUES('S104','Bruce','male');
INSERT INTO student(s_id,s_name,s_gender) VALUES('S105','Jayce','male');
1、简单的查询
如果我们需要查询表里的某些字段的所有记录时,可以使用如下如法:
SELECT column1, column2, ...
FROM table_name;
例如在测试表中,如果我们需要查询s_id与s_name的记录时,查询语句如下:
SELECT s_id,s_name FROM student;
运行结果如下:
如果我们需要查询表中可用的所有字段,可使用以下语法:
SELECT * FROM student;
运行结果如下:
2、查询结果去重
在一张表内,一列通常包含许多重复的值,如果需要列出不同的值,就需要使用DISTINCT关键字,具体语法如下:
SELECT DISTINCT column1, column2, ... FROM table_name;
例如在测试表中,s_gender列中的记录是有重复值的,我们分别使用普通查询和使用去重关键字的查询来选择s_gender列下的数据,代码如下:
SELECT s_gender FROM student;
SELECT DISTINCT s_gender FROM student;
运行结果:
我们也可以使用计算结果记录条数的和(COUNT关键字)来测试去重效果,代码如下:
SELECT COUNT(s_gender) FROM student;
SELECT COUNT(DISTINCT s_gender) FROM student;
运行结果:
3、WHERE条件(查询子句)
如果我们需要将满足某一条件的记录查询出来,就需要使用WHERE查询子句来进行查询了
WHERE子句用于提取满足指定标准的记录,语法如下:
SELECT column1, column2, ... FROM table_name WHERE condition;
注: WHERE子句不仅可以用于SELECT语法,还可以在UPDATE,DELECT语法中使用
例如在测试表中,如果我们需要查询出性别为’male’的学生时,可使用WHERE子句来对查询加以限定,代码如下:
SELECT s_id,s_name,s_gender FROM student WHERE s_gender='male';
运行结果如下:
WHERE子句中的条件表达式相似于JAVA中的表达式,所要使用的运算符及意思如下:
4、与、或、非
通过上面的学习我们知道了,WHERE子句可以按一定的条件过滤记录,那么如果需要满足多个条件时该怎么办呢?就需要使用与、或、非(AND、OR和NOT)了
AND&OR运算符用于根据一个以上的条件过滤记录
WHERE子句可以与AND,OR和NOT运算符结合使用
1、如果由AND分隔的所有条件为TRUE,则AND运算符显示记录。
2、如果由OR分隔的任何条件为真,则OR运算符显示记录。
如果条件不为真,则NOT运算符显示记录
它们的基本语法如下:
AND语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
OR语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
NOT语法
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
5、按关键字排序
ORDER BY 关键字用于对结果集进行排序
ORDER BY 关键字用于按升序或降序对结果集进行排序。
ORDER BY 关键字默认情况下按升序排序记录。
如果需要按降序对记录进行排序,可以使用DESC关键字,基本语法如下:
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;