第四章检索数据
4.1SELECT语句
SELECT语句的用途是从一个表或多个表中检索信息。
使用SELECT语句至少需要给出两条信息:想选择什么,以及从什么地方选择。
4.2检索单个列
输入:
SELECT job_id FROM employees;
输出:
说明:1.检索单个列—SELECT 列名 FROM 表名(查询返回的顺序并没有明确的意义,除非明确排序顺序结果)。
2.SQL语句以分号(;)分隔,单条SQL语句不需要加分号(建议还是加上)。
3.SQL语句不区分大小写,一般对SQL关键字大写,所有的列和表名使用小写。
4.SQL语句在处理过程中所有的空格会被忽略,故SQL语句可以在一行给出,也可以分几行(便于阅读调试)。
4.3检索多个列
输入:
SELECT email, job_id FROM employees;
输出:
说明:检索多个列时的基本格式与单个列相同,只不过需要在多个列之间加逗号(,)
SELECT 列名1,列名2……FROM 表名
说明:SQL返回的数据一般是最原始的,数据格式化并非一个检索问题。
4.4检索所有列
输入:
SELECT * FROM employees;
输出:
说明:这里的星号(*)是通配符,用来检索表中所有的列(尽量不要使用,检索不需要的列会降低检索和应用程序的性能)。
4.5检索不同的行(去重)
输入:
SELECT job_id FROM employees;
输出:
输出值的结果中是存在重复值的,去重可以使用在列名前面加上DISTINCT
输入:
SELECT DISTINCT job_id FROM employees;
输出:
说明:不能部分使用DISTINCT,即DISTINCT应用于所有的列,而非仅仅是前置的列。
输入:
SELECT DISTINCT job_id, email FROM employees;
输出:
4.6限制结果
输入(这部分开始忘记去掉DISTINCT关键字了ORZ,但好在并不影响说明):
SELECT DISTINCT job_id
FROM employees
LIMIT 5;
输出:
说明:LIMIT关键字用来限制MySQL输出的记录的条数,格式为:LIMIT 起始行数,显示行数(从0开始,带一个值的LIMIT总是从第1行开始返回所带值的行数,行数不够时能返回多少返回多少)
输入:
SELECT DISTINCT job_id
FROM employees
LIMIT 5,5;
输出:
输入:
SELECT DISTINCT job_id
FROM employees
LIMIT 5 OFFSET 5;
输出:
这里是为了避免混淆,MySQL 5支持LIMIT的另一种替代语法。LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。
4.7使用完全限定的表名
这部分实际上是在说怎么区分两张都叫employees的表到底谁是谁和两个都叫job_id的列到底都是哪个表中的,使用的方法就是叫家长(表的家长是数据库,列的家长是表,家长和娃之间用.相连)
输入:
SELECT employees.job_id
FROM employees;
输出:
输入:
SELECT employees.job_id
FROM atguigudb.employees;
输出: