SQL 本质上就是:告诉数据库你想对数据做什么操作。
比如:
- 我想看数据 →
SELECT - 我想新增数据 →
INSERT - 我想修改数据 →
UPDATE - 我想删除数据 →
DELETE
1. 数据库的基本结构
关系型数据库(MySQL、PostgreSQL等)结构:
数据库(Database)
|
├── 表(Table)
| |
| ├── 行(Row)
| |
| └── 列(Column)
例如一个学生表:
student
| id | name | age |
|---|---|---|
| 1 | 张三 | 20 |
| 2 | 李四 | 21 |
这里:
- 表:
student - 列:
id、name、age - 行:每一个学生的数据
2. 查询数据 SELECT
SQL最基本语句:
SELECT 字段
FROM 表名;
例如:
查询学生名字:
SELECT name
FROM student;
结果:
张三
李四
查询多个字段:
SELECT name, age
FROM student;
结果:
| name | age |
|---|---|
| 张三 | 20 |
| 李四 | 21 |
查询所有字段:
SELECT *
FROM student;
* 表示:
所有列
结果:
| id | name | age |
|---|---|---|
| 1 | 张三 | 20 |
| 2 | 李四 | 21 |
3. WHERE 条件查询
如果不想看全部数据,需要过滤:
语法:
SELECT 字段
FROM 表
WHERE 条件;
例如:
查询年龄为20的人:
SELECT *
FROM student
WHERE age = 20;
结果:
张三 20
4. 字符串和数字区别
数字:
age = 20
不用引号。
字符串:
name = '张三'
需要引号。
例如:
正确:
SELECT *
FROM student
WHERE name='张三';
错误:
WHERE name=张三
5. INSERT 插入数据
新增一条数据:
语法:
INSERT INTO 表名
(字段1,字段2)
VALUES
(值1,值2);
例如:
student表:
| id | name | age |
|---|---|---|
| 1 | 张三 | 20 |
新增李四:
INSERT INTO student
(name,age)
VALUES
('李四',21);
执行后:
| id | name | age |
|---|---|---|
| 1 | 张三 | 20 |
| 2 | 李四 | 21 |
6. UPDATE 修改数据
语法:
UPDATE 表名
SET 字段=新值
WHERE 条件;
例如:
修改张三年龄:
UPDATE student
SET age=22
WHERE name='张三';
修改前:
张三 20
修改后:
张三 22
⚠️ 注意:
如果没有 WHERE:
UPDATE student
SET age=22;
那么:
所有学生年龄都会变成22
7. DELETE 删除数据
语法:
DELETE FROM 表名
WHERE 条件;
例如:
删除张三:
DELETE FROM student
WHERE name='张三';
如果:
DELETE FROM student;
代表:
删除整个表所有数据。
8. SQL语句基本规律
你可以先记这个:
查询:
SELECT 什么
FROM 哪个表
WHERE 什么条件;
翻译成人话:
从哪个表
找满足条件的数据
返回哪些字段
例如:
SELECT name
FROM student
WHERE age=20;
人话:
从学生表里面
找到年龄20的人
返回他的名字