Mysql數據庫-零基礎學習2

 

Mysql數據庫2

  1. 什麼是SQL?
    1. SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專爲數據庫而建立的操作命令集,是一種功能齊全的數據庫語言。在使用它時,只需要發出“做什麼”的命令,“怎麼做”是不用使用者考慮的。
  2. DML(Data Manipulation Language數據操作語言)
    1. 查詢、插入、刪除和修改數據庫中的數據;
    2. SELECT、INSERT、 UPDATE 、DELETE等;
  3. DCL(Data Control Language數據控制語言)
    1. 用來控制存取許可、存取權限等;
    2. GRANT、REVOKE 等;
  4. DDL(Data Definition Language數據定義語言)
    1. 用來建立數據庫、數據庫對象和定義其列
    2. CREATE TABLE 、DROP TABLE、ALTER TABLE 等
  5. 功能函數
    1. 日期函數、數學函數、字符函數、系統函數等
  6. CHAR(size)
    1. 保存固定長度的字符串(可包含字母、數字以及特殊字符)。
    2. 在括號中指定字符串的長度。最多 255 個字符。
  7. VARCHAR(size)
    1. 保存可變長度的字符串(可包含字母、數字以及特殊字符)。
    2. 在括號中指定字符串的最大長度。最多 255 個字符。
    3. 註釋:如果值的長度大於 255,則被轉換爲 TEXT 類型。
  8. TINYTEXT
    1. 存放最大長度爲 255 個字符的字符串。
  9. TEXT
    1. 存放最大長度爲 65,535 個字符的字符串。
  10. BLOB
    1. 用於 BLOBs (Binary Large OBjects)。
    2. 存放最多 65,535 字節的數據。
  11. MEDIUMTEXT
    1. 存放最大長度爲 16,777,215 個字符的字符串。
  12. MEDIUMBLOB
    1. 用於 BLOBs (Binary Large OBjects)。
    2. 存放最多 16,777,215 字節的數據。
  13. LONGTEXT
    1. 存放最大長度爲 4,294,967,295 個字符的字符串。
  14. LONGBLOB
    1. 用於 BLOBs (Binary Large OBjects)。
    2. 存放最多 4,294,967,295 字節的數據。
  15. ENUM(x,y,z,etc.)
  16. Number 類型:數據類型 描述
  17. TINYINT(size)
    1. -128 到 127 常規。
    2. 0 到 255 無符號*。在括號中規定最大位數。
  18. SMALLINT(size)
    1. -32768 到 32767 常規。
    2. 0 到 65535 無符號*。在括號中規定最大位數。
  19. MEDIUMINT(size)
    1. -8388608 到 8388607 普通。
    2. 0 to 16777215 無符號*。在括號中規定最大位數。
  20. INT(size)
    1. -2147483648 到 2147483647 常規。
    2. 0 到 4294967295 無符號*。
    3. 在括號中規定最大位數。
  21. BIGINT(size)
    1. -9223372036854775808 到 9223372036854775807 常規。
    2. 0 到 18446744073709551615 無符號*。在括號中規定最大位數。
  22. FLOAT(size,d)
    1. 帶有浮動小數點的小數字。
    2. 在括號中規定最大位數。在 d 參數中規定小數點右側的最大位數。
  23. DOUBLE(size,d)
    1. 帶有浮動小數點的大數字。
    2. 在括號中規定最大位數。在 d 參數中規定小數點右側的最大位數。
  24. DECIMAL(size,d)
    1. 作爲字符串存儲的 DOUBLE 類型,允許固定的小數點。
    2. 這些整數類型擁有額外的選項 UNSIGNED。通常,整數可以是負數或正數。如果添加 UNSIGNED 屬性,那麼範圍將從 0 開始,而不是某個負數。
  25. Date 類型:數據類型 描述
  26. DATE()
    1. 日期。格式:YYYY-MM-DD  註釋:支持的範圍是從 '1000-01-01' 到 '9999-12-31'
  27. DATETIME()
    1. 日期和時間的組合。格式:YYYY-MM-DD HH:MM:SS
    2. 註釋:支持的範圍是從 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
  28. TIMESTAMP()
    1. 時間戳。TIMESTAMP 值使用 Unix 紀元('1970-01-01 00:00:00' UTC) 至今的描述來存儲。格式:YYYY-MM-DD HH:MM:SS
    2. 註釋:支持的範圍是從 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC
  29. TIME()
    1. 時間。格式:HH:MM:SS 註釋:支持的範圍是從 '-838:59:59' 到 '838:59:59'
  30. YEAR()
    1. 2 位或 4 位格式的年。
    2. 註釋:4 位格式所允許的值:1901 到 2155。2 位格式所允許的值:70 到 69,表示從 1970 到 2069。
  31. 即便 DATETIME 和 TIMESTAMP 返回相同的格式,它們的工作方式很不同。在 Insert 或 Update 查詢中,TIMESTAMP 自動把自身設置爲當前的日期和時間。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。
  32. Decimal
    1. 用於財務數據,定點數。
  33. SQL常用語法:
  34. 創建數據庫:
    1. Create database ‘數據庫名’ character set utf8;
  35. 刪除數據庫
    1. Drop database ‘數據庫名’;
    2. 建立一個表USER,其由四列組成,第一列屬性爲非空,並做爲主鍵,並自增
    3. CREATE TABLE USER (
        ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
        NAME VARCHAR (20),
        PASSWORD VARCHAR (50),
        SEX VARCHAR (2)
      ) ;

       

  36. 刪除一個表:
    1. Drop table user;
  37. PRIMARY  KEY
    1. 主碼約束(主鍵)
  38. UNIQUE
    1. 唯一性約束
  39. NOT  NULL
    1. 非空值約束
  40. AUTO_INCREMENT
    1. 用於整數列默認自增1
  41. UNSIGNED
    1. 無符號整數
  42. DEFAULT default_value
    1. 默認值約束
  43. DEFAULT cur_timestamp
    1. 創建新記錄時默認保存當前時間(僅適用timestamp數據列)
  44. ON UPDATE cur_timestamp
    1. 修改記錄時默認保存當前時間(僅適用timestamp數據列)
  45. CHARACTER SET name
    1. 指定字符集(僅適用字符串)
  46. 主鍵與外鍵
    1. 數據表之間的關聯/引用關係是依靠具體的主鍵(primary key)和外鍵(foreign key)建立起來的。
    2. 主鍵:幫助MySQL以最快的速度把一條特點的數據記錄的位置確定下來。
      • 主鍵必須是唯一的
      • 主鍵應該是緊湊的,因此整數類型比較適合
    3. 外鍵:引用另外一個數據表的某條記錄。
      • 外鍵列類型儘可能與主鍵列類型保持一致
      • 外鍵列應該加上NOT NULL
  47. 主表和從表
    1. -- 創建一個學生表
      create table student(
      	sid int not null auto_increment,
      	name varchar(20) not null,
      	primary key(sid)
      );
      -- 分數表
      create table score(
      	cid int not null auto_increment primary key,
      	score int,
      	sid int,
      	foreign key(sid) references student(sid)
      );

       

  48. 主表和從表明細
    1. 當主表中沒有對應的記錄時,不能將記錄添加到子表
      • 成績表中不能出現在學員信息表中不存在的學號;
    2. 不能更改主表中的值而導致子表中的記錄孤立
      • 把學員信息表中的學號改變了,學員成績表中的學號也應當隨之改變;
    3. 子表存在與主表對應的記錄,不能從主表中刪除該行
      • 不能把有成績的學員刪除了
    4. 刪除主表前,先刪子表
      • 先刪學員成績表、後刪除學員信息表
  49. 最少性
    1. 儘量選擇單個鍵作爲主鍵
  50. 穩定性
    1. 儘量選擇數值更新少的列作爲主鍵

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章