|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
为维持生产环境和非生产环境需要不断地投入管理支持费用MySQL学习教程,最终导致客户为数据库资源投入巨额成本。mysqlMySQL进门进修(五)
--多表操纵
后面我们熟习了数据库和数据库表的基础操纵,如今我们再来看看怎样操纵多个表。
在一个数据库中,大概存在多个表,这些表都是互相联系关系的。我们持续利用后面的例子。后面创建的表中包括了员工的一些基础信息,如姓名、性别、出身日期、出身地。我们再创立一个表,该表用于形貌员工所宣布的文章,内容包含作者姓名、文章题目、宣布日期。
1、检察第一个表mytable的内容:
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|
+----------+------+------------+-----------+
2、创立第二个表title(包含作者、文章题目、宣布日期):
mysql>createtabletitle(writervarchar(20)notnull,
->titlevarchar(40)notnull,
->senddatedate);
向该表中填加纪录,最初表的内容以下:
mysql>select*fromtitle;
+--------+-------+------------+
|writer|title|senddate|
+--------+-------+------------+
|abccs|a1|2000-01-23|
|mary|b1|1998-03-21|
|abccs|a2|2000-12-04|
|tom|c1|1992-05-16|
|tom|c2|1999-12-12|
+--------+-------+------------+
5rowsinset(0.00sec)
3、多表查询
如今我们有了两个表:mytable和title。使用这两个表我们能够举行组合查询:
比方我们要查询作者abccs的姓名、性别、文章:
mysql>SELECTname,sex,titleFROMmytable,title
->WHEREname=writerANDname=abccs;
+-------+------+-------+
|name|sex|title|
+-------+------+-------+
|abccs|f|a1|
|abccs|f|a2|
+-------+------+-------+
下面例子中,因为作者姓名、性别、文章纪录在两个分歧表内,因而必需利用组合来举行查询。必需要指定一个表中的纪录怎样与别的表中的纪录举行婚配。
注重:假如第二个表title中的writer列也取名为name(与mytable表中的name列不异)而不是writer时,就必需用mytable.name和title.name暗示,以示区分。
再举一个例子,用于查询文章a2的作者、出身地和出身日期:
mysql>selecttitle,writer,birthaddr,birthfrommytable,title
->wheremytable.name=title.writerandtitle=a2;
+-------+--------+-----------+------------+
|title|writer|birthaddr|birth|
+-------+--------+-----------+------------+
|a2|abccs|china|1977-07-07|
+-------+--------+-----------+------------+
由于在MySQL中有如此众多的额外功能可选,诸如存储引擎等,你可以选择最适合你公司的一个,或者尝试选用多个引擎。MySQL开始非常小巧,但是可以随着公司的成长而不断地变强大。 |
|