Begin with SQL

for SIRLA

OUTLINE

1. SQL with Database

2. SQL Basics

SQL with Database

 

1. What is SQL?

2. What is Database?

3. SQL in Database

What is SQL?

  • Structured Query Language(結構化查詢語言)
  • Related to database

What is Database?

  • 存放資料處
  • 資料量大
  • 關聯性、非關聯性
  • Table(資料表)、Column(欄位)

SQL in Database

  • 新增
  • 修改
  • 刪除
  • 查詢

SQL Basics

Database

SHOW DATABASES;

列出所有資料庫

CREATE DATABASE <database_name>;

建立資料庫

USE <database_name>;

使用資料庫

 

DROP DATABASE <database_name>;

刪除資料庫

LAB

 

建立兩個資料庫分別名為

1. sirla_lab_db

2. db_for_drop

LAB

 

刪除名為db_for_drop的資料庫

mysql -u root [database_name] < [database_name.sql]

匯入資料庫

LAB

 

建立資料庫名為world,並匯入world.sql

SQL Basics

Datatypes

數字

  • INTEGER - precision 10(default)
  • SMALLINT - precision 5
  • BIGINT - precision 19
  • FLOAT - mantissa precision 16(default)

字串

  • CHAR - 固定長度 n
  • VARCHAR - 最長 n
  • TEXT

日期時間

  • DATE
  • TIME
  • DATETIME
  • TIMESTAMP - 自1970/01/01以來經過的秒數

SQL Basics

in Database

SHOW TABLES;

列出資料表

SHOW CREATE TABLE <table_name>;

顯示如何建立資料表

CREATE TABLE <table_name>{

column1 datatype,

column2 datatype,

...

};

建立資料庫

LAB

 

在sirla_lab_db中建立user資料表,資料表欄位含

1. id (INT)

2. name (VARCHAR)

3. account (TEXT)

4. passwd (TEXT)

5. time (TIMESTAMP)

6. gender (TEXT)

SQL Basics

INSERT

INSERT INTO <table_name>(column1, column2,...) VALUES (value1, value2,...)

新增資料

LAB

 

新增五筆資料進user資料表中,其中一筆包含自己

SQL Basics

SELECT

SELECT column1,... FROM <table_name>;

查詢某資料表的某欄位

 

SELECT * FROM <table_name>;

查詢該資料表所有欄位

可搭配其他條件式:

  • WHERE
  • AND / OR / NOT
  • LIKE

可搭配其他條件式

  • ORDER BY
    • 排序,可複數排序
    • 由小到大=>ASC;由大到小=>DESC
    • 例:ORDER BY `age`, `name` DESC

可搭配其他條件式

  • GROUP BY
    • 分組
    • 例:SELECT `gender`, count(*) FROM `users` GROUP BY `gender`
      • count(*) -> 計數;若無此則僅顯示所分的組別名稱
      • 得到的結果會記男性、女性分別的數量

可搭配其他條件式

  • LIMIT
    • 限制資料數
    • 例:LIMIT 10,只顯示前十筆資料

LAB

使用world資料庫查詢country資料表

1. 找出亞洲國家

2. 找出面積小於2000.00的歐洲國家

3. 計算亞洲國家數量

4. 依面積排序亞州國家

INNER JOIN

加入其他資料表

  • 例:SELECT * FROM `users` INNER JOIN `math` where `users`.`id` = `math`.`user_id`

  • 如果再選取的過程中有重複的欄位,則在前面加上資料表名稱 -> 例:`users`.`name`

  • 在INNER JOIN後加ON,效果相同

    • => SELECT * FROM `users` INNER JOIN `math` ON `users`.`id` = `math`.`user_id`

SQL Basics

UPDATE

  • UPDATE <table_name> SET column1 = value1, ... WHERE <條件>

LAB

 

在sirla_lab_db中user的資料表將自己的性別改為異性,並更改密碼及自己的姓名

SQL Basics

DELETE

DELETE FROM <table_name> WHERE <條件>

LAB

 

將自己的那筆資料刪除

LAB

 

刪除所有資料

全部終わり

おめでとうございます!

Begin with SQL for SIRLA

By Иo1lz

Begin with SQL for SIRLA

  • 111