mysql--平日點滴知識隨筆(待續)
(都是平時專案過程中的零碎知識疑惑點,哈哈,現在存放在這,以後筆試複習用!加油!!)
1. table表中的id欄位設定為int
auto_increment時:
insert into table values(null,’**’);新增的記錄的id=已有的id+1;
insert into table values(34,’**’);新增的記錄的id=34;
是故,當制定了id的具體數值時,則用那個數值,否則就原有的最大id再+1;
2. alter table tb_name add column_name column_type;一次只能新增一個欄位
3. mysql中:
alter table 資料表名 change 原列名 新列名 新列型別;
oracle中:
alter table 資料表名 rename 原列名 to 新列名;
4. 外來鍵一定是主表的主關鍵字,不一定是從表的關鍵字!
5. unsigned一般是無符號的意思,比如unsigned int就是無符號整數的意思,一般有符號數的最高位是符號位,表示資料的正負,不表示大小,而無符號數的最高位是表示資料的大小,這樣無符號數表示的資料範圍要比有符號數大一倍
這裡的id一般表示序號,所以設定為unsigned屬性,這樣的設計更科學合理。
6. Blob (Binary large objects)儲存二進位資料,且有分大小寫
7. 辨別ZeroFill:當宣告關鍵字ZeroFill為自動填滿0,如 000021
8. Mysql中只有char(n)是固定長度的!
9. 9. create table test(time datetime);
insert into test values(1992-01-01 12:00:00);
為什麼第二句錯誤,手動插不了值
答案: 改為insert into test values(‘1992-01-01 12:00:00’);
10. 資料庫表設計的一個經驗:
a. 一定要有個 int 的自增主鍵。即便當前沒有自增的需求,也應當設定,以便在日後的應用場景中使用。
b. 有一個記錄插入的時間綴。
c. 有一個記錄更新的時間綴。這個欄位預設值可以設定為當前時間綴,並且在記錄更新時自動重新整理時間綴。
11. 在mysql中所有的資料庫物件的名稱都是大寫的,雖然我們命名時小寫了,但是引擎會自動轉換成大寫!
12. 使用innoDB引擎建立外來鍵時,要注意除了資料型別,長度要相同外,還要求:無符號,填充零,也要一致!!
13. 注意:儲存過程相當於程式,執行到錯誤或異常之處也會停止,而且已經執行的操作的結果不會回滾!!
14. DATETIME、DATE允許“不嚴格”的語法:任何標點符都可以用做日期部分或時間部分之間的間割符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等價的。例如,'98-12-31'、'98.12.31'、'98/12/31'和'98@12@31'是等價的。但是注意:1.標點符不包括字母 2.年月日 和 時分秒的間隔符不一定要相同,但兩模組中各自內部的間隔符要求一致。
15. 對於一些沒有間隔符的數字模式,例如‘19980903122321’就是符合‘YYYYMMDDHHMMSS’模式的,mysql會自動將之識別並按照對應的欄位型別解釋成對應的形式!!
例如:1.‘YYYYMMDDHHMMSS’-----如果欄位型別是dateTime--------à ’ YYYY-MM-DD HH:MM:SS’
‘19980903122321’à ‘1998-09-03 12:23:21’
2. ‘YYYYMMDDHHMMSS’-----如果欄位型別是date--------à’ YYYY-MM-DD’
3. ‘YYYYMMDD’-----如果欄位型別是datetime-------à ‘YYYY-MM-DD 00:00:00 ’
由上面的例子可知,日期型別的使用真的是很靈活!!dbms真的很智慧!
16. 儘管可以使用相同的格式指定DATETIME、DATE和TIMESTAMP值,不同型別的值的範圍卻不同。例如,TIMESTAMP值不能早於1970或晚於2037。這說明一個日期,例如'1968-01-01',雖然對於DATETIME或DATE值是有效的,但對於TIMESTAMP值卻無效,如果分配給這樣一個物件將被轉換為0。
17. 在mysql中,有預設值的不允許null的欄位和自增長欄位,都可以不用在insert 語句中標明欄位,因為它們會自己解決掉!
如:表:student(id int primary key auto-increment,name varchar(2) not null default ‘luo’,class varchar(2) not null)
Insert into student(class) values(‘class2’);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1461593/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- lzma 知識點滴
- 知識盲點 隨筆筆記筆記
- 物化檢視知識點滴
- Python小知識點隨筆Python
- C++知識點隨筆(六):模板C++
- C++知識點隨筆(五):虛繼承C++繼承
- MySQL--基礎知識點--65--組合查詢MySql
- MySQL--基礎知識點--DDL/DCL/DML/DPL/DQL/CCLMySql
- 前端知識點(持續更新)前端
- Objective -C基礎知識點整理筆記持續更新......Object筆記
- numpy知識點筆記筆記
- 生物知識點筆記筆記
- 生活點滴小筆記筆記
- C++知識點隨筆(三):static、const、friend、inlineC++inline
- iOS--小知識點(持續更新)iOS
- C++知識點 —— 整合(持續更新中)C++
- Mysql索引讀書筆記(待續)MySql索引筆記
- vueX基礎知識點筆記Vue筆記
- 筆試題知識點總結筆試
- Redis知識點筆記總結Redis筆記
- C/C++【知識點筆記】C++筆記
- 物件與類_知識點筆記物件筆記
- GDI+學習筆記--未完待續筆記
- 小程式學習筆記(未完待續)筆記
- React學習筆記知識點整理React筆記
- 一些有點奇怪的知識(持續更新)
- 知識點
- asm點滴ASM
- oracle點滴Oracle
- Html標籤知識點學習筆記HTML筆記
- 命題邏輯重要知識點筆記筆記
- C++知識點隨筆(四):耦合問題、new和malloc、虛析構、多繼承C++繼承
- [Android學習筆記]雜碎知識(持續更新)Android筆記
- 前端知識點總結——JS高階(持續更新中)前端JS
- 排序【未完待續】排序
- Promise學習筆記(知識點 + 手寫Promise)Promise筆記
- 三、執行緒池知識點整理筆記執行緒筆記
- 攜程演算法筆試題知識點演算法筆試