仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 627|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL教程之SELECT 语句的使用

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:19:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在Windows中MySQL以服务形式存在,在使用前应确保此服务已经启动,未启动可用netstartmysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注意启动者应具有管理员权限。从本节入手下手,我们将用大批的实例来说述SELECT语句的使用。起首从最复杂也是最经常使用的单表查询入手下手。
10.2.1选择列
(1)用SELECT子句来指定查询所需的列,多个列之间用逗号分隔


(2)可使用标记“*”来拔取表的全体列


(3)在查询了局中增加列

10.2.2选择行
(1)利用WHERE子句
用户在查询数据库时,常常其实不必要懂得全体信息,而只必要个中一部分满意某些前提的信息。在这类情形下就必要在SELECT语句中到场前提,以选择数据行,这时候就用到WHERE子句。WHERE子句中的前提是由表达式和逻辑联合词AND、OR、NOT等构成。

例10-4:查询人为介于2000元和3000元之间的员工姓名。
usepangu
selecte_name
fromemployee
wheree_wagebetween2000and3000
运转了局以下:
e_name
--------------------
王二
伍将
(2row(s)affected)

(2)利用DICTINCT关头字
用户在对数据库举行查询时,会呈现反复了局,这时候就必要利用DISTINCT关头字打消反复部分。
例10-5:列收工资年夜于7000的员工所属的部门编号。
usepangu
selectdistinctdept_id
fromemployee
wheree_wage>7000
运转了局以下:
dept_id
-------
1001
1005
(2row(s)affected

(3)利用IN关头字
在利用WHERE子句举行查询时,若前提表达式中呈现多少前提不异的情形,就会使表达式显得冗杂,方便于用户利用,这时候可用IN关头字来简化。
例10-6:查询在编号为‘1001’和‘1002’的部门中事情的员工姓名。
usepangu
selecte_name
fromemployee
wheredept_idin(’1001’,’1002’)
运转了局以下:
e_name
--------------------
张三
李四
......
(4)利用通配符
在WHERE子句中可使用谓词LIKE来举行字符串的婚配反省,个中将大批利用我们在Transact-SQL言语基本中先容到的通配符。


假如用户要查找的数据中自己就包括了通配符,如“SQL_Mail”,就必要利用逃逸字符来辨别通配符与实践存在的字符。其格局以下;
LIKE‘字符婚配串’ESCAPE‘逃逸字’



10.2.3对查询了局排序
(1)利用ORDER子句
当用户要对查询了局举行排序时就必要在SELECT语句中到场ORDERBY子句。在ORDERBY子句中可使用一个或多个排序请求,其优先级序次为从左到右。
例10-9:查询事情级别为‘2’的员工姓名,查询了局按人为排序。


(2)拔取前几行数据
在SELECT语句中利用TOPn或TOPnPERCENT,来拔取查询了局的前n行或前百分之n的数据。此语句常常和ORDER子句一同利用。
例10-11:查询人为最高的三名员工的姓名和人为。
usepangu
selecttop3e_name,e_wage
fromemployee
orderbye_wagedesc
运转了局以下:
e_namee_wage
-----------------------------------------
张三8000.0000
大家傅7500.0000
张龙7000.0000
(3row(s)affected)

10.2.4查询了局分组
(1)利用GROUP子句
当用户要对查询了局举行分组时,就必要在SELECT语句中到场GROUPBY子句。
例10-12:查询事情级别为‘2’的员工姓名,查询了局按部门分组;


(2)利用WITH{CUBE|ROLLUP}选项
利用这两个选项能够分外前往按组统计的数据行。与CUBE分歧的是,ROLLUP选项只前往最高层的分组列(即,第一个分组列)的统计数据。读者能够从上面的例子平分析两者的不同。
例10-13:查询公司编号、公司所订购的产物编号和应付出的金额,查询了局按公司编号和产物编号分组(本例中利用了统计函数,关于其利用请拜见下一大节)。





(3)利用HAVING子句
HAVING子句用来选择特别的组,它将组的一些属性与常数值举行对照,假如一个组满意HAVING子句中的逻辑表达式,它就能够包括在查询了局中。


注重:
在SELECT语句中WHERE、GROUPBY、HAVING子句和统计函数的实行序次以下:WHERE子句从数据源中往失落不切合
其搜刮前提的数据行;GROUPBY子句汇集数据行到各个组中;统计函数为各个组盘算统计值;HAVING子句往失落不切合共组搜刮前提的各组数据行。

10.2.5利用统计函数
在SELECT语句中利用统计函数,能够失掉良多有效的信息。



mysql的prepare其实是本地PHP客户端模拟的,并没有根据你mysql的设置做字符集的调整。应该交与mysqlserver端做prepare,同时得调用mysql_set_character_set去操作,server才会按照字符集去做转义。
若天明 该用户已被删除
沙发
发表于 2015-1-19 08:43:09 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
不帅 该用户已被删除
板凳
发表于 2015-1-24 19:16:26 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
精灵巫婆 该用户已被删除
地板
发表于 2015-2-2 12:43:26 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
柔情似水 该用户已被删除
5#
发表于 2015-2-7 20:14:54 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
蒙在股里 该用户已被删除
6#
发表于 2015-2-23 10:19:04 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-7 08:05:27 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
小女巫 该用户已被删除
8#
 楼主| 发表于 2015-3-14 15:58:49 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
谁可相欹 该用户已被删除
9#
发表于 2015-3-21 12:16:47 | 只看该作者
无法深入到数据库系统层面去了解和探究
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-3 02:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表