资源描述:
《mysql教程:多表操作和批处理方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MySQL教程:多表操作和批处理方法多表操作 在一个数据库中,可能存在多个表,这些表都是相互关联的。我们继续使用前面的例子。前面建立的表中包含了员工的一些基本信息,如姓名、性别、出生日期、出生地。我们再创建一个表,该表用于描述员工所发表的文章,内容包括作者姓名、文章标题、发表日期。 1、查看第一个表mytable的内容mysql>select*frommytable;+----------+------+------------+-----------+
2、name
3、sex
4、birth
5、birthaddr
6、+----------+------+------------+-
7、----------+
8、abccs
9、f
10、1977-07-07
11、china
12、
13、mary
14、f
15、1978-12-12
16、usa
17、
18、tom
19、m
20、1970-09-02
21、usa
22、+----------+------+------------+-----------+ 2、创建第二个表title(包括作者、文章标题、发表日期)mysql>createtabletitle(writervarchar(20)notnull,->titlevarchar(40)notnull,->senddatedate); 向该表中填加记录,最后表的内容如下:mysql>select*fromtitle;
23、+--------+-------+------------+
24、writer
25、title
26、senddate
27、+--------+-------+------------+
28、abccs
29、a1
30、2000-01-23
31、
32、mary
33、b1
34、1998-03-21
35、
36、abccs
37、a2
38、2000-12-04
39、
40、tom
41、c1
42、1992-05-16
43、
44、tom
45、c2
46、1999-12-12
47、+--------+-------+------------+5rowsinset(0.00sec) 3、多表查询 现在我们有了两个表:mytable和title。利用这两个表我们可以进行组合查询:例如我们
48、要查询作者abccs的姓名、性别、文章:mysql>SELECTname,sex,titleFROMmytable,title->WHEREname=writerANDname=′abccs′;+-------+------+-------+
49、name
50、sex
51、title
52、+-------+------+-------+
53、abccs
54、f
55、a1
56、
57、abccs
58、f
59、a2
60、+-------+------+-------+上面例子中,由于作者姓名、性别、文章记录在两个不同表内,因此必须使用组合来进行查询。必须要指定一个表中的记录如何与其它表中的记录进行匹配。 注意:如果第二个表t
61、itle中的writer列也取名为name(与mytable表中的name列相同)而不是writer时,就必须用mytable.name和title.name表示,以示区别。 再举一个例子,用于查询文章a2的作者、出生地和出生日期:mysql>selecttitle,writer,birthaddr,birthfrommytable,title->wheremytable.name=title.writerandtitle=′a2′;+-------+--------+-----------+------------+
62、title
63、writer
64、birthaddr
65、bir
66、th
67、+-------+--------+-----------+------------+
68、a2
69、abccs
70、china
71、1977-07-07
72、+-------+--------+-----------+------------+ 修改和备份、批处理 有时我们要对数据库表和数据库进行修改和删除,可以用如下方法实现: 1、增加一列: 如在前面例子中的mytable表中增加一列表示是否单身single: mysql>altertablemytableaddcolumnsinglechar(1); 2、修改记录 将abccs的single记录修改为“y”: my
73、sql>updatemytablesetsingle=′y′wherename=′abccs′; 现在来看看发生了什么:mysql>select*frommytable;+----------+------+------------+-----------+--------+
74、name
75、sex
76、birth
77、birthaddr
78、single
79、+----------+------+------------+-----------+--------+
80、abccs
81、f
82、1977-07-07
83、china
84、y
85、
86、mary
87、f