MySQL学习-SELECT语句(一)

220 阅读2分钟

「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」。

前言

上篇我们学习了SQL分类以及使用规范,有兴趣的小伙伴可以阅读(MySQL学习-SQL分类以及使用规范 - 掘金 (juejin.cn)
下面继续学习MySQL中的SELECT语句。

SELECT最基本语句

  1. SELECT ...; 后面不跟任何子句
  • 举例1:
SELECT 1; #没有子句
SELECT 1 + 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是不报错的。