【数据库】sql基本语句
提示:仅供参考
文章目录
- 一、增删改查基本语句
- 二、select语句
- 三、带条件的查询
- order by用法
- group by用法
- join用法
- distinct用法
- 四、子查询
- 五、数据控制
- 六、事务控制
- 七、常用函数
一、增删改查基本语句
增:insert、create
删:delete
改:update
查:select
CREATE DATABASE example_db;
DROP DATABASE example_db;
例:
– 插入数据
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
INSERT INTO employees (name, salary) VALUES (‘John Doe’, 75000);
– 更新数据
UPDATE table_name SET column1 = value1 WHERE condition;
UPDATE employees SET salary = salary * 1.1 WHERE department = ‘Engineering’;
– 删除数据
DELETE FROM table_name WHERE condition;
DELETE FROM employees WHERE id = 123;
– 创建表
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
…
);
– 修改表结构
ALTER TABLE table_name ADD column_name datatype;
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name MODIFY COLUMN column_name new_datatype;
– 删除表
DROP TABLE table_name;
– 创建索引
CREATE INDEX index_name ON table_name (column1, column2);
二、select语句
SELECT column_name,column_name
FROM table_name;
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
例:
SELECT * FROM table_name WHERE condition;
SELECT * FROM employees WHERE salary > 50000;
三、带条件的查询
order by用法
ORDER BY 语句用于对一列或者多列数据进行升序(ASC)或者降序(DESC)排列
默认为升序排列,如果要对某元素按降序排列则在对应关键字后添加参数DESC
SELECT column_list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
例:
SELECT * FROM table_name ORDER BY column1 ASC, column2 DESC;
group by用法
GROUP BY 语句用来对相同的数据进行分组和聚合
SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
例:
SELECT department, COUNT(*) FROM employees GROUP BY department;
SELECT department, AVG(salary) FROM employees GROUP BY department;
join用法
JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
类型:
INNER JOIN:如果表中有至少一个匹配,则返回行;
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行;
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行;
FULL JOIN:只要其中一个表中存在匹配,则返回行。
例:
SELECT e.name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.id;
distinct用法
依据所确定的表列,过滤掉重复的数据(单表)
四、子查询
例:
SELECT name FROM employees
WHERE department_id IN (SELECT id FROM departments WHERE location = ‘New York’);
五、数据控制
– 授权
GRANT SELECT, INSERT ON table_name TO user_name;
– 撤销权限
REVOKE INSERT ON table_name FROM user_name;
六、事务控制
– 开始事务
BEGIN TRANSACTION;
– 提交事务
COMMIT;
– 回滚事务
ROLLBACK;
七、常用函数
– 字符串函数
SELECT CONCAT(first_name, ’ ', last_name) AS full_name FROM employees;
SELECT UPPER(name), LOWER(email) FROM customers;
SELECT SUBSTRING(description, 1, 50) FROM products;
– 数值函数
SELECT ROUND(price, 2), CEIL(total), FLOOR(average) FROM sales;
SELECT SUM(amount), AVG(score), MAX(temperature) FROM measurements;
– 日期函数
SELECT CURRENT_DATE, CURRENT_TIMESTAMP;
SELECT EXTRACT(YEAR FROM order_date) FROM orders;
SELECT DATE_ADD(order_date, INTERVAL 7 DAY) FROM orders;
– 条件表达式
SELECT name,
CASE WHEN salary > 100000 THEN ‘High’
WHEN salary > 50000 THEN ‘Medium’
ELSE ‘Low’ END AS salary_level
FROM employees;