MySQL

easily use MySQL

Vasiliy

MySQL Introduction

一個開放原始碼關聯式資料庫管理系統

  1. 建立多個關係資料表來存入資訊
  2. 可以通過多表關係來查詢資料
  3. 它是免費的

SQL簡易架構

    one 資料庫 hasMany 資料表

one 資料表 hasMany 欄位、資料

一個櫃子有很多抽屜

一個抽屜可以放很多文件

但通常我們會把種類相同的文件放在同一個抽屜裡

建立我們手上的第一份資料庫

--建立資料庫 並選擇語系
create database 資料庫名稱
character set 語系


--刪除資料庫
drop database 資料庫名稱
--建立資料庫first_database
--並選擇語系 utf8代表的是萬國碼(
--不管是中文 俄文 德文 法文 
--都會使用他的編碼方式進行儲存)
create database first_datebase 
character set utf8

--刪除資料庫first_database
drop database first_database

MySQL資料表

--新建資料表
CREATE TABLE  資料表名稱(
    欄位名稱   變數型態   欄位1額外條件,
    ......
    --其他設定條件
    PRIMARY KEY (欄位)
)
--刪除資料表
DROP TABLE 資料表名稱
--清空資料
TRUNCATE 資料表名稱
--新增資料表欄位
ALTER TABLE 資料表名稱 ADD 欄位名稱 變數型態
--改變資料表欄位名稱與變數型態
ALTER TABLE 資料表名稱 CHANGE 原本欄位名稱 後來的欄位名稱 變數型態
--改變資料表欄位 變數型態
ALTER TABLE 資料表名稱 MODIFY 欄位名稱 變數型態
--新建資料表teachers
--id     為int型態並且為遞增
--name   為text型態
--test_id     為主鍵
CREATE TABLE  teachers(
    id     int   AUTO_INCREMENT,
    name   text,
    description text,
    PRIMARY KEY (id)
)

--刪除資料表teacher
DROP TABLE teachers
--清空資料表teacher的所有資料
TRUNCATE teachers

練習

1.新增一個名為example的資料庫

2.新增一個名為governments的資料表

3.欄位資訊為:

   id                      int型態  AUTO_INCREMENT(遞增)

   name               text型態

   description     text型態

 

新增(INSERT)

INSERT INTO 資料表(欄位1,欄位2)
VALUES ('數值1','數值2'),
       ('數值1','數值2')
--在資料表teachears新增兩筆資料 
--無線豬  很靠北
--吾現朱  一頭豬
INSERT INTO teachers(name,description)
VALUES ('無線豬','很靠北'),
       ('吾現朱','一頭豬')

練習

1.在資料表governments新增五筆資料

  對應欄位: name               description     

  

  新增名稱: 馬英文              死亡之握

                    蔡英九              小英頭  

                    王金柱              反課綱黑箱

                    洪秀平              與小英幹上

                    測試成功          成功

 

刪除(DELETE)

--刪除資料表--
DELETE FROM 資料表
WHERE 條件式

--刪除teachers 資料表 id= 1的值
DELETE FROM teachers WHERE id = 1

練習

1.在資料表governments刪除name測試成功這筆資料

更新(UPDATE)


UPDATE 資料表
SET 欄位='數值'
WHERE 條件式

--更新teachers資料表 
--id= 1的 name,desctiption
UPDATE teachers
SET name='wuhc',description='說的話不能信'
WHERE id = 2

練習

1.在資料表governments更新五筆資料

馬英文 -> 馬英九

蔡英九 -> 蔡英文

王金柱 -> 王金平

洪秀平 -> 洪秀柱

 

查詢(search)

SELECT 欄位,欄位2   或是  *
FROM 資料表
WHERE 條件式
--在teachers資料表 找id=1或id=2的資料 並只顯示name,description
SELECT name,description
FROM teachers
WHERE id = 1 OR id =2

--搜尋teachers表所有資訊
SELECT * FROM teachers WHERE 1

練習

1.在資料表governments找尋id2-4之間的資料

 

排序(order by)

--生冪 ASC
--降冪 DESC
ORDER BY `欄位1` 生冪或降冪 ,
         `欄位2` 生冪或降冪 ,
            ......
--在teachers資料表把id利用降冪的印出來
SELECT * FROM teachers WHERE 1 ORDER BY id DESC

限制(limit)


LIMIT 想取出多少筆資料 
OFFSET 從第幾筆開始(0為第一筆資料)

或

LIMIT 從第幾筆開始(0為第一筆資料),想取出多少筆資料 
--列出兩筆資料
SELECT * FROM teachers WHERE 1 LIMIT 2
--列處兩筆資料 從第2筆資料開始算起
SELECT * FROM teachers  WHERE 1 LIMIT 2 OFFSET 1

練習

1.在資料表governments把排序規則設定為

id 降冪,並列出第2-4資料

 

加入(JOIN)

意思就是把多個資料表加在一起查詢

Select 資料表1.資料欄位, 資料表2.資料欄位,......
FROM 資料表1
INNER JOIN 資料表2 ON 條件式
SELECT `test1`.`test_name`, `test2`.`test2_type`
FROM `test1`
INNER JOIN `test2` ON `test1`.`test_id` = `test2`.`test_id`

View

View的做法跟table一樣

他們關聯再一起利用

虛擬的View建立出來

使用view會節約檔案空間

但是用view顯示可能會有掉資料的問題

abvcdj544348sd21dasdcmkfqswe121213as4d5aASDdx

By jiewei

abvcdj544348sd21dasdcmkfqswe121213as4d5aASDdx

  • 391