SQL基本常见操作

目录

SQL 不区分大小写 等效

主键(PRIMARY KEY)是表中唯一标识表记录的字段。

SHOW 语句显示数据库及其表中包含的信息

SHOW TABLES 命令用于显示当前选定的 MySQL 数据库中的所有表。

SHOW COLUMNS 显示有关给定表中的列的信息。

SELECT 语句用于从数据库中选取数据。

完全限定名称

ORDER BY

SHOW TABLES;

WHERE 子句用于提取那些满足指定标准的记录。

CONCAT() 函数用于连接两个或多个文本值,并返回连接字符串。

    AS 

UPPER() 函数将指定字符串中的所有字母转换为大写。

LOWER() 函数将字符串转换为小写。

SQRT() 函数返回参数中给定值的平方根。

AVG() 函数返回数值列的平均值:

SUM() 函数返回数值列的总数。

MIN() 函数返回指定列的最小值。

表连接

自定义别名

内连接(INNER JOIN)注释:INNER JOIN 与 JOIN 是相同的。

左连接(LEFT JOIN)

右连接 (RIGHT JOIN)

UNION 将多个数据集合并到单个数据集中,并删除任何现有的重复项。

UNION ALL 将多个数据集合并到一个数据集中,但不会删除重复的行。

UNION 用于合并两个或多个 SELECT 语句的结果集。

INSERT INTO


 

SQL 不区分大小写 等效

select City from customers;
SELECT City FROM customers;
sElEct City From customers;
tips:通常的做法是用大写编写所有 SQL 命令。

主键(PRIMARY KEY)是表中唯一标识表记录的字段。

主键的主要特征是:

  • 主键必须包含唯一的值。
  • 主键列不能包含 NULL 值。

tips: 每张表格只能有一个主键, 每行主键的值必须不同。

SHOW 语句显示数据库及其表中包含的信息

SHOW DATABASES 命令列出了服务器管理的数据库。

SHOW TABLES 命令用于显示当前选定的 MySQL 数据库中的所有表。

SHOW COLUMNS 显示有关给定表中的列的信息。

SHOW COLUMNS FROM customers

SHOW COLUMNS 显示每个表列的以下值:

  • Field:列名称
  • Type:列数据类型
  • Key:指示列是否被索引
  • Default:分配给列的默认值
  • Extra:可能包含任何有关给定列的附加信息

SELECT 语句用于从数据库中选取数据。

SELECT column_list FROM table_name

column_list:包含从中检索数据的一个或多个列。

table_name:是从中检索信息的表的名称。

完全限定名称

## 二者等效
SELECT City FROM customers;

SELECT customers.City FROM customers;

ORDER BY

用于对结果集进行排序。

## 从 "customers" 表中选取所有客户,并按照 "FirstName" 列排序:

SELECT * FROM customers
ORDER BY FirstName;

tips:ORDER BY 关键字默认按照升序(ASC)对记录进行排序。降序对记录进行排序,使用 DESC 关键字。

## 多列排序
SELECT * FROM customers 
ORDER BY LastName, Age;

tips:ORDER BY 命令按照与列相同的顺序开始排序。它将按列出的第一列排序,然后按第二列排序,依此类推。
     “LastName” 列有两个 "Smith",他们将按照 “Age” 列升序排列。

## 从 "students" 表中选择不同的名称,然后按 "name" 列排序。
SELECT DISTINCT name FROM students ORDER BY name;

SHOW TABLES;

列出表名。

WHERE 子句用于提取那些满足指定标准的记录。

SELECT column_list FROM table_name WHERE condition;

## 从 "customers" 表中选择 ID 等于 "6" 的记录:
SELECT * FROM customers WHERE ID = 6;
运算符描述
=等于
<>不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在指定范围内  
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
## 选择 ID 介于 2 和 6 之间的所有记录
SELECT * FROM customers WHERE ID BETWEEN 2 AND 6;

 

LIKE

a%(a开头)、%a(a结尾)、%a%(包含a)   % 通配符可以在同一模式中多次使用。

## 选择 FirstName 以字母 “D” 开头的所有员工
SELECT * FROM employees WHERE FirstName LIKE 'D%';

## 选择 LastName 以 “s” 为结尾的所有员工
SELECT * FROM employees WHERE LastName LIKE '%s';

 

IN

指定针对某个列的多个可能值 IN(*) 

AND 

如果两个表达式结果都为 true,则为 true

SELECT ID, FirstName, LastName, Age
FROM customers
WHERE Age >= 20 AND Age <= 30;

 

OR 如果任一表达式结果为 true,则为 true
SELECT * FROM customers 
WHERE City = 'New York' OR City = 'Los Angeles';

 

IN 

如果操作数等于表达式列表之一,则为 true

SELECT * FROM customers 
WHERE City IN ('New York', 'Los Angeles', 'Chicago');

 

NOT 

如果表达式结果为 true,则返回 false;否则如果表达式的结果为 false,则返回 true。

SELECT * FROM customers 
WHERE City NOT IN ('New York', 'Los Angeles', 'Chicago');

 

## 选择 id 为 "2" 或 "3",且城市为 "Hollywood" 的客户。
SELECT * FROM customers WHERE (id = 2 OR id = 3) AND city = 'Hollywood';

CONCAT() 函数用于连接两个或多个文本值,并返回连接字符串。

SELECT CONCAT(FirstName, ', ' , City) FROM customers;

AS 

配合CONCAT()使用。

使用 AS 为结果列分配自定义名称:

SELECT CONCAT(FirstName,', ', City) AS new_column FROM customers;
## 可使用运算符 + - * /
SELECT ID, FirstName, LastName, Salary+500 AS Salary FROM employees;

UPPER() 函数将指定字符串中的所有字母转换为大写。

LOWER() 函数将字符串转换为小写。

SELECT FirstName, UPPER(LastName) AS LastName FROM employees;

SQRT() 函数返回参数中给定值的平方根。

AVG() 函数返回数值列的平均值:

SELECT Salary, SQRT(Salary) FROM employees;
SELECT AVG(Salary) FROM employees;

SUM() 函数返回数值列的总数。

SELECT SUM(Salary) FROM employees;
## 从 "items" 表中选择 cost 大于 "500" 的所有项目,按降序对 cost 进行排序。
SELECT * FROM items WHERE cost > 500 ORDER BY cost DESC;

SELECT FirstName, Salary FROM employees WHERE  Salary > (SELECT AVG(Salary) FROM employees) 
ORDER BY Salary DESC;

MIN() 函数返回指定列的最小值。

SELECT MIN(Salary) AS Salary FROM employees;

表连接

SELECT customers.ID, customers.Name, orders.Name, orders.Amount
FROM customers, orders
WHERE customers.ID=orders.Customer_ID
ORDER BY customers.ID;

## 使用表连接显示项目名称和购买项目的客户名称
SELECT customers.name, items.names 
FROM customers , items
WHERE items.seller_id=customers.id;

自定义别名

将表名简短化

SELECT ct.ID, ct.Name, ord.Name, ord.Amount
FROM customers AS ct, orders AS ord
WHERE ct.ID=ord.Customer_ID
ORDER BY ct.ID;
  • 内连接(INNER JOIN)注释:INNER JOIN 与 JOIN 是相同的。

  • 左连接(LEFT JOIN)

  • 右连接 (RIGHT JOIN)

## 通过共有column_name连接两张表
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;

从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

返回左表中所有的行,在右表中有对应匹配的显示,没有则结果为NULL

SELECT table1.column1, table2.column2...
FROM table1 LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;

返回右表表中所有的行,在左表中有对应匹配的显示,没有则结果为NULL

SELECT table1.column1, table2.column2...
FROM table1 RIGHT OUTER JOIN table2
ON table1.column_name = table2.column_name;

UNION 将多个数据集合并到单个数据集中,并删除任何现有的重复项。

UNION ALL 将多个数据集合并到一个数据集中,但不会删除重复的行。

因为不会删除重复行,所以UNION ALL 比 UNION 快。

 

UNION 用于合并两个或多个 SELECT 语句的结果集。

tips:UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

## 不同的值
SELECT ID, FirstName, LastName, City FROM table1
UNION
SELECT ID, FirstName, LastName, City FROM table2;

## 含相同的值
SELECT ID, FirstName, LastName, City FROM table1
UNION ALL
SELECT ID, FirstName, LastName, City FROM table2;

INSERT INTO

tips:须确保值的顺序与表中的列的顺序相同。

## 等效
INSERT INTO table_name VALUES (value1, value2, value3,...);

INSERT INTO Employees (ID, FirstName, LastName, Age) VALUES (6, 'Andrew', 'Thomas', 43);

UPDATE 语句用于更新表中的记录。

UPDATE table_name SET column1=value1, column2=value2, ... WHERE condition;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值