Mysql打卡第三天

Mysql打卡第三天

MySQL表數據類型

  • 數值類型
  • 日期和時間類型
  • 字符串類型

用SQL語句創建表

語句解釋

CREATE TABLE table_name (
    column1 datatyoe,
    column2 datatyoe,
    column3 datatyoe,
);

table_name -> 表名

column -> 列名

datatype -> 數據類型

設定列類型、大小、約束

列類型

  • 建表時設置,如上方法

  • 添加列時設定

    ALTER TABLE table_name ADD column_name datatype;
    
  • 修改列類型

    ALTER TABLE table_name ALTER COLUMN column_name datatype;
    

大小

  • 建表時設置,在類型後面用括號表示其最大長度

  • 修改列大小

    ALTER TABLE table_name modify column column_name varchar(50) ;
    

約束

  • 建表時設置,在列大小後面增加

  • 修改列約束

     ALTER table table_name add constraint my_un unique(column_name);
    

設定主鍵

  • 建表時是這,在最後加入 PRIMARY KEY (column_name);

  • 修改表約束爲主鍵約束

    ALTER table table_name add constraint key_name primary key(column_name);
    

用SQL語句向表中添加數據

語句解釋

  • 不指定列名

    INSERT INTO table_name VALUES ('value1', 'value2', 'value3', 'value4');
    

    根據列名的順序插入值,不插入的要用 null 填充

  • 指定列名

    INSERT INTO table_name (column1,column2,column3) VALUES (value1,value2,value3);
    

    根據列名的順序插入值

用SQL語句刪除表

  • DELETE

    DELETE FROM table_name;	
    

    系統一行一行地刪除表的內容,表的結構還存在,不釋放空間,可以回滾恢復;

  • DROP

    DROP TABLE table_name;
    

    直接刪除表內容和結構,釋放空間,沒有備份表之前要慎用;

  • TRUNCATE

    TRUNCATE TABLE table_name;
    

    直接先刪除表的內容,再建表,可以釋放空間,沒有備份表之前要慎用。

MySQL別名

SELECT column1 AS my_name FROM table_name my_table_name;

用 AS 或者省略

作業

項目三:超過5名學生的課(難度:簡單)

創建如下所示的courses 表 ,有: student (學生) 和 class (課程)。

例如,表:

±--------±-----------+

| student | class |

±--------±-----------+‘’

| A | Math |

| B | English |

| C | Math |

| D | Biology |

| E | Math |

| F | Computer |

| G | Math |

| H | Math |

| I | Math |

| A | Math |

±--------±-----------+

編寫一個 SQL 查詢,列出所有超過或等於5名學生的課。

應該輸出:

±--------+

| class |

±--------+

| Math |

±--------+

Note:

學生在每個課中不應被重複計算。

select class from courses GROUP BY class HAVING COUNT( DISTINCT student) >= 5

​ 項目四:交換工資(難度:簡單)

創建一個 salary表,如下所示,有m=男性 和 f=女性的值 。

例如:

| id | name | sex | salary |

|----|------|-----|--------|

| 1 | A | m | 2500 |

| 2 | B | f | 1500 |

| 3 | C | m | 5500 |

| 4 | D | f | 500 |

交換所有的 f 和 m 值(例如,將所有 f 值更改爲 m,反之亦然)。要求使用一個更新查詢,並且沒有中間臨時表。

運行你所編寫的查詢語句之後,將會得到以下表:

| id | name | sex | salary |

|----|------|-----|--------|

| 1 | A | f | 2500 |

| 2 | B | m | 1500 |

| 3 | C | f | 5500 |

| 4 | D | m | 500 |

UPDATE salary SET sex = ( CASE WHEN 'SEX' = 'f' THEN 'm' ELSE 'm' END);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章