SQL语句是由简单地英语单词构成的。这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的。最经常使用的SQL语句大概就是SELECT语句了,它的用途是从一个或多个表中检索信息
SELECT 语句用于从数据中选取数据。
结果被存储在一个结果表中,称为结果表。
SQL SELECT 语法:
与
上述就是SELECT语法,第一个语句利用SELECT
语句从SYS_Student表中检索一个名为studentName的列所需的列名写在SELECT关键字之后,FROM关键字指出从哪个表中检索数据。
第二个语句检索SYS_Student表中所有的数据。
通配符(*),如果给定一个通配符,则返回表中所有列。虽然使用通配符能让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索速度和应用程序的性能
如果没有明确排序结果,则返回的数据一般将以它在表中出现的顺序显示,也可能不是。只要返回相同数目的行,就是正常的
提示:结束SQL语句
多条SQL语句必须以(;)分隔。多数DBMS不需要在单条SQL语句后加分号,但也有DBMS可能必须在单条SQL语句后加上分号。当然,如果愿意可以总是加上分号,即使不一定需要,加上分号也没有坏处
提示:SQL语句和大小写
SQL语句不区分大小写,因此SELECT与select是相同的。同时写成Select也没有关系
提示:使用空格
在处理SQL语句时,其中所有空格都被忽略。SQL语句可以写成长长的以行,也可以分写在多行。下面这3种做法的作用是一样的
想要从一个表中检索多个列,仍然使用相同的SELECT语句,唯一不同的是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔
SELECT studentName,studentIDNum,studentNumber
FROM SYS_Student;
SELECT 语句返回所有匹配的行,但是,如果你不希望每个值每一次都出现,要怎么办呢?如果,你想检索SYS_Student表中所有外键ID值gradeID:
输入:
SELECT gradeID
FROM SYS_Student
SELECT DISTINCT
gradeID告诉DBMS只返回不同(具有唯一性,返回不重复的ID)的gradeID行,所以,如果使用DISTINCT关键字,它必须放在列名的前面
注意:不能部分使用DISTINCT
DISTINCT 关键字作用于所有列,不仅仅是跟在后面的那一列
你可以试试这两条语句
SELECT DISTINCT academeID,gradeID
FROM SYS_Student;
和
SELECT academeID,gradeID
FROM SYS_Student;
SELECT 语句返回指定表中所有匹配的行,如果你只想返回第一行或者一定数量的行
输入:
SELECT TOP 5 studentName
FROM SYS_Student;
上面代码使用SELECT TOP 5语句,只检索前5行数据
输入:
SELECT TOP 5 PERCENT studentName
FROM SYS_Student;
上面代码使用SELECT TOP 5 PERCENT 语句,只检索前5%行的数据(有小数就进位)
输入:
SELECT TOP 10 WITH TIES *
FROM production.products
ORDER BY list_price
先查询前10条数据,然后按list_price排序,然后继续查询与第10条list_price字段相等值