<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 0, comments - 77, trackbacks - 0, articles - 356
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    多表操作

    ????在一個(gè)數(shù)據(jù)庫中,可能存在多個(gè)表,這些表都是相互關(guān)聯(lián)的。我們繼續(xù)使用前面的例子。前面建立的表中包含了員工的一些基本信息,如姓名、性別、出生日期、出生地。我們?cè)賱?chuàng)建一個(gè)表,該表用于描述員工所發(fā)表的文章,內(nèi)容包括作者姓名、文章標(biāo)題、發(fā)表日期。

    ????1、查看第一個(gè)表mytable的內(nèi)容:

    mysql> select * from mytable; 
    +----------+------+------------+-----------+ 
    | name | sex | birth | birthaddr | 
    +----------+------+------------+-----------+ 
    | abccs |f | 1977-07-07 | china | 
    | mary |f | 1978-12-12 | usa | 
    | tom |m | 1970-09-02 | usa | 
    +----------+------+------------+-----------+


    ????2、創(chuàng)建第二個(gè)表title(包括作者、文章標(biāo)題、發(fā)表日期):

    mysql> create table title(writer varchar(20) not null, 
    -> title varchar(40) not null, 
    -> senddate date); 
    &nbsp;&nbsp;&nbsp;&nbsp;向該表中填加記錄,最后表的內(nèi)容如下: 
    <ccid_nobr>
    <table width="400" border="1" cellspacing="0" cellpadding="2" 
     bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
    <tr>
        <td bgcolor="e6e6e6" class="code" style="font-size:9pt">
        <pre><ccid_code>  mysql> select * from title; 
    +--------+-------+------------+ 
    | 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 | 
    +--------+-------+------------+ 
    5 rows in set (0.00sec)


    ????3、多表查詢

    ????現(xiàn)在我們有了兩個(gè)表: mytable 和 title。利用這兩個(gè)表我們可以進(jìn)行組合查詢:
    ????例如我們要查詢作者abccs的姓名、性別、文章:

    mysql> SELECT name,sex,title FROM mytable,title 
    -> WHERE name=writer AND name=′abccs′; 
    +-------+------+-------+ 
    | name | sex | title | 
    +-------+------+-------+ 
    | abccs | f | a1 | 
    | abccs | f | a2 | 
    +-------+------+-------+


    ????上面例子中,由于作者姓名、性別、文章記錄在兩個(gè)不同表內(nèi),因此必須使用組合來進(jìn)行查詢。必須要指定一個(gè)表中的記錄如何與其它表中的記錄進(jìn)行匹配。

    ????注意:如果第二個(gè)表title中的writer列也取名為name(與mytable表中的name列相同)而不是writer時(shí),就必須用mytable.name和title.name表示,以示區(qū)別。

    ????再舉一個(gè)例子,用于查詢文章a2的作者、出生地和出生日期:

    mysql> select title,writer,birthaddr,birth from mytable,title 
    -> where mytable.name=title.writer and title=′a2′; 
    +-------+--------+-----------+------------+ 
    | title | writer | birthaddr | birth | 
    +-------+--------+-----------+------------+ 
    | a2 | abccs | china | 1977-07-07 | 
    +-------+--------+-----------+------------+


    ????修改和備份、批處理
    ????有時(shí)我們要對(duì)數(shù)據(jù)庫表和數(shù)據(jù)庫進(jìn)行修改和刪除,可以用如下方法實(shí)現(xiàn):

    ????1、增加一列:
    ????如在前面例子中的mytable表中增加一列表示是否單身single:
    ????mysql> alter table mytable add column single char(1);

    ????2、修改記錄
    ????將abccs的single記錄修改為“y”:
    ????mysql> update mytable set single=′y′ where name=′abccs′; ????現(xiàn)在來看看發(fā)生了什么:

    mysql> select * from mytable; 
    +----------+------+------------+-----------+--------+ 
    | name | sex | birth | birthaddr | single | 
    +----------+------+------------+-----------+--------+ 
    | abccs |f | 1977-07-07 | china | y | 
    | mary |f | 1978-12-12 | usa | NULL | 
    | tom |m | 1970-09-02 | usa | NULL | 
    +----------+------+------------+-----------+--------+


    ????3、增加記錄
    ????前面已經(jīng)講過如何增加一條記錄,為便于查看,重復(fù)與此:

    mysql> insert into mytable 
    -> values (′abc′,′f′,′1966-08-17′,′china′,′n′); 
    Query OK, 1 row affected (0.05 sec)


    查看一下:

    mysql> select * from mytable; 
    +----------+------+------------+-----------+--------+ 
    | name | sex | birth | birthaddr | single | 
    +----------+------+------------+-----------+--------+ 
    | abccs |f | 1977-07-07 | china | y | 
    | mary |f | 1978-12-12 | usa | NULL | 
    | tom |m | 1970-09-02 | usa | NULL | 
    | abc |f | 1966-08-17 | china | n | 
    +----------+------+------------+-----------+--------+


    ????4、刪除記錄
    ????用如下命令刪除表中的一條記錄:mysql> delete from mytable where name=′abc′;
    ????DELETE從表中刪除滿足由where給出的條件的一條記錄。
    ????再顯示一下結(jié)果:

    mysql> select * from mytable; 
    +----------+------+------------+-----------+--------+ 
    | name | sex | birth | birthaddr | single | 
    +----------+------+------------+-----------+--------+ 
    | abccs |f | 1977-07-07 | china | y | 
    | mary |f | 1978-12-12 | usa | NULL | 
    | tom |m | 1970-09-02 | usa | NULL | 
    +----------+------+------------+-----------+--------+


    ????5、刪除表:
    ????mysql> drop table ****(表1的名字),***表2的名字;
    ????可以刪除一個(gè)或多個(gè)表,小心使用。

    ????6、數(shù)據(jù)庫的刪除:
    ????mysql> drop database 數(shù)據(jù)庫名;
    ????小心使用。

    ????7、數(shù)據(jù)庫的備份:
    ????退回到DOS:
    ????mysql> quit
    ????d:mysqlbin

    ????使用如下命令對(duì)數(shù)據(jù)庫abccs進(jìn)行備份:
    ????mysqldump --opt abccs>abccs.dbb
    ????abccs.dbb就是你的數(shù)據(jù)庫abccs的備份文件。

    ????8、用批處理方式使用MySQL:

    ????首先建立一個(gè)批處理文件mytest.sql,內(nèi)容如下:

    use abccs; 
    select * from mytable; 
    select name,sex from mytable where name=′abccs′;


    ????在DOS下運(yùn)行如下命令:d:mysqlbin mysql < mytest.sql

    ????在屏幕上會(huì)顯示執(zhí)行結(jié)果。

    ????如果想看結(jié)果,而輸出結(jié)果很多,則可以用這樣的命令: mysql < mytest.sql | more

    ????我們還可以將結(jié)果輸出到一個(gè)文件中: mysql < mytest.sql > mytest.out
    主站蜘蛛池模板: 午夜神器成在线人成在线人免费 | 99久久99这里只有免费的精品| 久久久久久久亚洲精品| 99re6在线视频精品免费| 亚洲三级视频在线| 亚洲国产电影av在线网址| 日韩av无码久久精品免费| 亚洲av成本人无码网站| 亚洲av午夜福利精品一区| 成人毛片18岁女人毛片免费看| eeuss草民免费| 亚洲av日韩av无码av| 亚洲五月综合缴情在线观看| 久草在视频免费福利| 老司机精品免费视频| 国产精品亚洲综合| 亚洲国产精品福利片在线观看| 成人免费无码视频在线网站| a级毛片无码免费真人久久| 国产精品亚洲专区在线观看| 亚洲国产精品一区第二页| 成人永久福利免费观看| 99久久久国产精品免费蜜臀| 无码 免费 国产在线观看91 | 两性色午夜视频免费网| 亚洲一线产区二线产区区| 亚洲成av人片在线观看无码不卡| 国产无遮挡裸体免费视频| 69av免费视频| 永久免费AV无码网站国产| 羞羞网站在线免费观看| 亚洲免费中文字幕| 拨牐拨牐x8免费| 日本卡1卡2卡三卡免费| 一区二区免费电影| 亚洲欧美成aⅴ人在线观看| 亚洲性一级理论片在线观看| 亚洲成AV人片在线播放无码| 亚洲一级片内射网站在线观看| 日本无卡码免费一区二区三区| 无码中文字幕av免费放|