1. 程式人生 > >MySQL-mysql 數據類型,操作數據表,記錄操作

MySQL-mysql 數據類型,操作數據表,記錄操作

lar 自動編號 過濾 mysql like show 枚舉 idt 默認值

一,數據類型

技術分享技術分享

各日期類型的開始時間到結束時間:
1、YEAR:1970至2069
2、TIME:-838:59:59至838:59:59
3、DATE:1000-1-1至9999-12-31
4、DATETIME: 1000-1-1 00:00:00至9999-12-31 23:59:59
5、TIMESTAMP存儲範圍:1970-1-1 00:00:00到2037-12-31 23:59:59

字符型
1、CHAR(M):定長類型,比如CHAR(5),如果我們只賦值abc,那麽系統會自動在後面補兩個空格0——255
2、VARCHAR(M):變長類型,L+1個字節,其中L<=M且0<=M0——65535
3、ENUM(‘value1‘,‘value2‘...)枚舉值,提供幾個選項,選擇其中一個,如:性別(‘男‘,‘女‘,‘保密‘)
4、SET(‘value1‘,‘value2‘...) 最多64個成員,可以任選裏面其中幾個,任意排列組合

技術分享技術分享


二,數據表
數據表
1、數據表(或表)是數據庫最重要的組成部分之一,是其他對象的基礎
2、表是一個二維表,行稱為【記錄】,列稱為【字段】
創建數據表
1、首先打開數據庫(數據庫要存在): USE 數據庫名稱
2、創建數據表:CREATE TABLE [IF NOT EXISTS] table_name(
column_name(列名稱) data_type(列類型),
.... )
舉例——
CREATE TABLE tb1(
username VARCHAR(20),
userage TINYINT UNSIGNED,
salary FLOAT(8,2) UNSIGNED,
);

UNSIGNED 無符號

查看數據表:(查看選擇的數據庫的表)
SHOW TABLES [FROM db_name] [LIKE ‘pattern‘ | WHERE expr];(可以用來查看其他數據庫的表列表)
例:
SHOW TABLES;//查看當前選擇的數據庫的所有表
SHOW TABLES FROM TEST;//查看TEST數據庫中的所有表,當前選擇數據庫位置不變。

SELECT DATABASE();//查看當前選擇的數據庫

技術分享技術分享

查看數據表列表
SHOW TABLES [FROM db_name] [LIKE ‘pattern‘ | WHERE expr]
SHOW TABLES; //查看當前數據庫中的表
SHOW TABLES FROM mysql; 
FROM之後,當前數據庫不會發生改變
SHOW COLUMNS FROM tb1; 查看tb1中的數據表結構

技術分享

插入記錄(插入表中的行)
INSERT tbl_name [字段(colume),...] VALUES(val,...);
省略字段後,values(記錄內容必須按照表列順序也就是字段順序以逗號分隔,且插入內容一個不能少);
若不省略字段(可部分省略,省略部分記錄自動為空),values(記錄內容按照字段插入內容,寫幾個字段插入幾個內容);
記錄查找(多表查原理笛卡爾積):
SELECT ecpr(表達式),...FROM tbl_name;
星號是字段的過濾:SELECT * FROM tb1; *字段的過濾,全部記錄

技術分享技術分享

空值與非空:
  NULL,字段值可以為空
  NOT NULL,字段值禁止為空,不賦值會報錯

自動編號 AUTO_INCREMENT 
自動編號,且必須與主鍵配合使用
1、自動編號:保證記錄的唯一性
2、類型必須為整型(可以是FLOAT(5,0)等,小數點後必須為0),必須和主鍵PRIMARY KEY組合使用
3、默認情況下,起始值為1,每次的增量為1
CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCREMENT,
username VARCHAR(30) NOT NULL); //報錯,自動增量字段必須設置成主鍵

技術分享技術分享

主鍵約束
1、唯一性(可以賦值但是不能給兩個記錄賦一樣的值)每張表只存在一個主鍵
2、非空,插入方式與NOT NULL一樣
3、自動編號(AUTO_INCREMENT)必須與主鍵(PRIMARY KEY)搭配使用,主鍵可以不與自動編號一起使用

1.primary key 
主鍵約束
一個表中只能有一個

2.UNIQUE KEY 唯一約束
(1)唯一約束可以保證記錄的唯一性
(2)唯一約束的字段可以為空值(NULL)  (但只能有一個空值)
(3)每張數據表可以存在多個唯一約束

技術分享技術分享

default 默認值(默認約束)
當插入記錄時 如果沒有明確為字段賦值 則自動賦予默認值

技術分享





MySQL-mysql 數據類型,操作數據表,記錄操作