目录
[1. 基本 SELECT 语法](#1. 基本 SELECT 语法)
[1. 检索单个列](#1. 检索单个列)
[2. 检索多个列](#2. 检索多个列)
[3. 检索所有列](#3. 检索所有列)
[4. 检索不同行 (DISTINCT)](#4. 检索不同行 (DISTINCT))
[(1)检索单列中的不同值(DISTINCT放在SELECT后,列名前 )](#(1)检索单列中的不同值(DISTINCT放在SELECT后,列名前 ))
[(2)检索多个列中的唯一组合(DISTINCT 应用于所有列,不是前置列)](#(2)检索多个列中的唯一组合(DISTINCT 应用于所有列,不是前置列))
[5. 限制结果 (LIMIT)](#5. 限制结果 (LIMIT))
[(1)基本语法- 限制返回的行数(LIMIT number)](#(1)基本语法- 限制返回的行数(LIMIT number))
[(2)限制结果的起始位置和行数(LIMIT offset, number;)](#(2)限制结果的起始位置和行数(LIMIT offset, number;))
[6. 使用完全限定的表名](#6. 使用完全限定的表名)
(三)使用Mysql
1.选择数据库
-
登录 MySQL
使用
mysql
命令行工具登录到 MySQL 服务器:mysql -u username -p
-u username
:指定要使用的 MySQL 用户名(例如 root
或 admin
)。
-p
:表示系统将提示你输入密码。
系统会提示你输入密码。
-
列出所有数据库
登录后,可以查看服务器上所有的数据库:
SHOW DATABASES;
这将列出所有可用的数据库。
-
选择特定数据库
使用
USE
命令选择一个数据库:USE database_name;
其中
database_name
是你要选择的数据库的名称。选择数据库后,所有后续的 SQL 操作将针对该数据库进行。
2.了解数据库和表
-
查看所有数据库
查看当前选择的数据库:
SHOW DATABASES;
-
查看当前数据库
查看当前选择的数据库:
SELECT DATABASE();
-
列出当前数据库中的所有表
列出当前选择的数据库中的所有表:
SHOW TABLES;
-
查看表的结构
查看特定表的结构,包括列名、数据类型和约束:
DESCRIBE table_name;
或者:
SHOW COLUMNS FROM table_name;
其中
table_name
是你要查看的表的名称。 -
其他show语句
-
查看建表: 语句
SHOW CREATE TABLE table_name;
-
查看授权: 要查看 MySQL 用户的权限信息
SHOW GRANTS FOR 'username'@'host';
-
查看状态 :
SHOW STATUS
语句显示 MySQL 服务器的状态信息,包括系统变量、性能指标等SHOW STATUS;
-
查看错误和警告: 要查看 MySQL 最近的错误信息,可以使用
SHOW ERRORS
;要查看最近的警告信息,可以使用SHOW WARNINGS
语句
(四)检索数据
1. 基本 SELECT 语法
多条sql语句 分号 ; 分割
sql不区分大小写,一般关键字大写
1. 检索单个列
要从表中检索单个列的数据,只需指定该列的名称:
SELECT column_name FROM table_name;
示例 :假设你有一个名为 employees
的表,如果你只想检索 name
列的数据,可以使用以下 SQL 语句:SELECT name FROM employees;
2. 检索多个列
要从表中检索多个列的数据,可以在 SELECT
语句中列出这些列的名称,用逗号分隔:
SELECT column1, column2, ... FROM table_name;
示例 :从 employees
表中检索 id
、name
和 salary
列的数据:SELECT id, name, salary FROM employees;
3. 检索所有列
要从表中检索所有列的数据,可以使用 *
通配符:
SELECT * FROM table_name;
示例 :从 employees
表中检索所有列的数据:SELECT * FROM employees;
4. 检索不同行 (DISTINCT
)
使用 SELECT
语句结合 DISTINCT
关键字来检索不同行,即去除重复的记录。
(1)检索单列中的不同值( DISTINCT放在SELECT后,列名前 )
要从表中检索某一列中的唯一值,可以使用 DISTINCT
关键字。这样会删除重复的行,只返回每个唯一值的一次出现。
SELECT DISTINCT column_name FROM table_name;
(2)检索多个列中的唯一组合( DISTINCT
应用于所有列,不是前置列)
DISTINCT
关键字也可以用于多个列,以确保每一行中指定列的组合是唯一的。返回的是列组合的唯一记录。
SELECT DISTINCT column1, column2, ... FROM table_name;
5. 限制结果 (****LIMIT
)
(1)基本语法- 限制返回的行数(LIMIT number
)
SELECT column1, column2, ... FROM table_name LIMIT number;
number
:指定要返回的行数。
示例 :从 employees
表中检索前 5 行数据:SELECT * FROM employees LIMIT 5;
(2)限制结果的起始位置和行数(LIMIT
offset, number;
)
你可以使用 LIMIT
子句中的**两个参数来指定从哪个位置开始返回记录,以及返回多少行数据。(**行数从0开始,记得减去1)
SELECT column1, column2, ... FROM table_name LIMIT
offset, number;
offset
:指定开始返回记录的起始位置**(从 0 开始)**。number
:指定要返回的行数。
示例 :从 employees
表中,从第 10 行开始,检索 5 行数据:SELECT * FROM employees LIMIT 9, 5;
解释 :9
表示从第 10 行开始(因为 offset 从 0 开始)。5
表示返回 5 行数据。
6. 使用完全限定的表名
(1)基本概念
完全限定的表名 由以下部分组成:
- 数据库名:包含表的数据库。
- 表名:要操作的具体表。
- 模式名(可选):有些数据库系统使用模式(schema)来组织数据库对象。
完全限定的表名语法 :database_name.schema_name.table_name
在 MySQL 中,通常只需要指定数据库名和表名。如果使用默认模式,模式名可以省略。
(2)使用完全限定的表名进行查询
SELECT column1, column2, ... FROM database_name.table_name;