|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
从刚开始练习的PHP基础语法练习,到PHP语言在WEB中的应用,再到实际的项目开发,如留言版,相册系统,中小型公司网站系统,以及期间做过的有关团队合作的小游戏,让我受益匪浅,学到了很多。sql言语|疾速入门 咱们平常利用SQL言语的任务过程当中,利用最多的仍是从已创立好的数据库中查询信息。上面,咱们就来具体引见一下若何利用SQL言语完成各类数据库查询操作。
SELECT…FROM
为便利解说,咱们在数据库中创立名为Store_Information的以下数据表。
Store_Information
Store_Name
Sales
Date
Los Angeles
00
Jan-10-2000
San Diego
0
Jan-11-2000
Los Angeles
0
Jan-12-2000
Boston
0
Jan-12-2000
SQL言语顶用于数据库查询的最复杂的号令就是SELECT…FROM,语法格局为:
SELECT "column_name" FROM "table_name"
例如,假如咱们但愿查询Store_Information数据表中一切的商铺称号时,可使用以下号令:
SELECT store_name FROM Store_Information
查询了局显示为:
Store_Name
Los Angeles
San Diego
Los Angeles
Boston
假如用户但愿一次查询多个字段,可以将所要查询的字段称号顺次到场SELECT关头字以后,两头用“,”离隔便可。
DISTINCT
SELECT关头字撑持用户查询数据表中指定字段的一切数据,然而如许有时就会不成防止的呈现反复信息。假如用户但愿只查询那些具有分歧纪录值的信息的话,可使用SQL言语的DISTINCT关头字。语法格局以下:
SELECT DISTINCT "column_name"
FROM "table_name"
例如,咱们可使用以下号令查询Store_Information数据表具有分歧纪录值的一切纪录。
SELECT DISTINCT Store_Name FROM Store_Information
查询了局以下:
Store_Name
Los Angeles
San Diego
Boston
WHERE
除选择具有分歧纪录值的纪录以外,有时咱们能够还会需求依据某些前提对数据库中的数据停止查询。例如,咱们能够需求查询Store_Information数据表中发卖额超越1000美圆的商铺。为此,咱们可使用SQL言语的WHERE关头字设定查询前提。语法格局以下:
SELECT "column_name"
FROM "table_name"
WHERE "condition"
由此,咱们可使用以下号令查询发卖额超越1000美圆的商铺信息:
SELECT store_name FROM Store_Information WHERE Sales > 1000
查询了局显示为:
store_name
Los Angeles
运算函数
如今,咱们已懂得到在利用SQL言语停止数据库查询操作时可以经由过程对数值的判别设定天真的查询前提。为了加强对运算的撑持才能,SQL供应了浩瀚适用的运算函数供宽大用户利用。例如,咱们可以直接在SQL号令中挪用SUM或AVG这两个分离用于盘算总数战争均数的函数。语法格局以下:
SELECT "function type"("column_name")
FROM "table_name"
假如咱们但愿查询Store_Information数据表中一切商铺的总发卖额的话,可使用以下号令:
SELECT SUM(Sales) FROM Store_Information
查询了局显示为:
SUM(Sales)
50
COUNT
除SUM和AVG函数以外,COUNT函数是SQL言语中另外一个较为经常使用的运算函数。COUNT函数可以用来盘算数据表中指定字段所包括的纪录数量。语法格局为:
SELECT COUNT("column_name")
FROM "table_name"
例如,假如咱们但愿查询Store_Information数据表中的有关商铺的纪录条数时,可使用以下号令:
SELECT COUNT(store_name)
FROM Store_Information
查询了局显示为:
Count(store_name)
4
COUNT函数可以和DISTINCT关头字一同利用从而可以查询数据表中指定字段中一切具有分歧纪录值的纪录数量。例如,假如咱们但愿查询Store_Information数据表中分歧商铺的数量时,可使用以下号令:
SELECT COUNT(DISTINCT store_name)
FROM Store_Information
查询了局显示为:
Count(DISTINCT store_name)
3
GROUP BY
上面咱们来进一步看一下SQL言语中的纠合函数。上文中,咱们曾利用SUM函数盘算一切商铺的发卖总额,假如咱们但愿盘算每家商铺各自的总发卖额时该怎样办呢?要完成这一目标咱们需求做两件事:起首,咱们需求查询商铺称号和发卖额两个字段;然后,咱们利用SQL言语的GROUP BY号令将发卖额依照分歧的商铺停止分组,从而盘算出分歧商铺的发卖总额。GROUP BY号令的语法格局为:
SELECT "column_name1", SUM("column_name2")
FROM "table_name"
GROUP BY "column_name1"
咱们可使用以下号令完成上述查询目标:
SELECT store_name, SUM(Sales)
FROM Store_Information
GROUP BY store_name
查询了局显示为:
store_name SUM(Sales)
Los Angeles 00
San Diego 0
Boston 0
小注:
GROUP BY关头字普通使用于同时查询多个字段并对字段停止算术运算的SQL号令中。
HAVING
用户在利用SQL言语的过程当中能够但愿处理的另外一个成绩就是对由sum或其它纠合函数运算了局的输入停止限制。例如,咱们能够只但愿看到Store_Information数据表中发卖总额超越1500美圆的商铺的信息,这时候咱们就需求利用HAVING从句。语法格局为:
SELECT "column_name1", SUM("column_name2")
FROM "table_name"
GROUP BY "column_name1"
HAVING (arithematic function condition)
(GROUP BY从句可选)
由此,咱们可使用以下号令完成上述查询目标:
SELECT store_name, SUM(sales)
FROM Store_Information
GROUP BY store_name
HAVING SUM(sales) > 1500
查询了局显示为:
store_name SUM(Sales)
Los Angeles 00
小注:
SQL言语中设定纠合函数的查询前提时利用HAVING从句而不是WHERE从句。凡是情形下,HAVING从句被放置在SQL号令的开头处。
ALIAS
上面,咱们重点引见一下若何在SQL号令中设定别号。SQL言语中普通利用两品种型的别号,分离为字段别号和数据表别号。
复杂的说,利用字段别号可以匡助咱们无效的组织查询的输入了局。例如,上文所罗列的多个实例中,当咱们盘算商铺发卖总额时,显示了局中就会呈现SUM(sales)。固然SUM(sales)其实不会对咱们了解查询了局带来方便,然而假如咱们需求在查询中利用多项庞杂运算时,显示了局就不会这么直不雅了。假如这时候咱们利用字段别号就会极大的进步查询了局的可读性。
关于数据表别号,咱们可以经由过程将别号直接放置在FROM从句中数据表称号的前面设定。数据表别号在咱们上面将要讲述的毗连多个数据表停止查询的操作中极其有效。
字段和数据表别号的语法格局以下:
SELECT "table_alias"."column_name1" "column_alias"
FROM "table_name" "table_alias"
即别号都直接放置在各自对应称号的前面,两头用空格分隔。
以Store_Information数据表为例,咱们可以在GROUP BY一节中所利用的SQL号令中设置以下字段和数据表别号:
SELECT A1.store_name Store, SUM(Sales) "Total Sales"
FROM Store_Information A1
GROUP BY A1.store_name
查询了局显示为:
Store Total Sales
Los Angeles 00
San Diego 0
Boston 0
毗连多个数据表
最初,咱们来看一下假如利用SQL言语毗连多个数据表,完成对多个数据表的查询。为便利解说,咱们在数据库平分别创立了两个名为Store_Information和Region的数据表。
Store_Information
Store_Name
Sales
Date
Los Angeles
00
Jan-10-2000
San Diego
0
Jan-11-2000
Los Angeles
0
Jan-12-2000
Boston
0
Jan-12-2000
Region
Region_Name
Store_Name
East
Boston
East
New York
West
Los Angeles
West
San Diego
上面,咱们就来看一下经由过程数据表的毗连完成按分歧区域查询发卖额。
咱们注重到在名为Region的数据表中包括区域和商铺两个字段信息,而在名为Store_Information的数据表中则包括每家商铺的发卖信息。因而,为了失掉按区域划分的发卖信息,咱们需求将两个分歧数据表的信息联合在一同停止查询。经由过程对上述两个数据表的剖析,咱们发明每一个数据表中都包括一个名为Store_Name的字段,因而,咱们可使用以下号令完成查询目标:
SELECT A1.region_name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.store_name = A2.store_name
GROUP BY A1.region_name
查询了局显示为:
REGION SALES
East 0
West 50
申明:
上述查询号令的前两行用于指定所要查询的方针字段,分离为Region数据表中的Region_Name字段和Store_Information数据表中Sales字段的纪录值总数。这里,咱们设定两个字段的别号分离为REGION和SALES,两个数据表的别号分离为A1和A2。假如咱们只利用字段别号而不设定命据表别号的话,上述SQL号令的第一行就酿成 以下模式:
SELECT Region.Region_Name REGION, SUM(Store_Information.Sales) SALES
由此咱们可以看出无效的利用数据表别号,可以极大的简化对多个数据表停止操作的SQL号令。
上述查询号令的第3行动WHERE从句,恰是该从句设定了两个数据表的毗连前提。由于咱们但愿确保Region数据表中的Store_Name字段可以与Store_Information数据表中的同名字段绝对应,所以咱们划定两个字段的纪录值应该相等。在毗连多个数据表时,必定要正确设定命据表的毗连前提,假如WHERE从句设定不准确,则能够招致查询了局中呈现浩瀚不相干的数据
在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。 |
|