<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    學習MySQL多表操作和備份處理

    Posted on 2006-06-08 16:23 semovy 閱讀(285) 評論(0)  編輯  收藏 所屬分類: My SQL數據庫方面
    多表操作

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

    ????1、查看第一個表mytable的內容:

    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)建第二個表title(包括作者、文章標題、發(fā)表日期):

    mysql> create table title(writer varchar(20) not null, 
    -> title varchar(40) not null, 
    -> senddate date); 
    &nbsp;&nbsp;&nbsp;&nbsp;向該表中填加記錄,最后表的內容如下: 
    <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、多表查詢

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

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


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

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

    ????再舉一個例子,用于查詢文章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 | 
    +-------+--------+-----------+------------+


    ????修改和備份、批處理
    ????有時我們要對數據庫表和數據庫進行修改和刪除,可以用如下方法實現:

    ????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′; ????現在來看看發(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、增加記錄
    ????前面已經講過如何增加一條記錄,為便于查看,重復與此:

    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給出的條件的一條記錄。
    ????再顯示一下結果:

    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的名字;
    ????可以刪除一個或多個表,小心使用。

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

    ????7、數據庫的備份:
    ????退回到DOS:
    ????mysql> quit
    ????d:mysqlbin

    ????使用如下命令對數據庫abccs進行備份:
    ????mysqldump --opt abccs>abccs.dbb
    ????abccs.dbb就是你的數據庫abccs的備份文件。

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

    ????首先建立一個批處理文件mytest.sql,內容如下:

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


    ????在DOS下運行如下命令:d:mysqlbin mysql < mytest.sql

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

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

    ????我們還可以將結果輸出到一個文件中: mysql < mytest.sql > mytest.out
    主站蜘蛛池模板: 色哟哟国产精品免费观看| 国产福利在线免费| 亚洲另类古典武侠| 日韩在线看片免费人成视频播放| 精品久久久久久亚洲中文字幕 | 四虎影视精品永久免费| 久久一区二区免费播放| 2020国产精品亚洲综合网| 久久精品国产亚洲AV不卡| 欧洲乱码伦视频免费| 国产日韩久久免费影院| 亚洲国产综合精品中文第一| 亚洲熟女少妇一区二区| 在线a人片天堂免费观看高清| 嫩草影院在线播放www免费观看| 午夜亚洲WWW湿好爽| 亚洲精选在线观看| 亚洲午夜无码片在线观看影院猛| 国产大片免费网站不卡美女| 精品多毛少妇人妻AV免费久久| 亚洲一区二区三区深夜天堂| 亚洲真人无码永久在线| 免费看少妇作爱视频| 久久国产乱子伦免费精品| 日本高清免费中文在线看| 国产成人精品日本亚洲专| 亚洲网址在线观看你懂的| 久久精品国产精品亚洲人人 | 亚洲色欲一区二区三区在线观看 | 中文字幕亚洲一区二区三区 | 亚洲精品乱码久久久久久蜜桃不卡| 无人影院手机版在线观看免费 | 国产免费久久久久久无码| 99亚洲精品卡2卡三卡4卡2卡| 亚洲欧洲国产视频| 久久精品国产精品亚洲蜜月 | 美女羞羞视频免费网站| 久久亚洲精品国产亚洲老地址 | 曰韩亚洲av人人夜夜澡人人爽| 国产成人啪精品视频免费网| 无人影院手机版在线观看免费|