MySQL命令:select查询语句

SQL 中最常用的 SELECT 语句,用来在表中选取数据。

要记得的知识点如下:

  • SELECT 语句格式:
    •   SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
  • WHERE语句后:
    •   数学符号条件:=       >       <       >=        <=         between and
    •   逻辑符:AND  /  OR  /  IN  /  NOT IN
    •   通配符:LIKE  +  _  、%
    •   排序:ORDER BY + ASC、DPSC
    •   SQL 内置函数和计算
  • 子查询与连接查询

SELECT 语句的基本格式

SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

--查询某个表所有内容(如employee表)
select * from employee;

--查寻表中name、age的信息
select name,age from employee;

 WHERE后的东西(限制条件、逻辑符、通配符、排序)

数学符号条件

=、>、<、>=、<=、between

逻辑符

AND、OR、 IN、NOT IN

--筛选年龄大于25的人的名字和年龄
SELECT name,age FROM employee WHERE age>25;

--查找一个名字为 Mary 的员工的 name,age 和 phone
SELECT name,age,phone FROM employee WHERE name='Mary';


--筛选出 age 小于 25,或 age 大于 30
SELECT name,age FROM employee WHERE age<25 OR age>30;    

--筛选出 age 大于 25,且 age 小于 30
SELECT name,age FROM employee WHERE age>25 and age<30;   

--这种情况可以加between结合and
--筛选出 age 小于 25,或 age 大于 30
SELECT name,age FROM employee WHERE age between 25 and 30;   


--查询在dpt3或dpt4的人
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');

--查询不在dpt1和dpt3的人
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');

通配符

关键字 LIKE 在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是 _ 和 % 。

其中 _ 代表一个未指定字符,% 代表不定个未指定字符

--电话号码前四位数为1101,而后两位忘记了,则可以用两个 _ 通配符代替:
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';

--另一种情况,比如只记名字的首字母,又不知道名字长度,则用 % 通配符代替不定个字符
SELECT name,age,phone FROM employee WHERE name LIKE 'J%';

对结果排序

默认情况下,ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序。

--我们按salary降序排列,SQL语句为:
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;

 SQL内置函数与计算

--取最大值
SELECT MAX(salary) FROM employee;

--取最小值并使用as给关键字重命名
SELECT MIN(salary) as minminmin_salary FROM employee;

--计数:有多少个人的工资
SELECT COUNT(salary) FROM employee;

--求和
SELECT SUM(salary) FROM employee;

--求平均值
SELECT AVG(salary) FROM employee;

子查询

上面讨论的 SELECT 语句都仅涉及一个表中的数据,然而有时必须处理多个表才能获得所需的信息。例如:想要知道名为 "Tom" 的员工所在部门做了几个工程。员工信息储存在 employee 表中,但工程信息储存在project 表中。

SELECT of_dpt,COUNT(proj_name) AS count_project FROM project GROUP BY of_dpt
HAVING of_dpt IN
(SELECT in_dpt FROM employee WHERE name='Tom');

连接查询

在处理多个表时,子查询只有在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,这时就必须使用连接 (join) 操作。 连接的基本思想是把两个或多个表当作一个新的表来操作,如下:

SELECT id,name,people_num
FROM employee,department
WHERE employee.in_dpt = department.dpt_name
ORDER BY id;

 

 

 

学习资源来源:实验楼

posted @ 2018-07-22 12:15  kumata  阅读(653)  评论(0编辑  收藏  举报