gioi thieu my sql

Upload: nhungntp

Post on 07-Jul-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Gioi Thieu My SQL

    1/25

    Mv SOL Introduction (sưu tầm)

    GI I THIỆU MySQL

     Nội dung1. Chuẩn b ị . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12. Khỏi động và t ắt MySQL Ser ver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. Quản tr ị MỵSQL với MySQL Admi ni st r at or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14. Truy vấn vói MySQL Query Br owser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    5. Ki ểu dữ l i ệu t r ong MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86. Tạo CSDL t r ongMySQL Admi ni st r at or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137. Tạo Bảng t r ongMySQL Admi ni st r at or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148. Tạo khóa c hi nh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169. Tạo khóa ngoại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1810. I nser t dữ l i ệu vào bảng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    1.Chuẩn bị

    MySQL có hai phi ên chi nh l à MySQL Ent er pr i se và MỵSQL Communi t yServer . Tr ong phần t hực hành này t a chọn MySQL Communi t y Ser verphi ên bản 5. 0. 45 và MySQL GUI Tool s phi ên bản 5. 0. 12 t ạiht t p:/ / dev. mysql .com/ downl oads.

    2.Khởi đ ng và tắt MySQL Server

    Để khởi động MySQL Ser ver t a có t hể dùng một t r ong hai cách sau:a. MySQL Server sẽ t ự động khởi động ngay sau khi khởi động Wi ndows

    nếu t r ong quá t r ì nh cài đặt t a chọn t hi ết l ập cài đặt MỵSQL nhưl à một dị ch vụ của Wi ndows.

    b. Sử dụng l ệnh mysql d- nt như sau:• Mở cửa sổ dòng l ệnh Command Pr ompt bằng:

    + St ar t -» Al l Progr ams ->Access or i es -+CommandPr omt hoặc

    + St ar t ->Run và t hực t hi l ệnh cmd.• Từ cửa sổ dòng l ệnh t hực hi ện l ệnh mysql d- nt [ opt i ons] Tr ong đó [ opt i ons] l à các t ùy chọn khởi động cho MySQLServer . Để xem đầy đủ nội dung các t ùy chọn t a sử dụngmysql d- nt - verbose - hel p. Nếu khởi động với các opt i ons mặcđị nh t hì chỉ dùng l ệnh mysql d- nt , khi đó các opt i ons sẽ đượcl ấy t r ong t ập t i n cấu hì nh my. i ni t r ong t hư mục cài đặt MySQLhoặc t hư mục Wi ndows của hệ t hống.

    Để t ắt MỵSQL Server t a sử dụng l ệnh mysql admi n như sau:• Mở cửa sổ dòng l ệnh Command Pr ompt .• Từ cửa sổ dòng l ệnh t hực hi ện l ệnh mysql admi n - u r oot

    shut down.

    3.Quản trị MySQL với MySQL Administrator

    Để dễ dàng t ạo các cơ sờ dữ l i ệu chúng t a có t hể sử dụng công cụhổ t r ợ quản t r ị MySQL Ser ver gọi l à MySQL Admi ni st r at or . Sau khi

    Trang: 1

    http://dev.mysql.com/downloadshttp://dev.mysql.com/downloads

  • 8/18/2019 Gioi Thieu My SQL

    2/25

    Mv SOL Introduction (su'u tam)

    chắc chắn MySQL Ser ver đã được khởi động, t a sẽ khởi động MySQLAdmi ni st r at or bằng cách chọn st ar t -> Al l Pr ogr ams -» MySQL -t  MySQLAdmi ni st r at or . Cửa sổ đăng nhập MySQL Admi ni st r at or xuất hi ện( Hì nh 1. 1) .

    Gi ả sử MySQL Ser ver được cài đặt t r ên máy đơn mà t a đang sử dụng.Để kết nối với MỵSQL Ser ver t a cần các t hông số sau cơ bản sau:

    Ser ver Host: l ocal hostPor t : 3306User name: r ootPassword:

    Sau đó nhấp chuột vào nút OK. Nếu kết nối t hành công cửa sổ chi nhcủa MySQL Admi ni st r at or sẽ xuất hi ện ( Hì nh 1. 2) .

    Để t ạo cơ sở dữ l i ệu t a chọn mục Cat al ogs t r ong phần bên t r ái củacửa sổ chi nh. Nhấp chuột phải vào phần ờ góc t r ái dưói của cửa sổchỉ nh và chọn Creat e New Schema, chú ý t r ong MySQL một cơ sở dữl i ệu còn được gọi l à Schema. Hộp t hoại Cr eat e New Schema xuất hi ện( Hì nh 1. 3) và yêu cầu t a nhập vào Schema name, t ên của cơ sở dữl i ệu cần t ạo.

    MySQL Administrator 1 .2.12

    Connect to MySQL Server Instance

    Stored Connection:

    Server Host:

    Username:

    Password:

    Port: 33ŨS

    Details >> OK  Clear Cancel

    Hình 1.1: Cửa sổ đăng nhập MySQL Administrator 

    Trang: 2

  • 8/18/2019 Gioi Thieu My SQL

    3/25

    Mv SOL Introduction (sifu tarn)

    *MySQL Administrator - Connection: Luong's ConnectionFile E dt View T ools Window MySQL Enterprise Help

     W Sc i vc i Irrfomwtiun

    Service Control

    Startup Variables

    A 3 User Administration

    Server Connections

    Health

    Server Logs

    £   Replication Status^ Backup

    ^4   Restore

    information_schema

    mysql

    test

    Select a schema to display Ihe assets.

    Create new Schema

    Please enter a name for the new schema.

    Schema name:

    OK Cancel

    Hình 1.3: Hộp thoại Create New Schema

    Gi ả sử t a tạo một cơ sở dữ l i ệu có t ên l à CSDL_Congt y, khi đóSchema csdl _congt y sẽ xuất hi ện t r ong danh sách các Schema ở góct r ái dưới của cửa sổ chi nh.

    Để t ạo mới , chi nh sửa, xóa các quan hệ (bảng) của một cơ sờ dữl i ệu, t a nhấp chuột để chọn cơ sở dữ l i ệu ( schema) t r ong danh sáchschema. Tr ong phần bên phải của cửa sổ chi nh sẽ xuất hi ện mụcSchema Tabl es cho phép thực hi ện vi ệc t ạo, hi ệu chỉ nh và xóa quanhệ ( Hì nh 1. 4) .

    Trang: 3

  • 8/18/2019 Gioi Thieu My SQL

    4/25

    Mv SOL Introduction (sưu tầm)

    *MySQL Administrator Connection: Luong’s Connection   E H T3 EFie Edit View Took Window MySQL Enterprise Help

    Seivof Information

    ' . Service Control

    J Startup Variables¿ 3 User Administration

    Server Connections

    V j Heallh

    Server Logs

    Replication Status

    Backup

    L,^ j Restore

    !̂ / Catalogs

    information_schema

     J roysq!lest

    Schema Tables Schema Indices Views S toted procedures

    — csld_conglyJ AI tables of the csỉd_congty schema

    Table Name ■' Engine D ata len . Index len... u pda te time

    [itoị~Create T

    0 IData Len

    Edt Table

    OB I Index Len

    Maintenance

    Hình 1.4: Cửa sổ chính với mục Schema Tables

    Reset mật khẩu của root trên Windows:

    vào Star t - > Run - > gõCode:ser vi ces. mscEnt er Tì m servi ces MySQL và st op l ại

    sau đó t ì m t hư mục cài đặt mySQL gi ả sử C: \ mySQLVào St ar t - > Run - > gõCode:

    cmdEnter.ta vào t hư mục bi nCode:cd C: \ mysql \ bi nvà gõ l ệnhCode:c : \ mySQL\ bi n\ >mysql d- nt —ski p- grant - t abl esGi ữ nguyên cửa số đó và mờ t hêm 1 cửa sổ command móivào bi n và gõ l ệnhCode:c : \ mySQT.\bi n\>rmysql -11  root.khi đó sẽ l ogi n vào root mà không cần password.Để Reset passwor d root t a dùng l ệnhCode:mysql >use mỵsql ; updat e user set Passwor d=PASSWORD(' new_pass') WHEREUser =' r oot ' ; FLUSH PRI VI LEGES;t rong đó new_pass chi nh l à password của bạn.

    Trang: 4

  • 8/18/2019 Gioi Thieu My SQL

    5/25

    Mv SOL Introduction (sưu tầm)

    4.Truy vấn vởi MySQL Query Browser

    MySQL Quer y Br owser cho phép ta t hực hi ện các l ệnh t r uy vấn cơ sởdữ l i ệu. Để sử dụng MySQL Quer y Br owser t a khởi động nó từ st ar t -»Al l Pr ogr ams -» MySQL -» MySQL Quer y Br owser . Khi đó cửa sổ đăngnhập MỵSQL Quer y Br owser xuất hi ện ( Hì nh 1. 5) .

    MySQL Query Browser 1 .2.12  ><

    Connect to MySQL Server Instance

    Stored Connection:

    Server Host:

    Username:

    Password:

    Default Schema:

    g Port: 330S

    Details » OK   Clear Cancel

    Hình 1.5: Cửa sổ đăng nhập MySQL Query Browser 

    Gi ả sử MySQL Ser ver được cài đặt t r ên máy đơn mà t a đang sù dụng. Ta cũng nhập vào các t hông số cơ bản t ương t ự khi kết nối MySQLAdmi ni st r at or với MySQL Ser ver :

    Ser ver Host: l ocal hostUser name: r ootPassword:

     Tr ong mục Def aul t Schema phải nhập vào t ên cơ sở dữ l i ệu mà t amuốn thực hi ện các t r uy vấn t r ên đó. Sau đó nhấp chuột vào nút OKvà cửa sổ chỉ nh của MySQL Query Br owser sẽ xuất hi ện ( Hì nh 1. 6) .

    Cửa sổ chi nh của MỵSQL Query Br owser gồm các t hành phần cơ bảnsau.c. Công c truy vấn - Query Toolbar 

    Nơi để soạn t hảo và t hực t hi các t r uy vấn. Gồm có 3 nút dichuyển (Go back, Next , Ref r esh) , vùng soạn t hảo t r uy vấn, 2 nútchức năng ( Execut e, s t op) .• Các nút di chuyển

    Dùng để duyệt danh mục các l ệnh t r uy vấn đã được t hực t hi .Chỉ các l ệnh t r uy vấn không xảy ra l ỗi mới được l ưu vào danhmục. Nút Go back  chuyển về nhóm l ệnh t r uỵ vấn đã thực t hi

    Trang: 5

  • 8/18/2019 Gioi Thieu My SQL

    6/25

    Mv SOL Introduction (sưu tầm)

    ngay t r ước nhóm l ệnh hi ện đang có t r ong vùng soạn thảo t r uỵvấn. Nút Next  chuyển đến nhóm l ệnh t r uy vấn đã t hực t hi ngaysau nhóm l ệnh hi ện đang có t r ong vùng soạn t hảo t r uy vấn. NútRefresh  t hực t hi l ại nhóm l ệnh t r uy vấn đã được t hực t hi gầnnhất .

    • Vùng soạn t hảo t r uy vấn

    Dùng hi ển t hị và soạn t hảo các l ệnh t r uy vấn. vùng này mặcđị nh có 3 dòng và có t hể được mở r ộng l ên t ối đa 10 dòng. Nếucác t r uy vấn dài hơn 10 dòng t hì t hanh cuộnsẽ xuấthi ện. Đểt ăng t ối đa kí ch t hước vùng soạn t hảo dùng vi ew ->Maxi mi zeQuer y Edi t hoặc gõ phi m F11.

    • Các nút chức năngDùng để t hực t hi hoặc dừng các l ệnh t r uy vấn. Nút Execute dùng để t hực t hi các l ệnh t r uy vấn hi ện t hời t r ong vùng soạnt hảo. Nút Stop  dùng để chấm dứt các l ệnh t hực t hi nếu vi ệct hực t hi xảy ra quá l âu mà chưa cho ra kết quả.

    Để l ưu l ại các câu l ệnh t r uy vấn đã t hực t hi vào t ậpt i n dùngFi l e -> Save As . Sau đót a chọn ki ểu t ập t i n để l ưu l à SQLScr i pt F i l e ANSI ( * . sql ) .

    ' MySQl Query Browser - Connection: 1uong's Connection /csdf_congty jn.

    d. Công c truy vấn - Query Toolbar 

    Nơi để soạn t hảo và t hực t hi các t r uy vấn. Gồm có 3 nút dichuyển ( Go back, Next , Ref r esh) , vùng soạn t hảo t r uy vấn, 2 nútchức năng ( Execut e, s t op) .

    Trang: 6

  • 8/18/2019 Gioi Thieu My SQL

    7/25

    Mv SOL Introduction (sưu tầm)

    •  Các nút di chuyểnDùng để duỵệt danh mục các l ệnh t r uy vấn đã được t hực t hi .Chỉ các l ệnh t r uy vấn không xảy ra l ỗi mới được l ưu vào danhmục. Nút Go back chuyển về nhóm l ệnh t r uy vấn đã t hực t hingay t r ước nhóm l ệnh hi ện đang có t r ong vùng soạn thảo t r uỵvấn. Nút Next  chuyển đến nhóm l ệnh t r uỵ vấn đã t hực t hi ngaysau nhóm l ệnh hi ện đang có t r ong vùng soạn thảo t r uy vấn. NútRefresh

      t hực t hi l ại nhóm l ệnh t r uy vấn đã được t hực t hi gầnnhất .

    • Vùng soạn t hảo t r uy vấnDùng hi ển t hị và soạn t hảo các l ệnh t r uy vấn. vùng này mặcđị nh có 3 dòng và có t hể được mở r ộng l ên t ối đa 10 dòng. Nếucác t r uy vấn dài hơn 10 dòng t hì t hanh cuộn sẽ xuất hi ện. Đểt ăng t ối đa kí ch thước vùng soạn thảo dùng vi ew -> Maxi mi zeQuer y Edi t hoặc gõ phỉ m F11.

    • Các nút chức năngDùng để t hực t hi hoặc: dừng các l ệnh t r uy vấn. Nút Execute dùng để t hực t hi các l ệnh t r uy vấn hi ện t hời t r ong vùng soạnt hảo. Nút Stop  dùng để chấm dứt các l ệnh t hực t hi nếu vi ệct hực t hi xảy ra quá l âu mà chưa cho ra kết quả.

    Để l ưu l ại các câu l ệnh t r uy vấn đã thực t hi vào t ập t i n dùngFi l e -► Save As. Sau đó ta chọn ki ểu t ập t i n để l ưu l à SQL Scr i ptFi l e ANSI ( * . sql ) .

    e. Vùng hiển thị kết quả truy vấn - Result Area Nơi hi ển t hị kết quả của các l ệnh t r uy vấn.

    f. Vùng duyệt đối tượng - Object Browser 

    Nơi l i ệt kê và cho phép l ựa chọn cơ sờ dữ l i ệu, quản l ý bookmar kvà danh mục các câu l ệnh t r uy vấn đã được t hực hi ện.

     Tr ì nh duyệt cơ sở dữ l i ệu, t hẻ Schemat a, l à t hành phần chỉ nh củavùng duyệt đối t ượng. Ta có t hể chọn các quan hệ và các t huộct ĩ nh của quan hệ, có t hể hi ệu chỉ nh, hủy và t ạo bảng, có t hể hủyvà tạo cơ sở dữ l i ệu. Ta cũng có t hể l ựa chọn cơ sở dữ l i ệu mặcđị nh để thực hi ện các t r uy vấn t r ên cơ sở dữ l i ệu đó.

    Cơ sở dữ l i ệu mặc đị nh l uôn được t ô đậm, để t hay đổi cơ sở dữl i ệu mặc đị nh nhấp chuột phải vào cơ sở dữ l i ệu muốn đổi và chọnMake Def aul t Schema.

    g. Vùng duyệt thông tin - Information Browser 

    Nơi cho phép t ham khải nhanh các t hông t i n về cú pháp các l ệnh,cách sử dụng các t oán tử và các hàm có sẵn t r ong MySQL.

    h. Vùng soạn thảo script - Script Editor 

    Trang: 7

  • 8/18/2019 Gioi Thieu My SQL

    8/25

    Mv SOL Introduction (sưu tầm)

    Nơi để soạn t hảo các nhóm l ệnh t r uy vấn l ớn. vùng này nằm t r ongmột t hẻ r i êng bi ệt t r ong vùng hi ển t hị kết quả t r uy vấn. Khivùng này xuất hi ện, công cụ Advanced Tool bar xuất hi ện và t hayt hế Quer y Tool bar .

    Để t ạo vùng soạn t hảo mới dùng Fi l e -» New Scr i pt Tab. Để l ưu l ạinội dung t r ong vùng soạr. t hảo dùng Fi l e -» Save As và chọn ki ểu

    t ập t i n để l ưu l à SQL Scri pt Fi l e ANSI ( *. sql ) .Các nút chức năng gỡ l ỗi của công cụ Advanced Tool bar có thể sửdụng với Scr i pt Edi t or gồm:• Execute:  t hực t hi t ất cả các l ệnh t r uy vấn t r ong vùng soạn

    t hảo.• Continue : t hực t hi l ệnh t r uy vấn đầu t i ên ( hoặc l ệnh t r uy vấn

    t ại vị t r í con t rỏ) và kết t húc khi xảy ra l ỗi hoặc gặp mộtđi ểm gãy ( br eak poi nt ) .

    • Step: t hực t hi l ệnh t r uy vấn kế t i ếp.• Pause: dừng vi ệc t hực t hi và t ô đậm l ệnh sẽ được t hực thi kế

    t i ếp.• Stop: dừng vi ệc t hực t hi .

    5.Kiểu dữ liệu trong MySQL

    i . Các kiểu sốMySQL hổ t r ợ t ất cả các ki ểu số của SLQ chuẩn gồm các ki ểu sốchỉ nh xác ( I NTEGER, SMAL1I NT, DECI MAL và NUMERI C) và các ki ểu sốgần đúng ( FLOAT, REAL và DOUBLE PRECI SI ON) . I NT l à vi ết t ắt củaI NTEGER và DEC l à vi ết t ắt của DECI MAL.

    Ngoài ra, MySQL cũng hổ t r ợ các ki ểu số của SQL mở r ộng l à TI NYI NT, MEDI UMI NT va BI GI NT. Bảng 1. 1 l i ệt kê kí ch t hước vàphạm vi của các ki ểu số.

    Kiểu Ki ch thước (Bytes)

    Giá trị nhỏ nhất (Dấu / Không dấu)

    Giá trị lớn nhất (Dấu / không dấu)

     TI NYI NT 1 - 128 127

    0 255

    SMALLI NT 2 - 32, 768 32, 767

    0 65, 535

    MEDI UMI NT 3 - 8, 308, 608 0, 300, 607

    0 16, 777, 215

    I NT 4 - 2, 147, 483, 648 2, 147, 483, 647

    0 4, 294, 967, 295

    BI GI NT 89, 223, 372, 036, 854, 775

    9, 223, 372, 036, 854, 775, 807

    Trang: 8

  • 8/18/2019 Gioi Thieu My SQL

    9/25

    Mv SOL Introduction (sưu tầm)

    , 808

    0 18, 446, 744, 073, 709, 551, 615

    Bảng 1. 1: Kí ch thước và phạm vi của các ki ểu số

    Với ki ểu số gần đúng MỵSQL dùng 4 bỵt es bi ểu di ễn gi á t r ị gần

    đúng và 8 bỵt es bi ểu di ễn gi á t r ị chí nh xác. Ki ểu FLOAT vàDOUBLE dùng để bi ểu di ễn ki ểu số gần đúng. Ki ểu số gần đúng vớiđộ chi nh xác t ừ 0 - 2 3 chữ số được bi ểu di ễn bằng ki ểu FLOAT vàđộ chí nh xác t ừ24 - 53 chữ số được bi ểu di ễn bằng ki ểu DOUBLE.

    MySQL cũng cho phép bi ểu di ễn độ chi nh xác của ki ểu gần đúng vớicu pháp FLOAT(M, D) , REAL(M, D) và DOUBLE PRECI SI ON(M, D) với Ml à t ổng số chữ số và D l à số chữ số phần t hập phân, vỉ dụ,FLOAT (7,4) bi ễu di ễn số chữ số có dạng - 999. 9999. MySQL cũngl àm t r òn số khi l ưu tr ữ. vi dụ, nếu gi á t r ị l à 999. 00009 vóiki ểu FL OAT(7, 4) sẽ được l àm t r òn t hành 999. 0001.

    Ki ểu DOUBLE PRECI SI ON t r ong SQL mở r ộng cũng tương đưong vớiki ểu DOUBLE.

     j . Kiểu thời gianCác ki ểu ngày t háng và gi ờ dùng để bi ểu di ễn các gi á t r ị t hờigi an l à DATETI ME, DATE, TI MESTAMP, TI ME và YEAR. Mỗi ki ểu t hờigi an có một vùng gi á t r ị hợp l ệ và một gi á tr ị gọi l à zer o dùngđể chỉ một gi á t r ị không hợp l ệ mà MỵSQL không t hể bi ểu di ễn.Ki ch t hước của các ki ểu t hời gi an được cho t r ong Bảng 1. 2.

    Kiểu Ki ch thước (Bytes)

    DATE 3

     TI ME 3

    DATETI ME 8

     TI MESTAMP 4

     YEAR 1

    Bảng 1. 2: Kí ch t hước của các ki ểu t hời gi an

    Các chú ý khi sử dụng các ki ểu t hời gi an:• MySQL khôi phục các gi á t r ị của ki ểu ngày hoặc gi ờ t heo một

    đị nh dạng xuất chuẩn, nhưng có thể hi ểu nhi ều đị nh dạng chocác gi á t r ị nhập.

    • Các ki ểu ngày t háng với gi á t r ị có năm l à hai chữ số gây ra

    Trang: 9

  • 8/18/2019 Gioi Thieu My SQL

    10/25

    Mv SOL Introduction (sưu tầm)

    sự nhập nhằng vì t hành phần t hi ên ni ênkỷ không được xác đị nhcụ t hể. MySQL hi ểu các gi á t r ị có năml à hai chữ số t heo quyt ắc sau:+ Gi á t r ị của năm t ừ 70 - 99 đuợc hi ểul à t ừ 1970 - 1999.+ Gi á t r ị của năm t ừ 00 - 69 được hi ểul à t ừ 2000 - 2069.

    • Mặc dù MySQL có t hể hi ểu các gi á t r ị t heo nhi ều đị nh dạng,

    nhưng gi á t r ị của các ki ểu ngày t háng phải l uôn được nhập vàot heo t hứ t ự năm- t háng- ngày. vỉ dụ, 98- 09- 04 l à ngày 04 t háng0 9 năm 1998.

    • MySQL t ự động chuyển một gi á t r ị ki ểu ngày t háng hoặc gi ờt hành một số nếu gi á t r ị được dùng ở dạng số và nguợc l ại .

    • Khi MySQL gặp phải một gi á t r ị ki ểu ngày tháng hoặc gi ờ nằmngoài phạm vi bi ểu di ễn hoặc không hợp l ệ, nó sẽ chuyển gi át r ị này t hành gi á t r ị zer o ứng với ki ểu t ương ứng. Ri êng gi át r ị nằm ngoài phạm vi của ki ểu TI ME sẽ được cắt để t hành mộtgi á tr ị gi ới hạn t hi ch hợp của ki ểu TI ME.

    • Zer o l à các gi á t r ị đặc bi ệt , nhưng t a có t hể l ưu hoặc xemchúng một cách t ườngmi nh như các gi á t r ị t r ong bảng bêndưới . Ta cũng có t hể vi ết một cách đơn gi ản gi á t r ị zer o l à0.

    Kiểu Giá trị zero

    DATETI ME ' 0000- 00- 0000: 00: 00'

    DATE ' 0000- 00- 00'

     TI MESTAMP ' 0000- 00- 00

    00: 00: 00' TI ME

      o o Ö  o o o

     YEAR 0000

    Bảng 1. 3: Gi á t r ị zer o của các ki ểu

    . Ki ểu DATETI ME, DATE và TI MESTAMPKi ểu DATETI ME được dùng khi t a cần bi ểu di ễn các gi á t r ị chứacả t hông t i n ngày t háng và gi ờ. MỵSQL khôi phục và hi ển t hịgi á t r ị DATE TI ME t heo đị nh dạng ' YYYY- MM- DD HH: MM: SS' . Phạmvi bi ểu di ễn t ừ ' 1000- 01- 01 00: 00: 00' đến ' 9999- 12- 31

    23: 59: 59' .Ki ểu DATE được dùng khi t a cần bi ểu di ễn các gi á t r ị chỉ chứat hông t i n ngày t háng. MySQL khôi phục và hi ển t hị gi á t r ịDATE t heo đị nh dạng ' YYYY- MM- DD' . Phạm vi bi ểu di ễn t ừ ' 1000-01- 01' đến ' 9999- 12- 31' .

    Trang: 10

  • 8/18/2019 Gioi Thieu My SQL

    11/25

    Mv SOL Introduction (sưu tầm)

    Ki ểu TI MESTAMP có nhi ều t i nh chất phụ t huộc vào phi ên bảnMySQL và chế độ SQL mà hệ quản t r ị đang chạy.

    CÓ nhi ều đị nh dạng để đị nh nghĩ a các gi á t r ị DATETI ME, TI MEvà TI MESTAMP:- Chuỗi có dạng ' YYYY- MM- DD HH: MM: SS' hoặc 1YYYY- MM- DD' . vỉ

    dụ, ' 1998- 12- 31 11: 30: 45' l à 11 gi ờ 30 phút 45 gi ây ngày 31t háng 12 năm 1998- Chuỗi có dạng ' YYYYMMDDHHMMSS' hoặc 1YYYYMMDD' . vi dụ

    ' 19981231113045' l à 11 gi ờ 30 phút 45 gi ây ngày 31 t háng12 năm 1998.

    - Số có dạng YYYYMMDDHHMMSS hoặc YYYYMMDD. vỉ dụ19830905132800 l à 13 gi ờ 28 phút ngày 05 tháng 09năm 1983.

    Các gi á t r ị không hợp l ệ được chuyển t hành zero của ki ểut ương ứng.

    Khi MySQL Ser ver chạỵ với chế độ MAXDB t hì ki ểu TI MESTAMP vàDATETI ME l à như nhau. Khi không chạy với chế độ MAXDB t hì cáct huộc t ỉ nh có ki ểu TI MESTAMP có gi á t r ị mặc đị r. h l à NOT NULL.

    • Ki ểu TI MEMySQL khôi phục và hi ển t hị các gi á t r ị TI ME theo đị nh dạng' HH: MM: SS' ( hoặc đị nh dạng ' HHH: MM: SS' với các gi á t r ị gi ờl ớn) . Các gi á t r ị TI ME có phạm vi bi ểu di ễn ~ừ ' - 838: 59: 59'đến ' 838: 59: 59' . Thành phần gi ờ có t hể có gi á t r ị l ớn vì ki ểu

     TI ME không chỉ được dùng để bi ểu di ễn gi ờ t r ong một ngày màcòn được dùng để bi ểu di ễn khoảng t hời gi an qi ữa hai mốc sựk i ện.

    Có nhi ều đị nh dạng để đị nh nghĩ a các gi á t r ị TI ME:Chuỗi có dạng ' D HH: MM: SS' .Chuỗi có dạng ' HHMMSS' nếu gi á t r ị bi ểu di ễn gi ờt r ong mộtngày, vỉ dụ, ' 101112' l à 10 gi ờ 11 phút 12 gi ây.Số có dạng HHMMSS nếu gi á t r ị bi ểu di ễn gi ờ t r ong một ngày.Vỉ dụ, 101112 l à 10 gi ờ 11 phút 12 gi ây.

    Các gi á tr ị nằm ngoài phạm vi bi ểu di ễn của ki ểu TI ME sẽ đượcchuyển về gi á t r ị gi ới hạn t hí ch hợp. vi dụ, ' - 850: 00: 00' t r ởt hành ' - 838: 59: 59' . Các gi á tr ị không hợp l ệ t r ở t hành' 00: 00: 00' . vậy khi gặp một gi á t r ị ' 00: 00: 00' t a không t hểnói r ằng nó l à một gi á t r ị được đị nh nghĩ a bởi ' 00: 00: 00' hayl à một gi á t r ị không hợp l ệ.

    • Ki ểu YEARKi ểu YEAR dùng để bi ểu di ễn các gi á t r ị năm. MySQL khôi phụcvà hi ển t hị các gi á tr ị YEAR t heo đị nh dạng YYYY. Phạm vibi ểu di ễn t ừ 1901 đến 2155.

    Có nhi ều đị nh dạng để đị nh nghĩ a các gi á t r ị YEAR:

    Trang: 11

  • 8/18/2019 Gioi Thieu My SQL

    12/25

    Mv SOL Introduction (sưu tầm)

    Chuỗi 4 chũ số t ừ ' 1901' đến ' 2155' . ví dụ, ' 1990' l à năm1990.Số 4 chữ số t ù 1901 đến 2155. vi dụ, 1990 l à năm 1990.Chuỗi 2 chứ số t ừ ' 00' đến ' 99' . vỉ dụ, ' 90' l à năm 1990.Lưu ý sự nhập nhằng khi t hi ếu t hành phần thi ên ni ên kỷ.Số t ừ 1 đến 99. Vi dụ, 50 l à năm 2050. Lưu ý sự nhập nhằngkhi t hi ếu t hành phần t hi ên ni ên kỷ. Tr ong t r ường hợp này t a

    không thể sử dụng số 0 để chi l à năm 2000 nà t a phải dùngchuỗi ' 0' hoặc ' 00' vì số 0 được hi ểu l à gi á t r ị zero.Các gi á t r ị không hợp l ệ được chuyển thành zero.

    • Vấn đề năm 2000 và các ki ểu t hời gi anMySQL Ser ver không gặp vấn đề với năm 2000 ( Y2K) .

    k. Kiểu chuỗi

    Các ki ểu chuỗi gồm CHAR, VARCHAR, BI NARY, VARBI NARY, BLOB, TEXT,ENUM.• Ki ểu CHAR và VARCHAR

    Ki ểu CHAR và VARCHAR t ương t ự nhau nhưng khác nhau cách cácgi á t r ị của chúng được l ưu t r ữ và khôi phục.

    Ki ểu CHAR và VARCHAR được khai báo với độ dài để đị nh rõ sốt ối đa các ký t ự mà một gi á t r ị có t hể có. vỉ dụ, CHAR (30)t hì gi á t r ị l à một chuỗi có t hể chứa tối đa 30 ký tự.

    Với ki ểu CHAT độ dài có t hể có gi á t r ị t ừ 0 đến 255. Khi mộtchuỗi gi á t r ị ki ểu CHAR được l ưu, các ký t ự t r ắng được ghépvào cuối để chuỗi có chi ều dài như chi ều dài đã đị nh. Khi mộtchuỗi gi á t r ị CHAR được khôi phục, các ký t ự t r ắng ở cuốichuỗi sẽ bị xóa.

    Các gi á t r ị ki ểu VARCHAR l à các chuỗi có độ dài t hay đổi . Độdài có t hể có gi á t r ị t ừ 0 đến 65535. Khác với ki ểu CHAR, cácgi á t r ị ki ểu VARCHAR được l ưu với độ dài t hực.

    Nếu các chuỗi gi á t r ị có độ dài l ớn hơn độ dài đã được xácđị nh t hì chuỗi sẽ bị cắt bớt các ký tự ở cuối để có được độdài như đã xác đị nh. Bảng 1. 4 mi nh họa sự khác nhau của ki ểuCHAR và VARCHAR.

    Chuỗi giá trị

    CHAR(4) VARCHAR(4)

    » » 1 f f f  

    ' ab' ' ab ' 1 ab1

    'abcd' 'abcd' ' abed'

    ' abcdef g' ' abed' ' abed'

    Bảng 1. 4: Sự khác nhau của ki ểu CHAR và VARCHAR

    Trang: 12

  • 8/18/2019 Gioi Thieu My SQL

    13/25

    Mv SOL Introduction (sưu tầm)

    • Ki ểu BI NARY và VARBI NARYKi ểu BI NARY và VARBI NARY t ương t ự CHAR và VARCHAR nhung cácgi á t r ị của nó l à các chuỗi nhị phân, đó l à các chuỗi byt e.Do đó các gi á t r ị này có t hể sắp xếp và so sánh dựa t r ên cácgi á t r ị số của các byte.

    Khái ni ệm độ dài của BI NARY và VARBI NARY cũng t ượng t ự CHARvà VARCHAR nhưng độ dài được t í nh t heo số bỵt e t haỵ vì t i nht heo số ký tự. vỉ dụ, BI NARY (5) t hì gi á t r ị l à một chuỗi nhịphân 5 byt e.

    . Ki ểu BLOB và TEXTKi ểu BLOB và TEXT chứa các gi á t r ị l àchuỗi nhị phân và chuỗiký t ự l ớn.

    • Ki ểu ENUMKi ểu ENUM chứa các gi á t r ị l à các chuỗi được l i ệt kêtrước.

    6.Tạo CSDL trong MySQL Administrator

    Nhấp chuột phải vào vùngt r ống Schemata, chọnCreat e New Schema

    níc*maỉion_schefna

    mynewdatabase

    mysql

     phpmyadrmn

    IẠtesthjandafabase

    luandripaỉSOa

    contac*_dat abas e

    csd_cong»y Edit Schema

    Drop SchemaCopy CREATE statement to Clipboard

    F2

    Ctrl* Del

    Ctrl+CXuất hi ện hộp t hoạiCr eat e new Schema, gõ t ênCSDL vào, vi dụ ở đây t at ạo CSDL chuyenbay

    Create New SchemaCreate New Table

    Create New ViewCreate New Procedure / Function

    Ctri+N

    Ctri+T

    Ctrl+VCtrl*p

    Create new SchemaRefresh F5

    rr

    Please enter a name for the new schema.

    Schema name: chuyenba^

    OK 

    Trang: 13

  • 8/18/2019 Gioi Thieu My SQL

    14/25

    Mv SOL Introduction (sưu tầm)

    « I MySQL Administrator - Connection: roo t©localhost:3306

    File Edit View Tools Window MySQL Enterprise Help

    G e i v e r I n f o r m a t i o n

    Sei viceControlStẽítupVariablesUser AdministrationSeiver Connections

    -*Healths eiver Logs

    0  ReplicationStatusBackup

    QjJ Restore'̂, Catalogs

    SchemaTables SchemaIndicesI Views jjiloredprocedures—̂ chuyenbdy—3 All tablesof thechuyeroayschema

     TableName Engine Rows Daialength Indexlength Updatetime

    trong MySQL Administrator

    t ạo bảng t r ong vùng Schemata. vi dụ ta

    7.Tạo Bảng

    - Nhấp chuột phải vào CSDL cầnchọn CSDL chuyenbay để tạobảng như hì nh bên.

    - Chọn Cr eat e New Tabl e- Xuất hi ện hộp thoại MySQL

     Tabl e Edi t or như bên dưới

    Edit Schema 

    Drop SchemaCopy CREATE sta temen t to Cl ipboard

    F2

    Ctrl» Del Ctr i+C

    Create N ew Schem a C t r l +N

    Create N ew Tab le C t r l+T

    Create New View Ctr l+V

    Create New Pro cedure / Funct ion ctrl+p

    Refresh F5

    Trang: 14

  • 8/18/2019 Gioi Thieu My SQL

    15/25

    Mv SOL Introduction (sưu tầm)

    < ) MySQL Table Editor 

     T abte N ame: CH uYE N BA'ïj D atabase:

     Table Options Advanced Options

    chuyenbay Comment:

    Columns and Indices

    Column Name Datatype Default Value Comment

    Indices Foreign Keys Column Details

    Index Settings

    Index Name:

    Index Kind:

    Index Type:

    Index Columns (Use Dtag’n'Diop

    INDEX

    DEFAULT

    + -

    +vùng t ab gồm 3 phần :

    • Columns and Indices:  sử dụng tab nàỵ để t ạo và hi ệu chi nh t hông t i nchỉ số và cột của bảng. Ta cũng t ạo quan hệ KHÓA NGOẠI t r ong tab này.

    • Table Options:  Ta sử dụng t ab Tabl e Opti ons để chọn st orage engi nevà bảng mã ký t ự cho bàng đó

    • Advanced Options:  Tab này để cấu hì nh một số t ùy chọn

    + Tr ong vùng soạn t hảo cột , t a có t hể hi ệu chỉ nh t ên, l oại dữ l i ệu,gi á t r ị mặc đị nh và các t huộc t i nh khác cho cột .

    - Tạo bảng:

    + Ta gõ t ên bảng vào ô Tabl e Name

    - Tạo field cho bảng:

    + Ta gõ t ên f i el d t r ong cột Col umn Name, ki ểu dữl i ệu của f i el d t r ong cột Dat at ype. Nếu f i el d đó bắt buộc phải có gi át r ị t hì check vào cột NOT NULL, . . . . vỉ dụ t a t ạo các f i el d cho bảngchuyenbay t r ong CSDL chuyenbay như hì nh bên dưới .

    Trang: 15

  • 8/18/2019 Gioi Thieu My SQL

    16/25

    Mv SOL Introduction (sưu tầm)

    Database: chuyenbay Comment:

    Columns and Indices Table Options Advanced Options

    Column Name Datatype hull  ftT Flags Default Value Comment

    MaCB CHAR(5) ✓ □ BINARY □ ASCII □ UNIC

  • 8/18/2019 Gioi Thieu My SQL

    17/25

    Mv SOL Introduction (sưu tầm)

    MySQL Table Editor U M

     Table Name: chuyenbay Database:

    Columns and Indices Table Options Ị Advanced Options

    Column Name Datatype   mul l   S)?'3 Flags Default Value Comment0 MaCB □ ^ CHAR(5) □ BINARY □ ASCII □ UNIC

    ộ GaDi L& VAR CHAR (50) □ BINARY E2S

  • 8/18/2019 Gioi Thieu My SQL

    18/25

    Mv SOL Introduction (sưu tầm)

    ♦ ) MySQL Table Editor 

     Table Name, chuyenbay Database. chuyenbay Comment.

    Columns and Indices Table Options I Advanced Options

    Column Name Datatype   hul l   me10 Flags Default Value CommentMaCB 3  I    CHAR (5) □ BINARY □ ASCII □ UNIC

  • 8/18/2019 Gioi Thieu My SQL

    19/25

    Mv SOL Introduction (sifu tarn)

    5 MySQL Adminis trator - Connection: root@locđlhost:3306

    1Fie ỄLdit View Tools Window MySQL Enterprise tielp1

    tgServer InformationP / Service Control

    Startup Variables

    User Administration

    ^ Server Connectionsf j Health

    m  Server Logs£  Replication Status

    ^ Backup1»

    Restoie

    Catalogs

    Schemata

    [ Z U-I chuyenbay

    collectionsdrupal57ainfofmation_schemamysql

    phpmyadminstudymgdatabase

    p) testtuandatabasetuandrupal6

    Schema Tables Schema Indices Views Stored procedures

    —̂ chuyenbayAll tables of the chuyenbay schema

     Table Name Engine Rows Data length Index length Update timefr  chungnhan 0 16 kB 16 kB

    chuyenbay MylSAM 0 OB 1kB 2008-10-03 09:36:08maybay MylSAM 0 OB 1kB 2008-10-03 09:36:08nhanvien MylSAM 0 OB 1kB 2008-10-03 09:36:08

    Num. of Tables: 4   |R  o w s : Ol ị Data Len: 18 kB 11ndex Len 19 kB

     Table Status Row Status

    chungnhanDetailed table sta:us information

    General Table Type: InnoDBRow format: CompactAuto Increment:Create options:

    Comment: InnoDB free: 4096 kB

    « Detads Create T able £drt Table Maintenance ßefresh

    + Tr ước khi t ạo khóa ngoại cho bảng, cần đặt Tabl e Engi ne của bảngđó và các bảng mà nó t ham chi ếu t ới l à InnoDB.

    Trang: 19

  • 8/18/2019 Gioi Thieu My SQL

    20/25

    Mv SOL Introduction istSu tarn)

    i MySQL Table Editor 

     Table Name: chungnhan Database: chuyenbay V Comment: InnoDB free: 4096 kB

    Columns and Indices Table Options Advanced Options

    Storage Engine

     Table Engine:

    Supports transactions, row-level locking, and foreign keys

    Character Set

    Charset: Utf8 v   The default character set that is used for the table. Starting from MySQL 4.1 youcan specify an individual character set for each column

    Collation: Utf8_general_ci v  Colation method that is used to compare text and sort columns.

    Apply Changes Discard Changes Close

    Trang: 20

  • 8/18/2019 Gioi Thieu My SQL

    21/25

    Mv SOL Introduction (sưu tầm)

    s MySQL Table Editor 

     Table Name: chungnhan Database: chuyenbay Comment: IrinoDB free. 4096 KB

    Columns and Indices  Table Options Advanced Options

    Column Name Datatype mul l   Sic0 Flags Default Value CommentMaNV CHAR(9) ✓ □ BINARY □ ASCII □ UNIC

    MaMB INTEGER ✓ □ UNSIGNED □ ZEROFILL 0

    Indices I Foreign Keys I Column Details

    Foreign Key Settings

    Key Name: Ref. Table:

    On Delete:

    On Update:

    No Action

    No Action

    Column Reference Column

    + -

    Apply Changes Discard Changes Close

    + Chọn t ab Forei gn Keys+ Cl i ck vào dấu cộng như hì nh t r ên để t ạo mới một khóa ngoại

    + Xuất hi ện hộp thoại Add Forei gn Key, nhập t ên khóa ngoại vào Add Foreign Key

    Please enter the name of the new foreign key.

    Foreign Key Name: iungnhan_nhanvien_fk

    OK Cancel

    + Tr ong vùng For ei gn Key Set t i ngs, t ại l i st box Ref . Tabl e t a chọnbảng t ham chi ếu t ới . ví dụ ở đây ta chọn bảng t ham chi ếu l à nhanvien

    Trang: 21

  • 8/18/2019 Gioi Thieu My SQL

    22/25

    Mv SOL Introduction (su'u tam)

    Foreign Key Settings

    Key Name: chungnhan_nhanvien_f  -lei. Table:   V

    chungnhanchuyenbaymavbay

    On Delete:

    On Update:

    Restrict v Column

    Restrict v

    Indices Foreign Keys Column Details

    Foreign Key Settings

    Key Name: chungnhan_nhanvien_f 

    On Delete:

    On Update:

    Restrict

    Restrict

    Ref. Table: nhanvien

    Column

    MaNV

    Reference Column

    MaNV

    Apply Changes Discard Changes Close

    + Chọn but t on Appl y ChangesConfirm Table Edit (5 < ]

    Are you sure you want to execute the following SQL command to apply the changes to the table?

    ALTER TABLE chuyenbay.'chungnhan' DROP FOREIGN KEY 'FK_chungnhan_1ADD CONSTRAINT 'chungnhan nhanvien fk'FOREIGN KEY'chungnhan nhanvien fk'('MaNV')

    REFERENCES 'nhanvien' ('MaNV')ON DELETE RESTRICTON UPDATE RESTRICT

    , ROW FORMAT =DYNAMIC;

    Execute Cancel

    + Chọn Execut e

    Trang: 22

  • 8/18/2019 Gioi Thieu My SQL

    23/25

    Mv SOL Introduction (su'u tam)

    5 MySQL Table Edi tor 

     Table Name: chungnha n Database: chuyenbay Comment: InnoDB free: 4096 kB; ('MaNV ')

    Columns and Indices Table Options || Advanced Options|

    Column Name Datatype huI i  mc° Flags Default ValueMaNV ¿> CHAR(9) ✓ □ BINARY Q ASCII □ UNICMaMB INTEGER ✓ □ UNSIGNED □ 2ER0F ILL 0

    Comment

    Indices Foreign Keys Column Details

    Foreign Key Settings

    Key Name: | chungnha n_nhanvien_ f| Ref. Table: | nhanvien~

    On D elete:

    On Update

    Restrict 1 Column Reference ColumnMaNV MaNV

    Restricf  3

    Apply Changes discard Changes Close

    10.Insert dữ liệu vào bảng

    + Nhấp chuột phải vào bảng cần i nser t dữ l i ệu, vỉ dụ t a chọn bảngnhanvien

    Trang: 23

  • 8/18/2019 Gioi Thieu My SQL

    24/25

    Mv SOL Introduction (sưu tầm)

    Schema Tables Schema Indices Views Stored procedures

    - n chuyenbay

    All tables of the chuyenbay schema

     Table Name

    chungnhan

    chuyenbay

    maybayfF1 nhanvier 

    Engine

    InnoDB

    My I SAM

    InnoDB

    Rows

    00

    0

    Num. of Table

     Table Status

    nhanvi

    Edit Table

    Edit Table Data

    Maintenance

    16 kB 16 kB

    OB 1 kB

    16 kB OB16 kB   o      s

    Update time

    2008-10-03 09:36:08

    Create Table

    Drop Table

    Refresh

    Detailed table status information

    General

     Table Type:Row format:

    Auto Increment:Create options:

    Rows: 0 I Data Len: 48 kB j I Index Len: 17 kB

    InnoDB

    Compact

    Comment: InnoDB free: 409S kB

    + Chọn Edi t Tabl e Dat a+ Xuất hi ện hộp t hoại MySQL Query Br owser

    Trang: 24

  • 8/18/2019 Gioi Thieu My SQL

    25/25

    Mv SOL Introduction (sưu tầm)

    + Chọn Edi t+ Rồi nhập l i ệu tr ong vùng Resul t set 1

    Trang: 25