MySQL之SELECT 语句详解
本文参考实验楼的SELECT 语句详解结合自己操作部分而写成。
注意:大多数系统中,SQL语句都是不区分大小写的,但是出于严谨和便于区分保留字和变量名,在书写的时,保留字应大写,而变量名应小写。所谓的保留字,即为:在高级语言中已定义过的字,使用者不能将这些字作为变量名和过程名使用。
1)SELECT语句的基本格式是:SELECT 查询的列名 FROM 表名 WHERE 限制条件;在上一篇博客创建一个简单的成绩管理系统 中,使用SELECT * FROM employee代表查询所有的列。例如,要查看employee表中的 name、age两列,可以使用:这里值得注意的是age和FROM之间没有逗号,很容易写的顺手了,就写上去了,只有列名之间需要逗号。

2)数学符号条件,SELECT 语句中常常会有WHERE 限制条件,用于实现更为精确的查找。WHERE限制条件可以有数学符号(=、>、<、>=、<=),例如,我们可以查找出employee表中,年龄大于25岁的人的名字,如图:

当WHERE后面不止一条限制时,可以使用OR(或)和AND(和)来实现相应要求,如求可以用OR来实现年龄小于25,和年龄大于30的这两部分人的名字;相应地,年龄在25和30之间的,可以使用AND 来实现,如图,


求年龄在25和30之间的人名的另一种写法是:

3)关键词 IN 和 NOT IN用于刷选“在”和“不在”某一范围内的结果,如,要查找在部门3和部门4的人的姓名、年龄、电话,可以使用下面的方式:

4)通配符。关键字LIKE一般和通配符一起使用,通配符代表未知的字符。SQL中通配符是“ _”和“ %”,前者代表一个未指定的字符,后者代表不定个的未指定字符。如:仅仅知道电话的前四位,后两位未知,想获得相关信息,可以如下:值得注意的是,关键字和统配的相对位置。

又如:仅知道姓名的首字符为‘J’想查询相关信息,可以如下:

5)为了是查询的结果显得更为顺眼,我们可能需要对结果按某一列进行排序。关键字是ORDER BY,默认的情况下,ORDER BY的结果是升序的,使用关键字ASC和DESC可以指定升序和降序。如工资
的降序排列:

6)SQL的内置函数和计算。SQL有5个内置函数,如下:

其中,COUNT函数可以用于任何数据类型,SUM、AVG只能对数字类数据类型进行计算,MAX、MIN可用于数字、字符串和日期时间类型的计算。
如计算出salary的最大值、最小值,可以用:

其中,主要到两绿色椭圆的关系,通过关键词AS,MAX(salary)重命名为了max_salary。
7)在处理多个表时,子查询只有在结果来自一个表时才有用,若,需要显示两个表格或者多个表格的数据时,就要使用连接(join)操作。连接的基本思想是:把两个或多个表当做一个新的表格来操作。查询各员工所在部门的人数,其中员工的id和name来自employee表,people_num来自department表。如下:

另一种,连接语句的格式是JOIN ON语法,刚才的语句等价于:

MySQL之SELECT 语句详解的更多相关文章
- mysql基础篇 - SELECT 语句详解
基础篇 - SELECT 语句详解 SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELEC ...
- 第四节基础篇 - SELECT 语句详解
4.1 基本的SELECT语句 select * from T_WEATHER select cityname from t_weather 4.2 数学符号条件(>.<.>=.&l ...
- 基础select语句详解
在数据库操作语句中,使用最频繁,也被认为最重要的是 SELECT 查询语句.我们已经在不少地方用到了 SELECT * FROM table_name; 这条语句用于查看一张表中的所有内容. 而 SE ...
- MySQL8.0关系数据库基础教程(三)-select语句详解
1 查询指定字段 在 employee 表找出所有员工的姓名.性别和电子邮箱. SELECT 表示查询,随后列出需要返回的字段,字段间逗号分隔 FROM 表示要从哪个表中进行查询 分号为语句结束符 这 ...
- sql select语句详解
先group by 后 order by SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS ...
- T-SQL_select语句详解
select语句执行的过程: 先看查询内容 ==>where条件 ==>[分组条件] ==>[分组搜索条件] ==>内容输出 ==>[是否排序] SQL中SELECT语句 ...
- 【转】MySQL用户管理及SQL语句详解
[转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...
- 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解
oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
随机推荐
- symfony 数据库使用(二)
symfony可以根据数据用已经有表反向生成实体,以3.3.*为例: php bin/console doctrine:mapping:import --force AppBundle xml 从现有 ...
- JZOJ 5943. 树
Description
- ZooKeeper(2)-安装和配置
一.下载 https://zookeeper.apache.org/ 二.本地模式安装 1.安装前准备 (1)安装Jdk (2)拷贝Zookeeper安装包到Linux系统下 (3)解压到指定目录 . ...
- 【Hbase一】基础
此笔记仅用于作者记录复习使用,如有错误地方欢迎留言指正,作者感激不尽,如有转载请指明出处 Hbase基础 Hbase基础 Hbase定义 行存储 v s 列存储 Hbase数据模型 Hbase物理模型 ...
- 误删 EhCache 中的数据?
最近遇到一个问题:在使用ehcache时,通过CacheManager.getCache(chachename).get(key),获取相应的缓存内对象(当时这个对象是个list), 有个同事写个方法 ...
- Python学习:for 循环 与 range()函数
for 循环 For … in 语句是另一种循环语句,其特点是会在一系列对象上进行迭代(Iterates),即它会遍历序列中的每一个项目 注意: 1.else 部分是可选的.当循环中包含它时,它 ...
- 332. Reconstruct Itinerary
class Solution { public: vector<string> path; unordered_map<string, multiset<string>& ...
- IO复用——epoll系列系统调用
1.内核事件表 epoll是Linux特有的I/O复用函数.epoll把用户关心的文件描述上的事件放在内核里的一个事件表中,并用一个额外的文件描述符来标识该内核事件表.这个额外文件描述符使用函数epo ...
- [POJ1785]Binary Search Heap Construction(笛卡尔树)
Code #include <cstdio> #include <algorithm> #include <cstring> #define N 500010 us ...
- 20145202马超《网络对抗》Exp3免杀 进阶
木马化正常软件,如通过改变机器指令.实现可免杀免防火墙提示的后门. 继上次实验3所做的代码在主函数里面加上一行调用就可以 改各种属性,这里我参考了郝浩同学的博客 最后我还是遇到了问题 后来发现虽然有那 ...