当前位置:首页 > 问答 > 正文

常用数据库里那些SQL命令怎么用,细说一点点上篇

(引用来源:常见数据库SQL命令基础教程)

今天咱们来聊聊那些在数据库里最常用到的SQL命令,你不用管数据库是MySQL、还是SQL Server什么的,这些最基本的命令都大同小异,就像学开车,先学会方向盘、油门、刹车,不管开什么车都差不多。

第一,连接数据库和看看有啥(USE 和 SHOW)

想象一下,数据库就像一个有很多房间(数据库)的大楼,每个房间里有很多桌子(数据表),你进门后,得先决定去哪个房间。

  • USE 数据库名字;:这个命令就是告诉你现在要进哪个房间工作。USE school; 就是说,我接下来要在“学校”这个数据库里操作了,分号很重要,相当于一句话说完了。
  • SHOW DATABASES;:如果你刚来,不知道这栋楼有哪些房间,就用这个命令,它会列出所有存在的数据库名字给你看。
  • SHOW TABLES;:当你进了某个房间(用了USE命令)后,你想知道这个房间里有哪些桌子(表),就用这个命令,它会列出当前数据库里所有的表名。

第二,看看桌子上有啥(SELECT 和 FROM)

这是你用得最多的命令,没有之一,它的作用就是“看”。

  • 最基本的用法是:SELECT 你要看什么 FROM 从哪张表看;
  • 举个例子,有张表叫students(学生表),你想看看所有学生的所有信息,那就写:SELECT * FROM students;,这里的星号是个通配符,代表“所有列”,就像你说“把桌子上所有东西都拿给我看看”。
  • 但通常我们不会看所有列,那样信息太多太乱,我们可能只想看学生的名字和学号,假设表里有namestudent_id这两列,那就写:SELECT name, student_id FROM students;,用逗号把你想看的列名分开。
  • 这个命令执行后,数据库就会把你要的结果像一张临时表格一样返回给你,你可以清楚地看到数据。

第三,给看的东西定个规矩(WHERE)

光看还不够,我们经常需要“有选择地看”。WHERE子句就是用来加条件的,它像一个大筛子。

  • 用法是接在FROM后面:SELECT ... FROM ... WHERE 条件;
  • 还是那个students表,现在我不想看所有学生了,我只想看看年龄大于18岁的学生,假设表里有个age列(年龄列),那就写:SELECT name, age FROM students WHERE age > 18;
  • WHERE后面的条件非常灵活,你可以用很多比较符号:
    • :等于。WHERE name = ‘张三’ (找名字是张三的,注意文字要用单引号包起来)
    • >:大于
    • <:小于
    • >=:大于等于
    • <=:小于等于
    • <>:不等于
    • AND:比如 WHERE age > 18 AND gender = ‘男’ (找年龄大于18岁并且是男生的)
    • OR:或者。WHERE age < 18 OR age > 65 (找年龄小于18岁或者大于65岁的)

第四,往桌子上放新东西(INSERT INTO)

看会了,接下来就是往里加新数据。INSERT INTO就是干这个的。

  • 基本语法:INSERT INTO 表名字 (列1, 列2, ...) VALUES (值1, 值2, ...);
  • 这表示你要往指定的列里插入对应的值。
  • 我们要往students表里新加一个学生,他叫“李四”,学号是”2024001”,年龄20岁,假设表就这三列,那么命令是:INSERT INTO students (name, student_id, age) VALUES (‘李四’, ‘2024001’, 20);
  • 注意哦,列名的顺序和值的顺序必须一一对应,文字类型的值(比如名字、学号)一定要用单引号括起来,数字值(比如年龄)就不用。
  • 有一种简写,如果你打算为表里的每一列都插入值,并且值的顺序和表里列的顺序完全一致,你可以省略列名:INSERT INTO students VALUES (‘李四’, ‘2024001’, 20);,但为了清晰和不容易出错,我建议新手还是老老实实把列名写上。

第五,改掉桌子上已有的东西(UPDATE 和 SET)

东西放错了,或者情况变了,我们需要修改已有的数据,就用UPDATE

  • 基本语法:UPDATE 表名字 SET 列1 = 新值1, 列2 = 新值2 WHERE 条件;
  • 这里要划重点了:WHERE条件在UPDATE里极其重要! 如果你忘了写WHERE,就会把整张表里所有行的数据都改掉,这通常是灾难性的。
  • 举个例子,学生“李四”过生日了,年龄要加1岁,我们就写:UPDATE students SET age = 21 WHERE name = ‘李四’;,这条命令的意思是:在students表里,找到所有名字是‘李四’的行,然后把他们的年龄(age)设置成21。
  • 你可以一次改多个列,用逗号分开,比如同时修改年龄和学号:UPDATE students SET age = 21, student_id = ‘2024002’ WHERE name = ‘李四’;

第六,从桌子上拿走东西(DELETE FROM)

如果某个数据我们不想要了,比如有学生退学了,我们需要删除他的记录。

  • 基本语法:DELETE FROM 表名字 WHERE 条件;
  • 同样要划重点:WHERE条件在DELETE里也是性命攸关! 如果你写DELETE FROM students;而忘了加WHERE,后果就是整张students表的数据都会被清空,只剩下一个空表,这是非常危险的操作。
  • 安全的删除应该是这样的:DELETE FROM students WHERE name = ‘李四’;,这条命令的意思是:从students表里,删除所有名字是‘李四’的行。

好了,以上就是数据库操作中最核心的六个命令:看(SELECT)、加(INSERT)、改(UPDATE)、删(DELETE),再加上切换环境(USE)和查看清单(SHOW),你把它们理解了,就算入门了,尤其是修改(UPDATE)和删除(DELETE)的时候,一定要瞪大眼睛看清楚你的WHERE条件,不然很容易酿成大错,下篇我们再讲点更细致的,比如怎么给看到的数据排个序、怎么把数据分类统计一下。

常用数据库里那些SQL命令怎么用,细说一点点上篇