菜鸟科技网

SQL数据库基本命令有哪些核心操作?

SQL(结构化查询语言)是与关系型数据库交互的标准语言,掌握其基本命令是进行数据操作的核心技能,SQL命令主要分为数据查询语言(DQL)、数据操作语言(DML)、数据定义语言(DDL)、数据控制语言(DCL)和事务控制语言(TCL),以下将详细展开各类基本命令的使用方法及场景。

SQL数据库基本命令有哪些核心操作?-图1
(图片来源网络,侵删)

数据查询语言(DQL)

DQL主要用于从数据库中检索数据,其核心命令是SELECT,通过SELECT可以搭配WHEREGROUP BYHAVINGORDER BY等子句实现复杂查询。SELECT column1, column2 FROM table_name WHERE condition;用于从指定表中筛选符合条件的列。WHERE子句支持比较运算符(如, >, <)、逻辑运算符(如AND, OR)和模糊查询(LIKE配合通配符或_)。GROUP BY结合聚合函数(如COUNT(), SUM(), AVG())可实现分组统计,而HAVING则用于对分组结果进行筛选,类似于WHERE但作用于组级别。ORDER BY可按升序(ASC)或降序(DESC)对结果排序。

数据操作语言(DML)

DML用于对数据库中的数据进行增删改操作,包括INSERTUPDATEDELETEINSERT命令用于向表中插入数据,单行插入语法为INSERT INTO table_name (column1, column2) VALUES (value1, value2);,多行插入可使用INSERT INTO ... SELECT ...从其他表导入数据。UPDATE用于修改表中数据,需搭配WHERE子句明确更新范围,否则将更新全表数据,语法为UPDATE table_name SET column1 = new_value WHERE condition;DELETE用于删除数据,同样需谨慎使用WHERE,避免误删全表数据,语法为DELETE FROM table_name WHERE condition;MERGE(或UPSERT)命令可同时实现插入、更新和删除操作,常用于数据同步场景。

数据定义语言(DDL)

DDL用于定义和管理数据库结构,主要命令包括CREATEALTERDROPTRUNCATECREATE用于创建数据库对象,如CREATE DATABASE db_name;创建数据库,CREATE TABLE table_name (column1 datatype, column2 datatype);创建表,CREATE INDEX idx_name ON table_name (column);创建索引以提升查询效率。ALTER用于修改表结构,如添加列(ALTER TABLE table_name ADD column_name datatype;)、修改列类型(ALTER TABLE table_name MODIFY column_name new_datatype;)或删除列(ALTER TABLE table_name DROP COLUMN column_name;)。DROP用于删除对象,如DROP TABLE table_name;会删除表及其数据,DROP INDEX idx_name;删除索引。TRUNCATE用于快速清空表数据,但保留表结构,且比DELETE速度更快,但不可回滚。

数据控制语言(DCL)与事务控制语言(TCL)

DCL用于控制数据库访问权限,核心命令为GRANTREVOKEGRANT用于授予权限,如GRANT SELECT, INSERT ON table_name TO user_name;授予用户对表的查询和插入权限。REVOKE用于撤销权限,如REVOKE DELETE ON table_name FROM user_name;撤销用户的删除权限,TCL则用于管理事务,确保数据一致性,主要命令包括COMMIT(提交事务,永久保存更改)、ROLLBACK(回滚事务,撤销未提交的更改)和SAVEPOINT(设置保存点,支持部分回滚),事务块可写为BEGIN TRANSACTION; SQL操作1; SQL操作2; COMMIT;,若执行过程中出错,则通过ROLLBACK回滚到事务开始前的状态。

SQL数据库基本命令有哪些核心操作?-图2
(图片来源网络,侵删)

常用SQL命令速查表

命令类型 命令 语法示例 功能说明
DQL SELECT SELECT * FROM users WHERE age > 25; 查询符合条件的记录
DML INSERT INSERT INTO users (name, age) VALUES ('Tom', 30); 插入新数据行
DML UPDATE UPDATE users SET age = 31 WHERE name = 'Tom'; 更新现有数据
DML DELETE DELETE FROM users WHERE age < 18; 删除符合条件的记录
DDL CREATE TABLE CREATE TABLE products (id INT, name VARCHAR(50)); 创建新表
DDL ALTER TABLE ALTER TABLE products ADD price DECIMAL(10,2); 添加新列
DDL DROP TABLE DROP TABLE products; 删除表及所有数据
TCL COMMIT COMMIT; 提交事务,保存更改
TCL ROLLBACK ROLLBACK; 回滚事务,撤销更改

相关问答FAQs

Q1: 如何在SQL查询中实现分页功能?
A: 分页可通过LIMITOFFSET子句实现,语法为SELECT * FROM table_name LIMIT page_size OFFSET offset;,每页显示10条记录,查询第2页数据的SQL为SELECT * FROM users LIMIT 10 OFFSET 10;page_size为每页记录数,offset为偏移量(计算公式为(页码-1)*page_size),部分数据库(如SQL Server)使用OFFSET ... FETCH NEXT ...语法,Oracle则通过ROWNUM实现分页。

Q2: 什么是SQL注入?如何防范?
A: SQL注入是一种安全漏洞,攻击者通过在输入参数中插入恶意SQL代码,破坏原有查询逻辑,从而未授权访问或篡改数据库数据,登录查询中若直接拼接用户输入的密码(如"SELECT * FROM users WHERE password = '" + user_input + "'"),攻击者输入' OR '1'='1可能导致绕过验证,防范措施包括:使用参数化查询(预编译语句)代替字符串拼接;对用户输入进行严格过滤和验证;限制数据库用户权限,避免使用超级账户;启用数据库的SQL注入防护功能(如MySQL的real_escape_string函数)。

SQL数据库基本命令有哪些核心操作?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇