以下是关于SQL(结构化查询语言)的一些关键知识点和概念:
1. SQL的基本语法
基本的SELECT语句:
SELECT column1, column2, ...
FROM table_name;
条件过滤:
SELECT * FROM employees WHERE salary > 50000;
排序结果(ASC升序,DESC降序):
SELECT name, salary FROM employees ORDER BY salary DESC;
2. 数据库操作
创建表:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);
例如:
CREATE TABLE customers (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(50)
);
插入数据:
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...), (...);
例如:
INSERT INTO customers (name, email) VALUES ('John Doe', 'john@example.com');
更新数据:
UPDATE table_name SET column1 = new_value1, column2 = new_value2 WHERE condition;
例如:
UPDATE customers SET name = 'Jane Smith' WHERE id = 1;
删除数据:
DELETE FROM table_name WHERE condition;
例如:
DELETE FROM customers WHERE email = 'john@example.com';
3. 查询操作
连接JOIN操作:
SELECT column_list
FROM table1
INNER JOIN table2 ON table1.id = table2.customer_id;
其他类型的连接包括LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN。
使用子查询:
SELECT *
FROM employees
WHERE department IN (SELECT id FROM departments WHERE location = 'New York');
4. 函数与聚合
聚合函数(GROUP BY):
SELECT department_id, COUNT(*) as num_employees
FROM employees
GROUP BY department_id;
高级聚合函数示例:
SELECT department_id,
MAX(salary) AS max_salary,
MIN(salary) AS min_salary,
AVG(salary) AS avg_salary,
SUM(salary) AS total_salary
FROM employees
GROUP BY department_id;
5. 数据类型和约束
常见数据类型:
INT (整型)
VARCHAR(n) 或 TEXT (字符型)
DATE, DATETIME (日期时间型)
约束(Constraints):
CREATE TABLE employees (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(50) UNIQUE,
age INT CHECK(age > 18 AND age < 65)
);
6. 视图与存储过程
创建视图:
CREATE VIEW employee_info AS
SELECT id, name, email FROM employees;
使用视图:
SELECT * FROM employee_info WHERE name LIKE 'J%';
存储过程:
定义:
DELIMITER //
CREATE PROCEDURE insert_customer(IN customer_name VARCHAR(50), IN customer_email VARCHAR(50))
BEGIN
INSERT INTO customers (name, email) VALUES (customer_name, customer_email);
END//
DELIMITER ;
调用存储过程:
CALL insert_customer('Alice Johnson', 'alice@example.com');
7. 事务处理
开始、提交和回滚事务:
START TRANSACTION;
-- 执行一些操作,例如插入或更新记录
COMMIT;
-- 或者在错误发生时回滚
ROLLBACK;
总结
以上是SQL的一些基本知识点与高级应用。掌握了这些内容之后,你将能够高效地进行数据库的设计、创建以及查询等操作。