1、MySQL表數據類型
MySQL支持多種類型,大致可以分為三類:數值、日期/時間和字符串(字符)類型。
數值類型:嚴格數值數據類型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似數值數據類型(FLOAT、REAL和DOUBLE PRECISION)。

日期和時間類型:表示時間值的日期和時間類型為DATETIME、DATE、TIMESTAMP、TIME和YEAR。

字符串類型:字符串類型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

2、用SQL語句創(chuàng)建表
創(chuàng)建mysql數據表需要:表名、表字段名,定義每個表字段
CREATE TABLE table_name(column_name column_type)
CREATE TABLE runoob_tbl(runood_id INT NOT NULL AUTO_INCREMENT,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?runood_title VARCHAR(100) NOT NULL,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? submission_date DATE,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?PREMARY_KEY(ronood_id))
ENGTINE = InnoDB DEFAULT CHARSET= utf8;
語句解釋:
NOT NULL:設定該字段數據不為空,當為空值時報錯;
?AUTO_INCREMENT:自動加1,;
VARCHAR(100):字段類型為可變長度的字符串,最大長度為100,當存入的字符串長度為10時,長度為11;
PREMARY_KEY(ronood_id)):設定ronood_id字段為主鍵。
3、用SQL語句向表中添加數據
? ? 語句解釋 ? ? 多種添加方式(指定列名;不指定列名)
INSERT INTO table_name(field1, field2, ...,fieldN)
VALUES(value1, value2, ... ,valueN)
如果數據是字符串型,需要加單引號。
INSERT INTO 多條數據:
INSERT INTO table_name (field1, field2,...fieldN) VALUES (valueA1,valueA2,...valueAN),(valueB1,valueB2,...valueBN),(valueC1,valueC2,...valueCN)......;
4. 用SQL語句刪除表
? ? 語句解釋 ? ? DELETE ? ? DROP ? ? TRUNCATE ? ? 不同方式的區(qū)別
DROP TABLE table_name ;--刪除表
DELETE 刪除表內數據
DELETE FROM student WHERE T_name = '張三';
TRUNCATE:刪除表內數據,保存表結構。
當不再要該表時,用DROP;當要保留該表,但是要刪除數據,用TRUNCATE;當刪除表中部分數據,用DELETE。
5. 用SQL語句修改表
? ? 修改列名 ? ? 修改表中數據 ? ? 刪除行 ? ? 刪除列 ? ? 新建列 ? ? 新建行
UPDATE table_name SET field1 = new-value1,field2 = new-value2
[WHERE Clause]
UPDATE runoob_tbl SET runoob_title='學習C++' WHERE runood_id = 3;
更改表格runoob_tbl中runood_id為3對應的runood_title字段下面的值為學習C++;?
作業(yè)項目三:超過5名學生的課(難度:簡單)
創(chuàng)建如下所示的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名學生的課。


項目四:交換工資(難度:簡單)
創(chuàng)建一個 salary表,如下所示,有m=男性 和 f=女性的值 。
例如:

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


6、表聯結
MySQL別名
INNER JOIN:內連接,或等值連接,獲取兩個表中字段匹配關系的記錄。

LEFT JOIN:左連接,獲取左表所有記錄,即使右表沒有對應匹配的記錄。

RIGHT JOIN:右連接,獲取右表所有記錄,即使左表沒有對應匹配的記錄。

作業(yè):項目五:組合兩張表 (難度:簡單)
在數據庫中創(chuàng)建表1和表2,并各插入三行數據(自己造)
表1:?Person
+-------------+---------+ | 列名 | 類型 | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar | +-------------+---------+
PersonId 是上表主鍵
表2:?Address
+-------------+---------+ | 列名 | 類型 | +-------------+---------+ | AddressId | int | | PersonId | int | | City | varchar | | State | varchar | +-------------+---------+
AddressId 是上表主鍵
編寫一個 SQL 查詢,滿足條件:無論 person 是否有地址信息,都需要基于上述兩表提供?person 的以下信息:FirstName, LastName, City, State
項目六:刪除重復的郵箱(難度:簡單)
編寫一個 SQL 查詢,來刪除?email?表中所有重復的電子郵箱,重復的郵箱里只保留?**Id?***最小?*的那個。
+----+---------+ | Id | Email | +----+---------+ | 1 |?a@b.com?| | 2 |?c@d.com?| | 3 |?a@b.com?| +----+---------+
Id 是這個表的主鍵。