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

数据库连接与退出
在使用数据库前,首先需要连接到数据库服务器,以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)自动处理参数绑定。
