都说ai会写sql,而我还在练习写sql,你知道为什么吗?(sql语法篇)

5 阅读2分钟

SQL 本质上就是:告诉数据库你想对数据做什么操作。

比如:

  • 我想看数据 → SELECT
  • 我想新增数据 → INSERT
  • 我想修改数据 → UPDATE
  • 我想删除数据 → DELETE

1. 数据库的基本结构

关系型数据库(MySQL、PostgreSQL等)结构:

数据库(Database)
    |
    ├── 表(Table)
    |       |
    |       ├── 行(Row)
    |       |
    |       └── 列(Column)

例如一个学生表:

student

idnameage
1张三20
2李四21

这里:

  • 表:student
  • 列:id、name、age
  • 行:每一个学生的数据

2. 查询数据 SELECT

SQL最基本语句:

SELECT 字段
FROM 表名;

例如:

查询学生名字:

SELECT name
FROM student;

结果:

张三
李四

查询多个字段:

SELECT name, age
FROM student;

结果:

nameage
张三20
李四21

查询所有字段:

SELECT *
FROM student;

* 表示:

所有列

结果:

idnameage
1张三20
2李四21

3. WHERE 条件查询

如果不想看全部数据,需要过滤:

语法:

SELECT 字段
FROMWHERE 条件;

例如:

查询年龄为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表:

idnameage
1张三20

新增李四:

INSERT INTO student
(name,age)
VALUES
('李四',21);

执行后:

idnameage
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的人
返回他的名字