前三章的内容基本上都在对MySQL进行介绍,第三章的内容讲到了连接,在命令行主要使用
mysql -u(用户名)root -p(密码)******
即可在命令行接入MySQL。实际过程中大多会使用一些工具来直接连接,包括IDE,SQLyog等等
所以前三章我们不作赘述,这里直接进入检索数据的SELECT语句。
简单的查询,复杂的查询都能做
数据库中最核心语言,最重要的语言
最常用的语言
检索最本质的形式就是:
语法:SELECT 字段 ...... FROM 表
语法:SELECT 字段,字段,字段.....FROM 表
检索所有列时,可以使用*通配符来实现,但实际中一般不直接使用,效率太低
语法:SELECT * FROM 表
检索数据时可能会出现相同数据,如果不想要相同数据,可以使用distinct关键字来实现检索出数据的不同
语法:SELECT distinct 字段 ...... FROM 表
注意:不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。
那如果想限制检索出的行数该怎么实现呢?使用limit关键字就可以实现了
语法:SELECT 字段 ...... FROM 表 limit 5
这样就可以实现限制5行。limit关键字也可以实现从行中到行中的限制如:
语法:SELECT 字段 ...... FROM 表 limit 5,5
limit: 第一个数为开始位置,第二个数为要检索的行数。检索出来的第一行为行 0 而不是行 1 。
当然SELECT还可以直接使用,可以作为一个计算器使用,查询版本等等
SELECT VERSION() --查询系统版本
SELECT 100*3-1 AS 计算结果 --用来计算
SELECT @@auto_increment_increment --查询自增的步长
从 Customers 表中检索所有的 ID_牛客题霸_牛客网 (nowcoder.com)
现有表Customers如下:
cust_id A
B C 【问题】
编写 SQL 语句,从 Customers 表中检索所有的cust_id
【示例答案】
返回cust_id列的内容
cust_id A
B C
SELECT
cust_id --这里也可以使用*因为只有cust_id一列
FROM
Customers;
检索并列出已订购产品的清单_牛客题霸_牛客网 (nowcoder.com)
描述
表OrderItems含有非空的列prod_id代表商品id,包含了所有已订购的商品(有些已被订购多次)。
prod_id a1
a2 a3 a4 a5 a6 a7 【问题】编写SQL 语句,检索并列出所有已订购商品(prod_id)的去重后的清单。
SELECT
distinct prod_id
FROM
OrderItems
WHERE prod_id is not null
--这里使用到了where子句,并使用判空,判空与判定其他有所不同,需要使用is not null
检索所有列_牛客题霸_牛客网 (nowcoder.com)
明面上这是一道中等题,但实际上做下来也可以发现很简单,大家不要被吓到了,做题的时候要勇敢尝试
描述
表OrderItems含有非空的列prod_id代表商品id,包含了所有已订购的商品(有些已被订购多次)。
prod_id a1
a2 a3 a4 a5 a6 a7 【问题】编写SQL 语句,检索并列出所有已订购商品(prod_id)的去重后的清单。
SELECT
distinct prod_id
FROM
OrderItems
WHERE prod_id is not null
--明面上这是一道中等题,但实际上做下来也可以发现很简单,大家不要被吓到了,做题的时候要勇敢尝试
那么第三章检索数据的题目我们就做完了,之后会尽量保持一天更新一章,牛客网的题目连接我放在这里:牛客网在线编程_SQL篇_SQL必知必会 (nowcoder.com)