SQL常用命令梳理

in BLOG with 0 comment
SQL语句 描述 示例 说明
SELECT 查询数据库中的数据 SELECT * FROM users; 查询表users中的所有数据
INSERT 向数据库表中插入数据 INSERT INTO users (username, email) VALUES (‘John’, ‘john@example.com’); 向表users插入一条数据
UPDATE 更新数据库表中的数据 UPDATE users SET email = ‘john_new@example.com’ WHERE username = ‘John’; 更新表users中用户名为’John’的用户的电子邮件地址
DELETE 删除数据库表中的数据 DELETE FROM users WHERE username = ‘John’; 删除表users中用户名为’John’的用户数据
CREATE TABLE 创建一个新表 CREATE TABLE users (id INT PRIMARY KEY, username VARCHAR(50), email VARCHAR(100)); 创建一个名为users的表,包含id, username和email列
DROP TABLE 删除一个表 DROP TABLE users; 删除表users
ALTER TABLE 修改表结构(如添加/删除/修改列) ALTER TABLE users ADD COLUMN age INT; 在表users中添加一个名为age的整数列
CREATE INDEX 为表中的列创建索引,以提高查询速度 CREATE INDEX idx_users_username ON users(username); 为表usersusername列创建一个索引
CREATE VIEW 创建一个视图,用于简化复杂查询或保护数据安全 CREATE VIEW view_users AS SELECT username, email FROM users; 创建一个名为view_users的视图,只显示usernameemail
JOIN 连接多个表,以便在一次查询中获取相关数据 SELECT u.username, o.order_id FROM users u JOIN orders o ON u.id = o.user_id; 查询users表和orders表的连接结果,显示用户名和订单ID
GROUP BY 将查询结果按指定列分组,通常与聚合函数(如COUNT、SUM等)一起使用 SELECT country, COUNT(*) FROM users GROUP BY country; 按国家分组查询用户数
HAVING 对分组后的查询结果进行筛选,类似于WHERE子句 SELECT country, COUNT() FROM users GROUP BY country HAVING COUNT() > 10; 查询用户数超过10的国家
ORDER BY 对查询结果按指定列排序 SELECT * FROM users ORDER BY username; username列对查询结果进行排序
LIMIT 限制查询结果的数量 SELECT * FROM users LIMIT 10; 查询表users中的前10条数据
SQL函数 描述 示例 说明
COUNT() 计算指定列的行数 SELECT COUNT(*) FROM users; 计算表users中的行数
SUM() 计算指定列的总和 SELECT SUM(salary) FROM employees; 计算表employees中所有员工的总薪水
AVG() 计算指定列的平均值 SELECT AVG(salary) FROM employees; 计算表employees中员工的平均薪水
MIN() 计算指定列的最小值 SELECT MIN(salary) FROM employees; 计算表employees中员工的最低薪水
MAX() 计算指定列的最大值 SELECT MAX(salary) FROM employees; 计算表employees中员工的最高薪水
LENGTH() 计算字符串的长度 SELECT LENGTH(username) FROM users; 计算表usersusername列的字符串长度
LOWER() 将字符串转换为小写 SELECT LOWER(username) FROM users; 将表users中的username列转换为小写
UPPER() 将字符串转换为大写 SELECT UPPER(username) FROM users; 将表users中的username列转换为大写
TRIM() 去除字符串两端的空白字符 SELECT TRIM(username) FROM users; 去除表usersusername列两端的空白字符
CONCAT() 连接字符串 SELECT CONCAT(first_name, ’ ', last_name) FROM employees; 连接表employees中的first_namelast_name
SUBSTR() 提取字符串中的子字符串 SELECT SUBSTR(username, 1, 3) FROM users; 提取表usersusername列的前3个字符
REPLACE() 替换字符串中的子字符串 SELECT REPLACE(email, ‘@example.com’, ‘@new.com’) FROM users; 替换表usersemail列的域名部分
NOW() 获取当前日期和时间 SELECT NOW(); 获取当前日期和时间
CURDATE() 获取当前日期 SELECT CURDATE(); 获取当前日期
CURTIME() 获取当前时间 SELECT CURTIME(); 获取当前时间
DATEDIFF() 计算两个日期之间的天数 SELECT DATEDIFF(‘2023-04-30’, ‘2023-04-01’); 计算两个日期之间的天数
DATE_ADD() 在日期上增加指定的时间间隔 SELECT DATE_ADD(‘2023-04-01’, INTERVAL 1 MONTH);