SQL必知必会跟练 1-2

发布时间:2026/11/6 6:32:55
SQL必知必会跟练 1-2

本文是个人学习笔记,学习素材参考《SQL必知必会(第5版)》,仅用于个人学习记录,非商用。样例数据、练习思路来自该书。

一.前期准备

按照提示打开Mysql Workbench
创建tysql数据库并导入数据

二.检索数据

2.1 SELECT语句

作用:从一个或多个表中检索信息

使用条件:必须至少给出两条信息——想选择什么,从什么地方选择

2.2 检索单个列

SELECT PROD_NAME
FROM PRODUCTS;

说明:这些结果是未排序的数据,只要行的数量相等即可

提示:

1.多条SQL语句必须以分号”;“分隔,大多数DBMS不需要在单条SQL语句后加分号,但建议都加分号

2.SQL语句不区分大小写

3.SQL语句可以写成长长的一行,也可以分写在多行

SELECT PROD_NAME

FROM PRODUCTS;


SELECT PROD_NAME FROM PRODUCTS;


SELECT

PROD_NAME
FROM

PRODUCTS;


这三种写法都是正确的

2.3检索多个列

列名之间要用逗号分隔,最后一个列名后面不加逗号,否则会出现错误

SELECT PROD_ID,PROD_NAME,PROD_PRICE FROM PRODUCTS;

2.4检索所有列

通配符*可以返回表中所有的列

*有一个优点:能检索出名字未知的列

SELECT * FROM PRODUCTS;

2.5检索不同值

如果你想检索的行中有相同值,你只想输出互不相同的值则用DISTINCT关键字,他指示数据库只返回不同的值,它必须放在列名之前

如果distinct关键字作用于多个列则结果是根据拥有最多不同值的列输出的

2.6限制结果

返回特定行

1.在SQL Server中可以用TOP关键字

SELECTTOP 5PROD_NAME FROM PRODUCTS;

只检索前五行数据

2.在DB2中

SELECT PROD_NAME FROM PRODUCTSFETCH FIRST 5 ROWS ONLY;

FETCH:获取

FIRST:开头,第一,最先

ROWS:行

3.在Qracle中,需要基于行计数器ROWNUM来计算行

SELECT PROD_NAME FROM PRODUCTS WHERE ROWNUM <=5;

WHERE:条件筛选

4.在Mysql,MariaDB,PostgreSQL或者SQLite中,需要用LIMIT子句

SELECT PROD_NAME FROM PRODUCTS LIMIT 5 ;

如果想得到特定几行可以用LIMIT 数字 OFFSET 数字

如果想返回从第5行起的5行数据:

SELECT PROD_NAME FROM PRODUCTS LIMIT 5 OFFSET 5;

第一个数字是想要检索的行数,第二个数字是从哪一行开始

注意:数据库表中的第1行记录是OFFSET视角下的第0行

只返回了4行是因为从第5行数后面只有4行

提示:在Mysql,MariaDB,SQLite中可以把LIMIT 4 OFFSET 3语句简化成LIMIT3,4,第一个数字对应的是OFFSET,第二个数字对应的是LIMIT,是反着的

2.7注释

1.行内注释--和#

-- 注释--后面必须有一个空格

2.多行注释

/*和*/之间任何内容都是注释,常用于把不需要跑的代码注释掉