什么是SQL?
SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准语言。SQL 被广泛应用于数据库管理系统中,如 MySQL、PostgreSQL、Oracle、Microsoft SQL Server 等。
SQL 基本语句概述
SQL 的核心功能可以分为几大类:
- 数据查询语言 (Data Query Language, DQL):主要用于查询数据。
- 数据操作语言 (Data Manipulation Language, DML):用于插入、更新和删除数据。
- 数据定义语言 (Data Definition Language, DDL):用于定义数据库结构,如创建、修改和删除表结构。
- 数据控制语言 (Data Control Language, DCL):用于定义数据库的访问权限和控制。
数据定义语言 (DDL)
创建数据库和表
创建数据库
创建数据库用 CREATE DATABASE
语句。
CREATE DATABASE MyDatabase;
创建表
创建表用 CREATE TABLE
语句。
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Age INT,
Salary DECIMAL(10, 2)
);
修改表结构
添加列
ALTER TABLE Employees
ADD Email VARCHAR(255);
修改列
ALTER TABLE Employees
MODIFY COLUMN Salary DECIMAL(12, 2);
删除列
ALTER TABLE Employees
DROP COLUMN Email;
删除表和数据库
删除表
DROP TABLE Employees;
删除数据库
DROP DATABASE MyDatabase;
数据操作语言 (DML)
插入数据
使用 INSERT INTO
语句插入数据。
INSERT INTO Employees (EmployeeID, LastName, FirstName, Age, Salary)
VALUES (1, 'Smith', 'John', 30, 50000.00);
更新数据
使用 UPDATE
语句更新数据。
UPDATE Employees
SET Salary = 55000.00
WHERE EmployeeID = 1;
删除数据
使用 DELETE
语句删除数据。
DELETE FROM Employees
WHERE EmployeeID = 1;
数据查询语言 (DQL)
基本查询
使用 SELECT
语句查询数据。
SELECT FirstName, LastName
FROM Employees;
带条件的查询
使用 WHERE
子句筛选数据。
SELECT FirstName, LastName
FROM Employees
WHERE Age > 25;
排序数据
使用 ORDER BY
子句对查询结果排序。
SELECT FirstName, LastName, Age
FROM Employees
ORDER BY Age DESC;
分组数据
使用 GROUP BY
子句对数据分组。
SELECT Age, COUNT(*)
FROM Employees
GROUP BY Age;
聚合函数
- COUNT(): 统计行数
- SUM(): 求和
- AVG(): 平均值
- MAX(): 最大值
- MIN(): 最小值
示例:
SELECT AVG(Salary)
FROM Employees;
联合查询
使用 UNION
合并多个查询结果。
SELECT FirstName, LastName FROM Employees
UNION
SELECT FirstName, LastName FROM RetiredEmployees;
连接(JOIN)
INNER JOIN
SELECT Employees.FirstName, Departments.DepartmentName
FROM Employees
INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
LEFT JOIN
SELECT Employees.FirstName, Departments.DepartmentName
FROM Employees
LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
RIGHT JOIN
SELECT Employees.FirstName, Departments.DepartmentName
FROM Employees
RIGHT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
数据控制语言 (DCL)
创建用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
授权
GRANT SELECT, INSERT, UPDATE ON MyDatabase.* TO 'username'@'localhost';
撤销权限
REVOKE SELECT, INSERT, UPDATE ON MyDatabase.* FROM 'username'@'localhost';
删除用户
DROP USER 'username'@'localhost';