「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」。
前言
上篇我们学习了SQL分类以及使用规范,有兴趣的小伙伴可以阅读(MySQL学习-SQL分类以及使用规范 - 掘金 (juejin.cn)。
下面继续学习MySQL中的SELECT语句。
SELECT最基本语句
- SELECT ...; 后面不跟任何子句
- 举例1:
SELECT 1; #没有子句
SELECT 1 + 1; #没有子句
- SELECT ... FROM ...;
- 语法:
SELECT 标识选择哪些列(字段)
FROM DUAL; 标识从哪个表中选择(字段所在表的表名)
- 举例2
SELECT 1
FROM DUAL; #dual:伪表
上面的例子和第一个例子相比多了FROM DUAL,这里其实可以不加,只是为了维持语法的平衡。
-举例3
SELECT * FROM employees; *:表中所有的字段(或列)
一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符‘*’。使用
通配符虽然可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低
查询和所使用的应用程序的效率。通配符的优势是,当不知道所需要的列的名称
时,可以通过它获取它们。
在生产环境下,不推荐你直接使用 SELECT * 进行查询。
- 举例4
SELECT employee_id, name, salary
FROM employees; 查询表中三个字段,不同的字段之间用‘,’隔开
列的别名
- 在列名和别名之间加空格
- 举例5
SELECT employee_id emp_id, name, salary
FROM employees; 查询出的结果集的列名employee_id改成了emp_id
- 在列名和别名之间加AS,全称:alias(别名),可以省略,也就是上面空格的情况。
- 举例6
SELECT employee_id emp_id, last_name AS lname, salary
FROM employees;
- 列的别名可以使用一对""引起来
- 举例7
SELECT employee_id emp_id, last_name AS lname, salary AS "al"
FROM employees;
这里使不使用""都是可以的,但是如果别名中是有空格的,那就必须加上"",不加的话就会报错。
- 举例7
SELECT salary * 12 AS "annual sal"
FROM employees;
上面的例子就印证了这种情况。
这里最好不要使用'',虽然使用''不会报错,但是在规范中最好使用”“,不然在其他数据库中会报错。这里MySQL是不报错的。