若相依 发表于 2015-1-16 20:14:02

发布MySQL进门进修(四)

也许最好的策略是以不变应万变:给客户他们所需要的,不多也不少。如果MySQL学习教程适合他们,他们就不应该买别的工具。事实上,云计算产业一直推崇自助服务,但提供这些服务的公司已经开始认识到解决方案提供商推销他们商品的价值。MySQL进门进修(四)
--进修篇

上篇我们学会了怎样创立一个数据库和数据库表,并晓得怎样向数据库表中增加纪录。
那末我们怎样从数据库表中检索数据呢?

1、从数据库表中检索信息
实践上,后面我们已用到了SELECT语句,它用来从数据库表中检索信息。
select语句格局通常是:

SELECT检索关头词FROM被检索的表WHERE检索前提(可选)

之前所利用的“*”暗示选择一切的列。
上面持续利用我们在上篇文章中创立的表mytable:

2、查询一切数据:
mysql>select*frommytable;
+----------+------+------------+----------+
|name|sex|birth|birthaddr|
+----------+------+------------+--------+
|abccs|f|1977-07-07|china|
|mary|f|1978-12-12|usa|
|tom|m|1970-09-02|usa|
+----------+------+------------+----------+
3rowinset(0.00sec)

3、修改毛病纪录:
假设tom的出身日期有毛病,应当是1973-09-02,则能够用update语句来修改:
mysql>updatemytablesetbirth="1973-09-02"wherename="tom";
再用2中的语句看看是不是已改正过去。

4、选择特定行
下面修正了tom的出身日期,我们能够选择tom这一行来看看是不是已有了变更:
mysql>select*frommytablewherename="tom";
+--------+------+------------+------------+
|name|sex|birth|birthaddr|
+--------+------+------------+------------+
|tom|m|1973-09-02|usa|
+--------+------+------------+------------+
1rowinset(0.06sec)

下面WHERE的参数指定了检索前提。我们还能够用组合前提来举行查询:
mysql>SELECT*FROMmytableWHEREsex="f"ANDbirthaddr="china";
+--------+------+------------+------------+
|name|sex|birth|birthaddr|
+--------+------+------------+------------+
|abccs|f|1977-07-07|china|
+--------+------+------------+------------+
1rowinset(0.06sec)

5、选择特定列
假设你想检察表中的一切人的姓名,则能够如许操纵:
mysql>SELECTnameFROMmytable;
+----------+
|name|
+----------+
|abccs|
|mary|
|tom|
+----------+
3rowinset(0.00sec)
假如想列出姓名和性别两列,则能够用逗号将关头词name和birth分隔:
myaql>selectname,birthfrommytable;

6、对行举行排序
我们能够对表中的纪录按诞辰巨细举行排序:
mysql>SELECTname,birthFROMmytableORDERBYbirth;
+----------+------------+
|name|birth|
+----------+------------+
|tom|1973-09-02|
|abccs|1977-07-07|
|mary|1978-12-12|
+----------+------------+
3rowinset(0.00sec)

我们能够用DESC来举行逆序排序:
mysql>SELECTname,birthFROMmytableORDERBYbirthDESC;
+----------+------------+
|name|birth|
+----------+------------+
|mary|1978-12-12|
|abccs|1977-07-07|
|tom|1973-09-02|
+----------+------------+
3rowinset(0.00sec)

7、行计数
数据库常常要统计一些数据,如表中员工的数量,我们就要用到行计数函数COUNT()。
COUNT()函数用于对非NULL了局的纪录举行计数:
mysql>SELECTCOUNT(*)FROMmytable;
+----------+
|COUNT(*)|
+----------+
|3|
+----------+
1rowinset(0.06sec)

员工中男女数目:
mysql>SELECTsex,COUNT(*)FROMmytableGROUPBYsex;
+------+----------+
|sex|COUNT(*)|
+------+----------+
|f|2|
|m|1|
+------+----------+
2rowinset(0.00sec)

注重我们利用了GROUPBY对SEX举行了分组。


甚至一个有经验的Windows管理者也可以轻松部署并开始学习它,而你不需投入一分钱来了解这个数据库。

小女巫 发表于 2015-1-18 18:55:26

原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!

冷月葬花魂 发表于 2015-1-27 18:48:22

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

山那边是海 发表于 2015-2-12 09:25:01

如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。

再现理想 发表于 2015-3-3 02:09:17

无法深入到数据库系统层面去了解和探究

只想知道 发表于 2015-3-11 09:00:05

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。

蒙在股里 发表于 2015-3-18 04:28:34

只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。

不帅 发表于 2015-3-25 13:22:54

微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
页: [1]
查看完整版本: 发布MySQL进门进修(四)