基本的SELECT语法

一、SQL 概述

1. SQL 的发展

  • SQL:Structured Query Language,结构化查询语言

  • 起源于 1974 年 IBM 的论文《SEQUEL》

  • 标准版本:SQL-86、SQL-89、SQL-92、SQL-99 等

  • 排行榜
    Pasted image 20250725204946.png

2. SQL 分类

分类 名称 作用 关键字
DDL 数据定义语言 创建/修改表结构 CREATEDROPALTER
DML 数据操作语言 增、删、改、查 INSERTDELETEUPDATESELECT
DCL 数据控制语言 权限管理 GRANTREVOKE
DQL 数据查询语言 查询数据 SELECT(实际上属于 DML,但常独立分出)
TCL 事务控制语言 控制事务提交/回滚 COMMITROLLBACK
一般情况下我们只分为DDL、DML、DCL这三类。

二、SQL 编写规范

1. 书写规则

  • 语句可多行,建议子句分行写,缩进清晰

  • 每条命令以 ;gG 结尾

  • 标点必须成对:括号、单引号、双引号等

  • 使用英文输入法下的半角字符

2. 大小写规范

  • 关键字函数名:建议全大写

  • 数据库名、表名、字段名:建议全小写

  • Windows 下 MySQL 不区分大小写,Linux 下区分

3. 注释方式

-- 单行注释(推荐,后必须有空格) # 单行注释(MySQL 特有) /* 多行注释 */

4. 命名规范(简记)

  • 名称 ≤ 30 字符,仅含 A-Z、a-z、0-9 和 _

  • 不可与系统关键字冲突(如 order),必要时使用 着重号(反引号)“ 包裹

  • 命名统一风格、见名知意


三、基本 SELECT 语法

1. SELECT 语法结构

SELECT column1, column2, ... FROM table_name WHERE 条件;

2. SELECT

  • 选择所有字段(不推荐用于生产环境)
    SELECT * FROM employees;

3. 指定字段 & 列别名

-- 给字段起别名,as 可省略 SELECT employee_id AS "编号", last_name 姓名 FROM employees;

⚠️ 字段别名中如有空格,必须使用引号 " " 括起来。


四、常用 SELECT 特性

1. 去除重复项:DISTINCT

SELECT DISTINCT department_id FROM employees; -- 同时去重 department_id 和 salary 的组合 SELECT DISTINCT department_id, salary FROM employees;

DISTINCT 必须放在所有列名前面,对所有列组合进行去重。


2. 空值(NULL)运算

  • 任何运算遇到 NULL 都会返回 NULL

  • NULL != ''(空值 ≠ 空字符串)

  • NULL 是有空间占用的


3. 着重号 “

  • 避免关键字冲突,如 order
    SELECT * FROM `order`;

4. 查询常数

  • 给查询结果添加一列常量字段(用于标识、合并等场景)
    SELECT '尚硅谷' AS corporation, last_name FROM employees;

五、查看表结构

使用 DESC 或 DESCRIBE

DESC employees;

字段说明:
Pasted image 20250725205707.png

字段名 含义
Field 字段名称
Type 数据类型
Null 是否可为 NULL
Key 索引类型(PRI 主键,UNI 唯一,MUL 可重复)
Default 默认值
Extra 额外信息(如 AUTO_INCREMENT)

六、过滤数据(WHERE 子句)

SELECT employee_id, last_name, job_id FROM employees WHERE department_id = 90;

  • WHERE 语句紧跟在 FROM 后面

  • 用于过滤数据行,只返回满足条件的记录


七、数据导入(命令行)

在 MySQL 命令行中使用:

source 路径/文件.sql;

例:

source d:/mysqldb.sql;


补充建议

  • 尽量避免 SELECT *,明确指定字段可提升性能

  • 养成良好命名规范和注释习惯,减少团队协作中的沟通成本

  • 使用常数列或别名可提升数据可读性与可维护性

  • 经常使用 DESC 表名 熟悉表结构,是编写 SQL 的前提

Java基础

异常的概念

2025-8-9 15:06:15

SELECT使用

MySQL运算符

2025-7-25 22:28:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索