SQL Server一一查询数据库

1. 检索数据(select * from <table name>)

作用:查询数据

数据按行存储在表中,行由列组成。最简单的查询形式由两部分组成:

(1).SELECT列表,指定所要检索的列。

(2).FROM子句,指定所要访问的表

示例如下:

select Name,SSN from MySqlTable

使用WHERE子句

WHERE子句为选择的行指定条件

语法如下:

WHERE <column1> <operator> <column2 / value> --operator是比较运算符(如,=,<>,>和<等)
select Name,SSN from MySqlTable where Name = 'Rupali'

2. 数据排序(Order by <column> [ASC | DESC])

作用:按照某种顺序对数据进行排序

例如,我有如下UserLogin数据表:

现在我们使用如下语句进行数据排序

select CardId,UserName,LoginPwd,LoginType from UserLogin
where LoginType = 1
Order by CardId Asc

结果如下所示:

3. GROUP BY 子句

作用:用于分组输出行

例如,我们按LoginType来分组输出行,语句如下:

select LoginType, COUNT(LoginType) As 'Total Count'
from UserLogin
Group by LoginType
order by LoginType

4. 模式匹配

作用:用来确定指定字符串与指定模式是否匹配的一种方法

模式可以使用一般字符和通配符的组合来创建。

一般字符:必须与字符串中指定的字符完全匹配。

通配字符:

       %(百分号):该通配符表示0或多个字符

       _(下划线):表示任何单个字符

      [ ](方括号):指定在指定范围(如[a-f])或集合(如[abcdef]或[adf])内的任何一个字符

      [^](方括号和脱字符):指定不在指定区域(如[^a-f])或集合(如[^adcdef])内的任何一个字符

试试使用通配符:

select CardId,UserName,LoginPwd,LoginType from UserLogin
where LoginPwd like '1%'

5. 聚合函数(SUM,MAX,MIN,AVG,COUNT)

作用:应用于行集,返回一个值

使用COUNT,返回记录总数。

6. DATETIME函数

作用:获取时间信息

7. 列表操作符(IN/NOT IN)

作用:允许根据条件指定列表选项

8. 范围操作符(BETWEEN/NOT BETWEEN)

作用:允许根据条件指定数据的范围

9. 查找空值(IS NULL/IS NOT NULL)

作用:判断查询的数据值是否为空,通常包含在WHERE条件子句中

10. 连接

作用:连接是一种关系数据库操作,它从两个表(不一定不同)中检索数据,根据连接规范匹配它们的行,最终生成一个表。

(1). 内连接

内连接是最常用的连接,它只返回满足连接规范的行。理论上,在连接规范中可以是使用任意关系运算符(如>或<),但一般总是使用等号运算符(=)。使用等号运算符的连接称为自然连接。

基本语法:

select 
      <select list>
from 
      left-table INNER JOIN right-table
      ON
      <join specification> --连接规范

表的别名

作用:给表或任何SQL查询中需要的每个表指定一个简短别名的技术

注意:别名是临时的,生存期是到执行完查询为止

为了演示内连接,我们再创建一张UserLogin1的表,如下:

我们回顾一下UserLogin表,如下:

下面我们把UserLogin与UserLogin1表根据CardId相同的条件进行连接

如下所示:

(2). 外连接

外连接(至少)返回一个连接表中的所有行,即使一个表中的行不匹配另一个表中的行也是如此。

外连接有三种类型:

       左外连接:会提取左表中的所有行,而不管它是否匹配右表中的行

       右外连接:会提取右表中的所有行,而不管它是否匹配左表中的行

       全外连接:将返回两个表中的所有行

分别演示如下所示:

(3). 其他连接

UNION JION:创建一个包含两个表中所有行的表。对于两个表,它等价于下面的查询:

select * from table1
union all
select * from table2

注意:两个表必须有相同数量的列,对应列的数据类型必须兼容(可以包含相同类型的数据)

CROSS JION:连接两个表中的所有行,不提供连接规范。

该连接会生成一个表,其中包含两个表中的所有列,其行数等于两个表中的行数乘积。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值