
一、数据库操作
1. 连接数据库
```bash
mysql -u [lbk]用户名[rbk] -p[lbk]密码[rbk] # 注意 -p 后无空格(或直接输入密码)
mysql -h [lbk]主机地址[rbk] -u [lbk]用户[rbk] -p # 远程连接
```
2. 创建数据库
```sql
CREATE DATABASE [lbk]数据库名[rbk];
```
3. 查看所有数据库
```sql
SHOW DATABASES;
```
4. 选择/切换数据库
```sql
USE [lbk]数据库名[rbk];
```
5. 删除数据库
```sql
DROP DATABASE [lbk]数据库名[rbk];
```
二、表操作
1. 创建表
```sql
CREATE TABLE [lbk]表名[rbk] (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT DEFAULT 18,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
2. 查看所有表
```sql
SHOW TABLES;
```
3. 查看表结构
```sql
DESC [lbk]表名[rbk]; -- 查看字段信息
SHOW CREATE TABLE [lbk]表名[rbk]; -- 查看建表语句
```
4. 修改表结构
```sql
ALTER TABLE [lbk]表名[rbk] ADD COLUMN [lbk]列名[rbk] [lbk]类型[rbk]; -- 添加列
ALTER TABLE [lbk]表名[rbk] DROP COLUMN [lbk]列名[rbk]; -- 删除列
ALTER TABLE [lbk]表名[rbk] MODIFY COLUMN [lbk]列名[rbk] [lbk]新类型[rbk]; -- 修改列类型
```
5. 删除表
```sql
DROP TABLE [lbk]表名[rbk];
```
三、数据操作(CRUD)
1. 插入数据
```sql
INSERT INTO [lbk]表名[rbk] (字段1, 字段2) VALUES ('值1', 值2);
INSERT INTO [lbk]表名[rbk] VALUES (值1, 值2); -- 按字段顺序插入
```
2. 查询数据
```sql
SELECT * FROM [lbk]表名[rbk]; -- 查询所有数据
SELECT [lbk]字段1[rbk], [lbk]字段2[rbk] FROM [lbk]表名[rbk]; -- 查询指定字段
SELECT * FROM [lbk]表名[rbk] WHERE [lbk]条件[rbk]; -- 条件查询
SELECT * FROM [lbk]表名[rbk] ORDER BY [lbk]字段[rbk] ASC/DESC; -- 排序
SELECT * FROM [lbk]表名[rbk] LIMIT 10; -- 限制返回条数
SELECT COUNT(*) FROM [lbk]表名[rbk]; -- 统计数量
```
3. 更新数据
```sql
UPDATE [lbk]表名[rbk] SET [lbk]字段=新值[rbk] WHERE [lbk]条件[rbk]; -- 更新指定条件的数据
```
4. 删除数据
```sql
DELETE FROM [lbk]表名[rbk] WHERE [lbk]条件[rbk]; -- 删除指定条件的数据
```
四、高级查询
1. 模糊查询
```sql
SELECT * FROM [lbk]表名[rbk] WHERE name LIKE '%关键字%';
```
2. 多表关联查询
```sql
内连接
SELECT * FROM 表1
INNER JOIN 表2 ON 表1.id = 表2.外键;
左连接
SELECT * FROM 表1
LEFT JOIN 表2 ON 表1.id = 表2.外键;
```
3. 分组统计
```sql
SELECT [lbk]字段[rbk], COUNT(*) FROM [lbk]表名[rbk]
GROUP BY [lbk]字段[rbk]
HAVING COUNT(*) > 1; -- 分组后筛选
``
注意事项:
①所有命令以英文分号 `;` 结尾。
②操作生产数据库前建议备份数据!