学习笔记 2"/>
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;*/
更多推荐
SQL学习笔记 2
发布评论