数据库基础命令是管理和操作数据库的核心工具,掌握这些命令是进行数据存储、查询、更新和删除的基础,以下将从数据库连接、数据操作(增删改查)、表结构管理、事务控制等方面详细介绍常用命令。

数据库连接与退出
在使用数据库前,首先需要连接到数据库服务器,以MySQL为例,通过命令行工具连接的命令为:mysql -u 用户名 -p
,执行后会提示输入密码,连接成功后,可以使用USE 数据库名;
选择要操作的数据库,若要退出数据库,可输入EXIT;
或QUIT;
,也可使用快捷键Ctrl + D
。
数据查询(SELECT)
查询是最常用的操作,基本语法为SELECT 字段名 FROM 表名 WHERE 条件 GROUP BY 分组字段 HAVING 分组条件 ORDER BY 排序字段 LIMIT 记录数;
。
- 查询所有数据:
SELECT * FROM 表名;
- 查询指定字段:
SELECT 字段1, 字段2 FROM 表名;
- 带条件查询:
SELECT * FROM 表名 WHERE age > 20;
- 模糊查询:使用
LIKE
关键字,例如SELECT * FROM 表名 WHERE name LIKE '张%';
(查询以“张”开头的记录)。 - 排序与限制:
SELECT * FROM 表名 ORDER BY age DESC LIMIT 10;
(按年龄降序查询前10条记录)。
数据插入(INSERT)
向表中插入数据使用INSERT INTO
语句,语法为INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2);
,若插入所有字段,可省略字段名列表,例如INSERT INTO 表名 VALUES (值1, 值2);
,同时插入多条数据时,可用逗号分隔值列表,例如INSERT INTO 表名 VALUES (值1, 值2), (值3, 值4);
。
数据更新(UPDATE)
更新表中数据使用UPDATE
语句,语法为UPDATE 表名 SET 字段1=新值1, 字段2=新值2 WHERE 条件;
。注意:WHERE
子句不可省略,否则会更新全表数据,例如UPDATE students SET age=21 WHERE id=1;
(将id为1的学生年龄改为21)。

数据删除(DELETE)
删除表中数据使用DELETE
语句,语法为DELETE FROM 表名 WHERE 条件;
,同样,WHERE
子句必不可少,否则会清空表数据,例如DELETE FROM students WHERE id=3;
(删除id为3的学生记录),若需清空表(保留表结构),可使用TRUNCATE TABLE 表名;
,该命令比DELETE
更快,且不会触发事务日志。
表结构管理
-
创建表:使用
CREATE TABLE
语句,语法为:CREATE TABLE 表名 ( 字段1 数据类型 PRIMARY KEY, 字段2 数据类型 NOT NULL, 字段3 数据类型 DEFAULT 默认值 );
例如创建学生表:
CREATE TABLE students ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL, age INT DEFAULT 18 );
-
修改表结构:
(图片来源网络,侵删)- 添加字段:
ALTER TABLE 表名 ADD 字段名 数据类型;
- 修改字段:
ALTER TABLE 表名 MODIFY 字段名 新数据类型;
- 删除字段:
ALTER TABLE 表名 DROP 字段名;
- 添加字段:
-
删除表:
DROP TABLE 表名;
(若表不存在,可加IF EXISTS
避免报错)。
索引管理
索引可提高查询效率,创建索引的语法为CREATE INDEX 索引名 ON 表名 (字段名);
,例如CREATE INDEX idx_name ON students (name);
为name字段创建索引,删除索引使用DROP INDEX 索引名 ON 表名;
。
事务控制
事务确保数据操作的原子性,常用命令包括:
START TRANSACTION;
(或BEGIN;
):开始事务。COMMIT;
:提交事务,永久保存更改。ROLLBACK;
:回滚事务,撤销未提交的更改。
START TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE id=1; UPDATE accounts SET balance = balance + 100 WHERE id=2; COMMIT;
常用函数
- 聚合函数:
COUNT()
(计数)、SUM()
(求和)、AVG()
(平均值)、MAX()
(最大值)、MIN()
(最小值),例如SELECT AVG(age) FROM students;
计算学生平均年龄。 - 字符串函数:
CONCAT()
(连接字符串)、SUBSTRING()
(截取字符串)。 - 日期函数:
NOW()
(当前日期时间)、CURDATE()
(当前日期)。
表:MySQL常用数据类型
数据类型 | 描述 | 示例 |
---|---|---|
INT | 整数 | age INT |
VARCHAR(n) | 可变长度字符串 | name VARCHAR(20) |
DATETIME | 日期时间 | create_time DATETIME |
DECIMAL(m,d) | 定点数,m为总位数,d为小数位数 | price DECIMAL(10,2) |
TEXT | 长文本 | content TEXT |
相关问答FAQs
Q1: DELETE和TRUNCATE删除数据的区别是什么?
A1: 主要区别有三点:①DELETE是DML语句,可回滚;TRUNCATE是DDL语句,不可回滚。②DELETE逐行删除,速度较慢;TRUNCATE先清空表再重建,速度更快。③DELETE会保留自增主键的计数,TRUNCATE会重置自增计数。
Q2: 如何避免SQL注入攻击?
A2: SQL注入是通过恶意输入破坏SQL语句结构的攻击,防范方法包括:①使用参数化查询(预编译语句),将SQL命令与数据分离;②对用户输入进行转义或过滤;③限制数据库用户的权限,避免使用超级用户;④使用ORM框架(如Hibernate、SQLAlchemy)自动处理参数绑定。