接上面一篇文章,后续。
使用LIMIT限制查询结果的数量
LIMIT 【位置偏移量】行数
显示表查询结果的前四行。
mysql> SELECT * FROM fruits LIMIT 4;
+------+------+------------+---------+
| f_id | s_id | f_name | f_price |
+------+------+------------+---------+
| a1 | 101 | apple | 5.20 |
| b2 | 101 | blackberry | 10.20 |
| c3 | 103 | erry | 9.20 |
| d4 | 101 | orange | 11.20 |
+------+------+------------+---------+
4 rows in set (0.00 sec)
在表中,使用LIMIT子句,返回从第五个记录开始的,行数长度为三的记录。
mysql> SELECT * FROM fruits LIMIT 4,3;
+------+------+--------+---------+
| f_id | s_id | f_name | f_price |
+------+------+--------+---------+
| e5 | 101 | melon | 8.20 |
| f6 | 102 | grape | 8.50 |
| g7 | 102 | berry | 7.60 |
+------+------+--------+---------+
3 rows in set (0.00 sec)
使用集合函数查询
函数 | 作用 |
AVG() | 返回某列的平均值 |
COUNT() |
返回某列的行数 |
MAX() | 返回某列的最大值 |
SUM() | 返回某列值的和 |
COUNT()函数
查询表中的总的行数
mysql> select count(*)AS f_name from fruits;
+--------+
| f_name |
+--------+
| 10 |
+--------+
1 row in set (0.00 sec)
SUM()函数,求和函数
求和的这列重命名输出
mysql> select SUM(s_id) AS sum_id from fruits;
+--------+
| sum_id |
+--------+
| 1020 |
+--------+
1 row in set (0.00 sec
AVG()函数平均值
在表内查询s_id 101的平均值
mysql> select AVG(f_price) AS avg__price from fruits where s_id=101;
+------------+
| avg__price |
+------------+
| 8.080000 |
+------------+
1 row in set (0.00 sec)
MAX()函数 返回指定最大值
查找价格最高的
mysql> select MAX(f_price) AS max_price from fruits;
+-----------+
| max_price |
+-----------+
| 11.60 |
+-----------+
1 row in set (0.00 sec)
有最大就有最小 MIN()函数 返回最小值
mysql> select MIN(f_price) AS max_price from fruits;
+-----------+
| max_price |
+-----------+
| 3.60 |
+-----------+
1 row in set (0.00 sec)
子查询
带ANY SOME关键字的子查询 首先创建2个表
返回tb12表的所有num列 然后将tb11中的num1的值与之进行比较,只要大于num的任何一个值,即为符合查询条件的结果
mysql> create table tb11( num1 INT NOT NULL );
Query OK, 0 rows affected (0.07 sec)
mysql> create table tb12( num INT NOT NULL );
Query OK, 0 rows affected (0.02 sec)
mysql> insert into tb11 values(1),(5),(13),(27);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> insert into tb12 values(6),(14),(11),(20);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select num1 from tb11 where num1 > ANY (select num from tb12);
+------+
| num1 |
+------+
| 13 |
| 27 |
+------+
2 rows in set (0.02 sec)
带ALL关键字的子查询
返回tb11表中比tb12表num 列所有值都大的值
mysql> select num1 from tb11 where num1 > ALL (select num from tb12);
+------+
| num1 |
+------+
| 27 |
+------+
1 row in set (0.00 sec)
带EXISTS关键字的子查询
查询表中是否存在s_id=103 ,如果存在则查询
mysql> select * from fruits where exists (select f_name from fruits where s_id=103);
+------+------+------------+---------+
| f_id | s_id | f_name | f_price |
+------+------+------------+---------+
| a1 | 101 | apple | 5.20 |
| b2 | 101 | blackberry | 10.20 |
| c3 | 103 | erry | 9.20 |
| d4 | 101 | orange | 11.20 |
| e5 | 101 | melon | 8.20 |
| f6 | 102 | grape | 8.50 |
| g7 | 102 | berry | 7.60 |
| h8 | 101 | coconut | 5.60 |
| j9 | 103 | xxtt | 11.60 |
| y10 | 105 | xxxx | 3.60 |
+------+------+------------+---------+
10 rows in set (0.00 sec)
最后介绍个 工具使用
PowerDesigner
好了,角色已经介绍完了,接着看看它们是如何演绎这场精彩的演出的吧:
首先我们需要创建一个测试数据库,为了简单,我们在这个数据库中只创建一个Student表和一个Major表.其表结构和关系如下所示.
看看怎样用PowerDesigner快速的创建出这个数据库吧.
1.现在开始使用PowerDesigner创建数据库,首先运行程序,进入主界面:
2.File—New Model—Physical Data Model—Physical Diagram—Model name设置为test,DBMS属性设置为Microsoft SQL Server 2005
3.首先用表格工具创建一个表格模板
4.双击表格模板,设置属性,我们首先设置Major表
5.设置好表名,点击Columns标签,设置字段属性,设置如图所示:
6.因为MajorID字段我们要设置为自动增长,所以要设置它的高级属性,选择MajorID字段,点击属性按钮,在General面板中勾选上Identity复选框:
7.确定后我们再创建一个Student表,字段设置如图所示:
8.接着是为Student创建一个MajorID外键,使用PowerDesigner可以很轻松的完成这个工作,选择关系设置工具,在Student表上按住左键不放,拖拽至Major表,便可为Student表添加一个MajorID的外键:
9.哈哈,现在测试表已经设置好了,接着设置一下我们要生成的数据库吧,这些表都将被创建到该数据库中,我们在设计面板空白处右键—Properties,在弹出的属性设置对话框
10好了,在此我们对新数据库的设置已经完成,但是在SQL中还是空空如也啊,我们要怎么把这边设计好的结构移植到SQLServer 2005中呢?执行操作:Database—Generate Database,设置好存储过程导出目录和文件名,点击确定即可
11.到你的导出目录,就可以看见导出的数据库创建存储过程了,打开SQL,执行一下,你就会看到数据库被神奇的创建好了
12.好了,数据库的准备工作做好了,下一篇我们就将使用该数据库结合CodeSmith自动批量生成代码啦~
这个工具 百度上有步骤我就没自己动手了,直接复制转载过来了!