编号 |
---|
学校代码 |
---|
学校 |
---|
专业名称 |
---|
1 |
10001 |
南京邮电大学 |
计算机科学与技术 |
2 |
10001 |
南京邮电大学 |
软件工程 |
3 |
10001 |
南京邮电大学 |
通信工程 |
4 |
10002 |
南京城市职业技术学院 |
国际贸易 |
5 |
10002 |
南京城市职业技术学院 |
商务英语 |
6 |
10003 |
大连理工大学 |
土木工程 |
1. distinct
用于返回不重复的值。
select distinct 学校,专业名称 from School;
注:distinct对学校和专业名称排除重复行。
返回结果:
学校 | 专业名称 |
---|---|
南京邮电大学 | 通信工程 |
南京邮电大学 | 软件工程 |
南京邮电大学 | 计算机科学与技术 |
南京城市职业技术学院 | 商务英语 |
南京城市职业技术学院 | 国际贸易 |
大连理工大学 | 土木工程 |
select distinct 学校 from School;
返回结果:
学校 |
---|
南京邮电大学 |
南京城市职业技术学院 |
大连理工大学 |
2. INSERT INTO 目标表(字段A) SELECTDISTINCT 学校名称 FROM 源表
将源表中的不重复的学校名称一行一个的全部插入目标表中的字段A中。
3. top 与 order by的结合
select top 2 编号,学校代码 from test order by 学校代码;
返回结果 | |
编号 |
学校代码 |
1 |
10001 |
2 |
10001 |
3 |
10001 |
现象:返回结果行数3 ,不是我们想要的2
select top 2 编号,学校代码 from test order by 编号 asc
返回结果 | |
编号 |
学校代码 |
2 |
10001 |
1 |
10001 |
现象:返回结果行数与我们想要的2一致,但编号未按增序排列。
4. SQL通配符必须与LIKE一起使用,LIKE用于在WHERE子句中搜索列中的指定模式。
通配符 |
描述 |
% |
替代一个或多个字符 |
_(下划线) |
仅替代一个字符 |
[charlist] |
字符列中的任何单一字符 |
[^charlist]或[!charlist] |
不在字符列中的任何单一字符 |
5. between 在where中使用,选取介于两个值之间的数据范围。可以是数值、文本或日期
between A and B 根据数据库类型的不同,A和B可能被包含,也可能不被包含。access 2003会包含A和B
select 编号,学校代码 from test where 学校代码 between 10001 and 10002
编号 | 学校代码 |
---|---|
5 | 10002 |
4 | 10002 |
3 | 10001 |
2 | 10001 |
1 | 10001 |
分析:10001和10002是数值类型,不可加引号。
6. 别名:为列或表名指定别名
select A.学校代码 AS 学校代码别名 from (select 编号,学校代码 from test where 学校代码 between 10001 and 10002) AS A
学校代码别名 |
---|
10002 |
10002 |
10001 |
10001 |
10001 |
分析:第一个AS是为列指定别名,第2个AS是为表指定别名,括号中的select语句返回结果是表。
注:返回结果的列名称为指定的别名(学校代码别名)
7.SELECT INTO 语句可用于创建表的备份复件。
SQL SELECT INTO 语法
您可以把所有的列插入新表:
SELECT*
INTOnew_table_name [IN externaldatabase]
FROMold_tablename
或者只把希望的列插入新表:
SELECTcolumn_name(s)
INTO new_table_name[IN externaldatabase]
FROMold_tablename
select distinct 学校 into test1 from test
分析:
1.表test1会自动被创建,不需要事先创建。
2. test1的数据:
学校 |
大连理工大学 |
南京城市职业技术学院 |
南京邮电大学 |