MySQL基础-基本的SELECT语句

MySQL基础-SQL前要重点

一、SQL概述

SQL(Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道,由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准,先后有SQL-86,SQL-89,SQL-92,SQL-99等标准。不同的数据库生产厂商都支持SQL语句,但都有特有内容。

image-20231009165202165

SQL语言在功能上主要分为如下3大类:

  • DDL(Data Definition Languages,数据定义语言),这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。

    • 主要的语句关键字包括CREATEDROPALTER等。
  • DML(Data Manipulation Language,数据操作语言),用于添加、删除、更新和查询数据库记录,并检查数据完整性。

    • 主要的语句关键字包括INSERTDELETEUPDATESELECT等。
  • DCL(Data Control Language,数据控制语言),用于定义数据库、表、字段、用户的访问权限和安全级别。

    • 主要的语句关键字包括GRANTREVOKECOMMITROLLBACKSAVEPOINT等。

因为查询语句使用的非常的频繁,所以很多人把查询语句单拎出来一类:DQL(数据查询语言)。还有单独将COMMIT、ROLLBACK取出来称为TCL(Transaction Control Language,事务控制语言)。

二、SQL规范

  • SQL可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进。
  • 每条命令以;或\g或\G结束。
  • 关键字不能被缩写也不能分行。
  • 关于标点符号:
    • 必须保证所有的()、单引号、双引号是成对结束的。
    • 字符串和日期时间类型的数据可以使用单引号(’’)表示。
    • 列的别名尽量使用双引号(””),而且不建议省略AS关键字。

推荐采用统一的SQL大小写书写规范:数据库名、表名、表别名、字段名、字段别名等都小写;SQL关键字、函数名、绑定变量等都大写。


我们观察一下我们当前使用的数据库下面有哪些表,并重点观察employees表的结构:

补充一个数据库命令DESCRIBE或者DESC,可以用来查看数据库表结构。

image-20231009170440141

下面我们书写几个SQL语句表明前面谈到的SQL规范问题:

image-20231009171121331

不过需要注意的是,我们的数据库下面有一个奇怪的表名称为order,这与MySQL的关键字ORDER冲突,此时我们需要使用着重号(``)引用该表。

image-20231009171332732

三、课后练习

1.查询员工12个月的工资总和,并起别名为ANNUAL SALARY
1
2
3
4
5
SELECT employee_id, last_name, salary * 12 AS "ANNUAL SALARY"
FROM employees;
SELECT employee_id, last_name, salary * 12 * (1 + IFNULL(commission_pct, 0)) AS "ANNUAL
SALARY"
FROM employees;
2.查询employees表中去除重复的job_id以后的数据
1
2
SELECT DISTINCT job_id
FROM employees;
3.查询工资大于12000的员工姓名和工资
1
2
3
SELECT last_name, salary
FROM employees
WHERE salary > 12000;