羅德興老師的教學歷程檔案 - 111-2 三甲 ASP & DB - My SQL 實作練習
 

企業資訊與管理系
助理教授/日導
羅德興


歷程檔案 Portfolio

    My SQL 實作練習

     (p.s. 本教學內容主要取材自溫瑞烘教授教學網頁) 

    一、MySQL 基本操作


    1. 登入MySQL

    在命令模式下以最高管理權限登入
        mysql -u root -p
    接著會要求輸入密碼

    2. SHOW命令
    (1) SHOW DATABASES;   -- 顯示資料庫
    (2) SHOW TABLES [FROM <DATABASE NAME>]; --顯示TABLE

    3. 建立資料庫

    CREATE DATABASE [IF NOT EXISTS] <Database Name>
      [DEFAULT] CHARACTER SET charset_name
      [DEFAULT] COLLATE collate_name;

    4. 刪除資料庫

     

    DROP DATABASE [IF EXISTS] <Database Name>;

    5. 建立資料表命令CREATE TABLE

    CREATE [TEMPORARY]  TABLE [IF NOT EXISTS] <Table Name> [<Fields Structure>,...];
    例如建立一個學生基本資料表

    CREATE TABLE stmd (
        depart_class       char(6),            -- 班級代碼
        student_no          char(9),            -- 學號
        student_name    char(10),          -- 姓名
        address                varchar(100),  -- 地址
        primary key(student_no)            
    );

    6. 查詢資料表SELECT命令
    (1) 選擇全部欄位
       SELECT * FROM stmd;
    (2) 選擇某個欄位
       SELECT  stmd.depart_class,stmd.student_no,stmd.student_name,stmd.birth_date
             FROM stmd;
       SELECT  depart_class,student_no FROM stmd;
    (3) 選擇並排序
       SELECT * FROM stmd ORDER BY student_no;              -- 按學號由小至大
       SELECT * FROM stmd ORDER BY student_no ASC;     -- 按學號由小至大
       SELECT * FROM stmd ORDER BY student_no DESC;  -- 按學號由大至小
    (4) 加上where條件
       SELECT * FROM stmd WHERE student_no LIKE "%";           -- 選擇全部
       SELECT * FROM stmd WHERE student_no LIKE "98%";       -- 選擇98開頭者
       SELECT * FROM stmd WHERE student_no ="9414D001";   -- 選擇特定
    (5) 加上where條件與排序 
       SELECT * FROM stmd WHERE student_no LIKE "98%" 
            ORDER BY depart_class,student_no;;      

    7. 更新資料表UPDATE命令

    UPDATE stmd 
        SET depart_class="164D41",student_no="99999999",
                student_name="張三",birth_date="2010/01/01"
        WHERE STUDENT_NO="9414D001";

    8. 刪除資料表DELETE命令

    DELETE FROM stmd;  -- 刪除所有資料 要很小心使用

    DELETE FROM stmd WHERE student_no="9414D001";


    9. 新增至資料表INSERT命令
    INSERT INTO stmd VALUES('"164D31","9614D001,"張三","1986/01/01"); 

     

     二、建立MySQL資料庫與資料表

    MySQL – 何謂 Character Sets and Collations

    MySQL 是各開源架站系統最偏好的資料庫系統,使用資料庫不用說當然就是存取資料。在資料存取時,最重要的就是編碼問題,

    這是中文比英文麻煩之處。

    MySQL 有二個與編碼相關的設定:Character Sets (文字編碼)Collations (連線校對)。依據 MySQL 官方說明,此二者說明如下:

    Character Sets  Collations 的區別

    Character set 是一組符號及其編碼。舉例來說:有四個字元『A, B, a, b』,這些字元即所謂的符號 (symbols),而這些符號存在

    資料庫有特定的編碼方式
     (encodings)。譬如:’0′ 代表 A, ’1′ 代表B

    Collation 則是一組用來比較上述文字編碼的規則 (rules)。譬如:上述 A  B 進行比較,我們知道 A < B

    因為
     A 的編碼 0  B 的編碼 1 來得小,這是所謂的 二進位(binaray),此外還有 區分大小寫(case sensitive),
     
    與不區分大小寫(case insensitive)等。

    Character Sets  Collations 的設定

    MySQL預設的編碼與校對都是 Latin1,但對中文來說,比較適當的方式應該是 萬國碼utf8、繁體中文大五碼big5 或簡體中文 gb等,

    若想同時容納數種不同語言(繁體、簡體、日文等),
    utf8 是最佳選擇。

    可以使用
     show variables like "%character"』及『show variables like "%collation%"』查看資料庫設定。

    >show variables like "%character"

     

    變數名稱(variable_name)

    (value)

    character_set_client (前端)

    utf8

    character_set_connection (連線)

    utf8

    character_set_database(資料庫)

    utf8

    character_set_filesystem(檔案系統)

    binary

    character_set_results(查詢結果集)

    utf8

    character_set_server(伺服器)

    latin1

    character_set_system(作業系統)

    utf8

    character_sets_dir(所在目錄)

    /usr/share/mysql/charsets/

     

    collation 選擇 utf8-_general_cici 表示 case insensitive

     

    刪除資料庫 DROP DATABASE 資料庫名;

    語法:DROP DATABASE IF EXISTS db_name

     

    建立資料庫 CREATE DATABASE 資料庫名;

    語法:CREATE DATABASE db_name

     

    使用資料庫 USE 資料庫名;

    語法:USE db_name

     

    建立資料表

     CREATE TABLE 資料表名 (欄位資料型態欄位資料型態, ......);

    語法:

    CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] [select_statement] 

     

     

    作業有一資料如下,請利用三種介面並利用latinBig5、與UTF8三種字元編碼建立資料庫與資料表,解決碰到的問題

     

    班級代碼

    學號

    姓名

    地址

    164D21

    10014D001

    張中華

    台北市南港區研究院路3245

     

     命令列 建立MySQL 資料庫

        開始à執行àcmdà

           mysql -u root -p
           1234

    使用拉丁語系看看結果如何

    DROP DATABASE IF EXISTS mydb;  -- 刪除資料庫

    CREATE DATABASE mydb DEFAULT CHARACTER SET latin1; --建立資料庫 拉丁語系

    USE mydb;                    -- 使用資料庫

    SHOW CREATE DATABASE mydb;  -- 顯示建立資料庫

    CREATE TABLE stmd (            -- 建立資料表

      depart_class   CHAR(6)  COMMENT  '班級代碼',

      student_no     CHAR(9)  COMMENT  '學號',

      student_name   VARCHAR(20) COMMENT  '姓名',

      address        VARCHAR(60) COMMENT '地址'

    );

    INSERT INTO stmd VALUES("164D21","10014D001","張中華","台北市南港區研究院路3245");

    SELECT * FROM stmd;

     

    再使用Big5看看結果如何

    DROP DATABASE IF EXISTS mydb;  -- 刪除資料庫

    CREATE DATABASE mydb DEFAULT CHARACTER SET big5;  --建立資料庫 繁體中文

    USE mydb;                    -- 使用資料庫

    SHOW CREATE DATABASE mydb;  -- 顯示建立資料庫

    CREATE TABLE stmd (            -- 建立資料表

      depart_class   CHAR(6)  COMMENT  '班級代碼',

      student_no     CHAR(9)  COMMENT  '學號',

      student_name   VARCHAR(20) COMMENT  '姓名',

      address        VARCHAR(60) COMMENT '地址'

    );

    INSERT INTO stmd VALUES("164D21","10014D001","張中華","台北市南港區研究院路3245");

    SELECT * FROM stmd;

     

     

    再使用Utf8看看結果如何

    DROP DATABASE IF EXISTS mydb;  -- 刪除資料庫

    CREATE DATABASE mydb DEFAULT CHARACTER SET utf8;  --建立資料庫 繁體中文

    USE mydb;                    -- 使用資料庫

    SHOW CREATE DATABASE mydb;  -- 顯示建立資料庫

    CREATE TABLE stmd (            -- 建立資料表

      depart_class   CHAR(6)  COMMENT  '班級代碼',

      student_no     CHAR(9)  COMMENT  '學號',

      student_name   VARCHAR(20) COMMENT  '姓名',

      address        VARCHAR(60) COMMENT '地址'

    );

    INSERT INTO stmd VALUES("164D21","10014D001","張中華","台北市南港區研究院路3245");

    SELECT * FROM stmd;

     

     MyphpAdmin 建立MySQL 資料庫

    IE執行 http://localhost/PhpMyadmin

     

     HediSql 建立MySQL 資料庫

     

     請將整個建立的程序儲存在隨身碟或上傳至個人網路儲存空間,已備下次上課時可立即建立資料庫環境



    全部共 0則留言
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應