SQL语句详细分析

test表
编号
学校代码
学校
专业名称
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   根据数据库类型的不同,AB可能被包含,也可能不被包含。access 2003会包含AB

select 编号,学校代码 from test where 学校代码 between 10001 and 10002

返回结果
编号学校代码
510002
410002
310001
210001
110001

分析: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的数据:

学校

大连理工大学

南京城市职业技术学院

南京邮电大学

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值