Mysql數(shù)據(jù)庫:端口號3306搬味,超級用戶 root unsigned 正值
修改提示符:--prompt 提示符
常見定義
參數(shù):\D 完整的日期 \d當(dāng)前數(shù)據(jù)庫 \h服務(wù)器名稱 \u 當(dāng)前用戶
數(shù)據(jù)是否可以為空:NULL NOT NULL
編號:與主鍵組合使用米诉,起始值為1. AUTO_INCREMENT
主鍵:PRIMARY KEY或者KEY。每張表只存在一個主鍵吴攒;主鍵自動設(shè)置為NOT NULL;主鍵保證記錄唯一性。編號必須和主鍵配合使用纤怒,而主鍵不一定和編號配合使用骨杂。
外鍵:FOREIGN KEY。保持數(shù)據(jù)的一致性莫瞬,完整性儡蔓;實現(xiàn)一對一或一對多的關(guān)系。外鍵列和參照列必須有相似的數(shù)據(jù)類型疼邀。若是數(shù)字喂江,則其長度和有無符號位必須相同,而字符的長度可以不同旁振。數(shù)據(jù)表的存儲引擎只能是InnoDB获询。
子表:具有外鍵列,子表所參照的表叫做父表拐袜。
唯一約束:UNIQUE KEY吉嚣。允許為空;每張表可以有多個唯一約束蹬铺;保證記錄唯一性(存儲過程中保留空值只能有一個)尝哆。
默認值:DEFAULT。當(dāng)插入字段是甜攀,如果沒有明確賦值秋泄,系統(tǒng)自動賦予默認值。
外鍵約束的參照操作:
- 1规阀、CASCADE:在父表中進行刪除或更新時恒序,子表對應(yīng)行也進行改變肛循。
- 2顾稀、SET NULL:必須保證子表列沒有設(shè)置成NOT NULL情況下,才能隨父表進行刪除或更新桶现,并設(shè)置子表中的外鍵列為NULL厉碟。
- 3喊巍、RESTRICT:拒絕對父表的刪除或者更新。
- 4墨榄、NO ACTION:與RESTRICT相同玄糟。
數(shù)據(jù)類型
整型(TINYINT、SMALLINT袄秩、MEDIUMINT阵翎、INT、BIGINT)
浮點型(FLOAT[(M之剧、D]郭卫、DOUBLE[(M、 D)])M數(shù)字總位數(shù) D小數(shù)點后總位數(shù)
日期時間型:YEAR TIME DATE DATATIME TIMESTAMP
常用sql語句
show status like 'uptime'; // 查詢數(shù)據(jù)庫開啟時間
show status like 'com_insert'; // 查詢insert操作次數(shù)背稼,可以換成update贰军、select等
show status like 'slow_queries'; // 顯示慢查詢的次數(shù)
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name; //創(chuàng)建數(shù)據(jù)庫
ALTER {DATABASE|SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name; //修改數(shù)據(jù)庫編碼方式
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name; //刪除數(shù)據(jù)庫
CREATE USER 'yzw' INDITIFIED BY '123456'; //創(chuàng)建用戶
GRAND ALL PRIVILEGES test.sudent TO yzw INDITIFIED BY '123456'; //用戶授權(quán),如果授權(quán)部分權(quán)限時可以將all privileges改為 select,insert词疼,update等
SET PASSWORD FOR 'yzw' = password('123123'); //修改用戶密碼
REVOKE PRIVILEGE ON test.student FROM 'yzw'; // 刪除用戶權(quán)限俯树,可將privilege改為select,insert贰盗,update從而刪除部分權(quán)限
DROP USER 'yzw'; //刪除用戶
SHOW GRANDS FOR 'yzw'; //查看用戶權(quán)限
CREATE TABLE [IF NOT EXISTS] table_name (
id TINYINT NOT NULL,
name VARCHAR(10),
INDEX (id),
PRIMARY KEY (name),
)许饿;//創(chuàng)建數(shù)據(jù)表
SHOW TABLE [FROM db_name] [LIKE 'pattern'|WHERE expr] //查看數(shù)據(jù)表
SHOW COLUMNS FROM tbl_name //查看數(shù)據(jù)表結(jié)構(gòu)
INSERT [INTO] tbl_name [(col_name)] VALUES (val,......); //插入記錄
FOREIGN KEY (f_name) REFERENCES tbl_name (p_name); //外鍵約束
SHOW CREATR TABLE tbl_name; //顯示表結(jié)構(gòu)
SHOW INDEXES FROM tbl_name (\G按列顯示); //顯示索引
ALTER TABLE tbl_name ADD 字段名 數(shù)據(jù)類型 約束條件[FIRST|AFTER col_name]; //添加一列
ALTER TABLE tbl_name ADD[CONSTERAINT(約束)[symbol(約束名字)]] PRIMAEY KEY[index_type](index_col_name(主鍵),.....); //添加主鍵約束
ALTER TABLE tbl1 ALTER SET/DROP age DEFAULT'34'; //添加或刪除默認約束
ALTER TABLE tbl DROP PRIMARY KEY;(只有一個主鍵不需要寫名字) //刪除主鍵約束
ALTER TABLE tbl DROP {INDEX|KEY} index_name; //刪除唯一約束
ALTER TABLE tbl MODIFY[COLUMN] id (要修改成的條件) SMALLINT....[FIRSE|AFTER col_name(某個字段)] //修改列定義
ALTER TABLE tbl RENAME [TO|AS] tbl1; //數(shù)據(jù)表更名
RENAME tbl TO tbl1 [tb TO tb1,.......]
DELETE FROM tbl WHERE id=1; //刪除表中數(shù)據(jù)
//查找語句
SELECT id AS userid,username AS uname FROM users; //為表中的字段重新定義一個名字
//GROUP BY:分組顯示
//HAVING:分組條件
//ORDER BY:對分組進行排列[ACE|DESC]
//LIMIT:限制查詢返回數(shù)量
SELECT*FROM users LIMIT 2;
SELECT*FROM users LIMIT 3,2;
//子查詢(SubQuery):嵌套在查詢內(nèi)部舵盈,放在圓括號里面陋率。
//將查詢后的結(jié)果寫入表中
INSERT [INTO] tbl [(id,username)]
SELCET...
//連接類型:
//1、內(nèi)連接(INNER JOIN):顯示兩表中符合連接條件的部分秽晚。
//2瓦糟、左外連接(LEFT[OUTER] JOIN):顯示左表中的全部和右表中符合條件的部分。
//3赴蝇、右外連接(RIGHT[OUTER] JOIN)
//兩張表連接更新:
//方法一:
UPDATE tbl1(要更新的表) INNER JOIN tbl2(參考表) ON tbl1.id=tbl2.id(條件) SET...
//方法二:創(chuàng)建一張新表菩浙,創(chuàng)建新的字段用于保存查找后的結(jié)果。
CREATE TABLE [IF NOT EXIST] tbl
create_name ....
SELECT...
//當(dāng)兩張表連接時扯再,兩表中存在相同的字段芍耘,因此可以給同名字段賦予不同的別名。數(shù)據(jù)表在使用過程中可以賦予別名使用熄阻。
// mysql 生成日報斋竞、周報、月報和年報方法
1秃殉、日報/周報/月報/年報
select date/week/month/year (F_InputDate) as date, count(F_Id) as count from t_inquiry group by date;
2坝初、某年某月
select date_format(F_InputDate,'%Y-%m') as date, count(F_Id) from t_inquiry group by date;
3、某年某周
select date_format(F_InputDate,'%Y-%w') as date, count(F_Id) from t_inquiry group by date;
dater_format() 方法參數(shù)說明