SELECT
, INSERT
, UPDATE
, DELETE
, CREATE
, DROP
, ALTER
, USE
, SHOW
, DESCRIBE
, WHERE
, ORDER BY
, GROUP BY
, HAVING
, JOIN
, LEFT JOIN
, RIGHT JOIN
, INNER JOIN
, FULL JOIN
, UNION
, AND
, OR
, NOT
。MySQL的关键字是数据库中具有特殊含义的保留字,它们用于定义数据库结构、操作数据库数据和控制数据库行为,关键字在MySQL查询中扮演着至关重要的角色,因为它们是SQL语句的核心组成部分,以下是一些常用的MySQL关键字及其作用:
数据定义语言 (DDL) 关键字
1、CREATE:用于创建数据库对象,如数据库、表、索引等。
创建数据库:CREATE DATABASE my_database;
创建表:CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), salary DECIMAL(10, 2));
创建索引:CREATE INDEX idx_name ON employees(name);
2、ALTER:用于修改已存在的数据库对象,如表的结构(添加或删除列、修改列类型等)。
添加新列:ALTER TABLE employees ADD birth_date DATE;
修改列的数据类型:ALTER TABLE employees MODIFY salary DECIMAL(12, 2);
删除列:ALTER TABLE employees DROP COLUMN birth_date;
3、DROP:用于删除数据库对象,如表、数据库或索引。
删除数据库:DROP DATABASE my_database;
删除表:DROP TABLE employees;
删除索引:DROP INDEX idx_name ON employees;
4、RENAME:用于重命名数据库对象,如重命名表。
重命名表:RENAME TABLE employees TO staff;
数据操作语言 (DML) 关键字
1、SELECT:用于从数据库中查询数据,是最常用的关键字之一。
基本查询:SELECT * FROM employees;
查询指定列:SELECT name, salary FROM employees;
使用条件查询:SELECT * FROM employees WHERE salary > 5000;
2、INSERT:用于向表中插入新数据。
插入一条记录:INSERT INTO employees (name, salary) VALUES ('John Doe', 7500);
插入多条记录:INSERT INTO employees (name, salary) VALUES ('Alice', 6000), ('Bob', 5500);
3、UPDATE:用于更新表中的数据。
更新单条记录:UPDATE employees SET salary = 8000 WHERE id = 1;
更新多条记录:UPDATE employees SET salary = salary * 1.1 WHERE salary < 6000;
4、DELETE:用于删除表中的数据。
删除一条记录:DELETE FROM employees WHERE id = 1;
删除所有记录:DELETE FROM employees;
5、REPLACE:类似于INSERT,但如果插入的记录主键冲突,会先删除原有记录,再插入新记录。
插入新记录或替换已有记录:REPLACE INTO employees (id, name, salary) VALUES (1, 'John Doe', 8000);
数据控制语言 (DCL) 关键字
1、GRANT:用于向用户授予权限。
授予用户查询权限:GRANT SELECT ON my_database.* TO 'username'@'localhost';
授予用户所有权限:GRANT ALL PRIVILEGES ON my_database.* TO 'username'@'localhost';
2、REVOKE:用于撤销用户的权限。
撤销查询权限:REVOKE SELECT ON my_database.* FROM 'username'@'localhost';
撤销所有权限:REVOKE ALL PRIVILEGES ON my_database.* FROM 'username'@'localhost';
事务控制语言 (TCL) 关键字
1、BEGIN / START TRANSACTION:用于显式开启一个事务。
开启事务:START TRANSACTION;
2、COMMIT:用于提交当前事务,使事务中的所有操作生效。
提交事务:COMMIT;
3、ROLLBACK:用于回滚当前事务,撤销事务中的所有操作。
回滚事务:ROLLBACK;
4、SAVEPOINT:允许在事务中设置保存点,以便部分回滚。
设置保存点:SAVEPOINT sp1;
回滚到保存点:ROLLBACK TO SAVEPOINT sp1;
5、RELEASE SAVEPOINT:用于删除指定的保存点。
删除保存点:RELEASE SAVEPOINT sp1;
查询控制关键字
1、DISTINCT:用于去除查询结果中的重复记录。
查询不重复的员工姓名:SELECT DISTINCT name FROM employees;
2、ORDER BY:用于对结果集进行排序。
根据工资排序员工信息:SELECT * FROM employees ORDER BY salary DESC;
3、GROUP BY:用于将结果集按照一列或多列进行分组。
按部门分组计算平均工资:SELECT department, AVG(salary) FROM employees GROUP BY department;
4、HAVING:用于对分组后的结果进行过滤。
筛选出平均工资大于5000的部门:SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING avg_salary > 5000;
5、JOIN:用于将多个表连接起来进行查询。
内连接两个表查询员工及其部门信息:SELECT employees.name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.id;
左连接、右连接和全连接也有相应的关键字。
6、UNION:用于合并两个或多个SELECT语句的结果集。
合并两个查询结果:SELECT name FROM employees UNION SELECT name FROM former_employees;
7、LIMIT:用于限制结果集的返回行数。
限制查询结果为前10条记录:SELECT * FROM employees LIMIT 10;
8、OFFSET:与LIMIT一起使用,用于指定结果集的偏移量。
跳过前10条记录,查询接下来的10条记录:SELECT * FROM employees LIMIT 10 OFFSET 10;
9、COUNT、SUM、AVG、MAX、MIN等聚合函数用于计算结果集中的总和、平均值、最大值和最小值等统计信息。
其他常用关键字
AND、OR、NOT:逻辑运算符,用于组合条件表达式。
NULL:表示无值或未知值。
TRUE、FALSE:布尔真值和假值。
LIKE:模糊匹配运算符,用于模式匹配查询。
IN:指定多个可能的值。
BETWEEN:指定范围。
AS:给列或表指定别名。
ON:指定连接条件。
特殊关键字
ELSE:用于条件语句中的其他情况。
CASE、WHEN、THEN:用于条件表达式。
IF、THEN、ELSEIF、ELSE:用于条件判断。
在使用MySQL时,尽量避免使用关键字作为表名或列名,如果必须使用,可以使用反引号(` “)来引用这些名称,以避免语法错误,建议查阅MySQL官方文档或其他相关资源以获取更全面的信息和示例。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1458795.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复