SQL学习笔记 2 -检索数据

检索数据

SELECT语句作用是从表中检索信息,需要关键词检索,给出两条信息:想选择什么,从什么地方选择。

例:

SELECT prod_name
FROM Products;

作用是从Products表中检索prod_name的列,所需的列名写在SELECT关键字之后。

多条SQL语句要用分号隔开,有些DBMS不需要在单条语句后面加分号,出于习惯,笔者还是每条后面加上分号。

SQL语句不分大小写(与JAVA不同),使用时看习惯。笔者习惯关键词使用大写。

SQL语句中,所有空格都会被忽略,上文的代码也可以这么写

SELECT Prod_name FROM Products;

没有区别,笔者的习惯是分段写,看起来更舒适。

检索多个列

仍然使用SELECT语句,必须在SELECT之后给出多个列名,列名用逗号分隔。

SELECT Prod_name,Student_name,Student_phone
FROM Products;

检索所有列

SELECT后面加上通配符(*号)

SELECT *
FROM Products;

SQL返回所有列,一般而言,除非确实需要表中的每一列,否则最好不要使用通配符*,不需要的数据会大大降低性能。

检索不同的值

当SELECT返回所有匹配的行时,如果不希望每个值每次都出现,使用DISTINCT关键字。

一般情况:

SELECT student_id
FROM students;

输出

student_id
--------------
zhangsan
zhangsan
zhangsan
lisi
lisi
wangwu
wangwu
wangwu

即使表中只有三个学生,因为student表中有八个任务,也会返回八行。

使用DISTINCT关键字:

SELECT DISTINCT student_id
FROM students;

输出

student_id
-----------
zhangsan
lisi
wangwu

如果使用DISTINCT关键字,必须在列名前面

DISTINCT关键字作用于跟在后面的所有列,而非跟在后面的那一个。

SELECT DISTINCT student_id,student_phone
FROM students;

结果是检索6行。

限制结果

如果只想返回第一行或者是特定数量的行,SQL SERVER中可以使用TOP关键字。

SELECT TOP5 prod_name
FROM Products;

结果是只检索前五行数据。

如果使用的是MYSQL,需要使用LIMIT字句

SELECT prod_name
FROM Products
LIMIT 5;

另外,LIMIT字句可以指定从哪儿到哪儿检索的行数 例如:

SELECT prod_name
FROM Products
LIMIT 5 OFFSET 5;

 表示从第五行开始检索下面5行数据。

注意:第一个被检索的数据是第0行,不是第一行,所以

LIMIT 1 OFFSET 1

会检索第二行,并不是第一行。

另外,MYSQL可以把LIMIT 4 OFFSET 3简化成LIMIT 3,4。逗号前的对应OFFSET的值,逗号后的对应LIMIT。这里是从第四行开始检索三行。(反着的,要注意!!!)

使用注释

如果你暂时不想要运行这行代码,或者想给别的程序员做参考,可以使用--(两个连字符),连字符之后的就是注释。

SELECT prod_name --这是注释
FROM Products
LIMIT 5 OFFSET 5;

另外的,也可以进行多行注释。

 使用/*和*/将中间的内容注释,被注释的不会运行

/*SELECT prod_name 
FROM Products
LIMIT 5 OFFSET 5;*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值