仓酷云

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

[学习教程] MSSQL编程:SQL循规蹈矩(3)数据检索

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

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

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

x
从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。数据检索
在SQL中SELECT语句一般用于检索数据库,大概检索满意你设定前提的数据,以下是复杂的SELECT语句的格局:
select"column1"[,"column2",etc]from"tablename"
[where"condition"];
[]=optional
个中列的名字随着SELECT关头字,它决意了哪一列将被作为了局前往。你能够恣意指定多个列,大概你可使用"*"来选择一切的列。
表的名字是紧随着FROM关头字的,它指出了哪一个表格将作为最初了局被查询。
而WHERE子句(可选)指出哪一个数据大概即将被前往大概显现,它是依据关头字WHERE前面形貌的前提而来的。
在WHERE子句中能够有以下的前提选择:
=即是
>年夜于
<小于
>=年夜于即是
<=小于即是
不即是
LIKE拜见以下正文
正文:LIKE形式婚配操纵符一样可使用在WHERE子句的前提前提中。LIKE是一个功效壮大的操纵符,它可让你选择你"喜好"指定的行。百分号"%"能够被用来婚配任何大概的字符,它能够呈现在指定字符的后面大概前面,比方:
selectfirst,last,city
fromempinfo
wherefirstLIKEEr%;
以上这条SQL语句将会婚配任何名字以Er入手下手的名字,这里必需利用单引号。
大概你也能够利用"%"在字符的后面,比方:
selectfirst,last
fromempinfo
wherelastLIKE%s;
这条SQL语句将会婚配任何名字以s开头的名字。这个"%"的感化就跟DOS命令的"*"号很类似。
select*fromempinfo
wherefirst=Eric;
以上的SQL语句只选择first名字为Eric的行。
这里有一个名为"empinfo"的表:

first


last


id


age


city


province


Zhang


Jiangsheng


95123043


23


汕头


广东


Huang


Weidong


98122001


23


深圳


广东


Li


Simin


98111234


34


珠海


广东


Zhang


Sanmei


99232211


26


厦门


福建


Jiang


Dongsheng


98000190


28


重庆


四川


Liu


Tongxin


97231231


31


海南


海南



上面我们利用SELECT语句来举行一些检索:
起首你能够从empinfo中检索出列为first、last、city的数据,语句以下:
selectfirst,last,cityfromempinfo;
这时候候你未来失掉以下的数据:

first


last


id


Zhang


Jiangsheng


95123043


Huang


Weidong


98122001


Li


Simin


98111234


Zhang


Sanmei


99232211


Jiang


Dongsheng


98000190


Liu


Tongxin


97231231


假如你利用以下语句:
selectlast,city,agefromempinfo
whereage>30;
那就检索到以下的数据:
last


city


age


Simin


汕头


34


Tongxin


海南


31


如果利用:
selectfirst,last,city,provincefromempinfo
wherefirstLIKEJ%;
将失掉以下的数据:
first


last


city


Province


Jiang


Dongsheng


重庆


四川






你假如想列出一切的数据,可使用以下的语句:
select*fromempinfo;
这时候候检索到的数据为:
first


last


id


age


city


province


Zhang


Jiangsheng


95123043


23


汕头



广东


Huang


Weidong


98122001


23


深圳


广东


Li


Simin


98111234


34


珠海


广东


Zhang


Sanmei


99232211


26


厦门


福建


Jiang


Dongsheng


98000190


28


重庆


四川


Liu


Tongxin


97231231


31


海南


海南


假如你想查询first和last列中last的最初字符为g的数据,你可使用:
selectfirst,last,fromempinfo
wherelastLIKE%g;
此时查询到的数占有:
first


last


Zhang


Jiangsheng


Huang


Weidong


Jiang


Dongsheng


你还能够如许来从first、last和age列中来查询last两头有sh字符的数据:
selectfirst,last,agefromempinfo
wherelastLIKE%sh%;
了局为:
first


last


age


Zhang


Jiangsheng


23


Jiang


Dongsheng


28


最初,你还能够查询first为Jiang的数据:
select*fromempinfowherefirst=Jiang;
了局为:
first


last


id


age


city


province


Jiang


Dongsheng


98000190


28


重庆


四川


好吧,为了让你对本节教程能更好的把握,上面给你几个实习牢固牢固:
1显现first和age列的每个表中数据
2显现first、last和city列中除first=Jiang的一切表中的数据。
3显现一切age年夜于30的列的数据。
4显现first和last列中last是以"g"开头的数据。
5显现一切first为"Zhang"的列
万万不要以为这些很复杂而不作实习。因而这些都是基本,打好基本关于今后的进修是有匡助的。



支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
海妖 该用户已被删除
沙发
发表于 2015-1-19 09:11:30 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
小妖女 该用户已被删除
板凳
发表于 2015-1-25 17:49:15 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
再见西城 该用户已被删除
地板
发表于 2015-2-3 12:19:20 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
精灵巫婆 该用户已被删除
5#
发表于 2015-2-8 22:48:21 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
不帅 该用户已被删除
6#
发表于 2015-2-26 12:40:39 | 只看该作者
比如日志传送、比如集群。。。
兰色精灵 该用户已被删除
7#
发表于 2015-3-8 15:17:55 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
admin 该用户已被删除
8#
发表于 2015-3-16 03:08:47 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-22 19:19:18 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 09:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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