time:2018.3.29 01:34
設定嚮導檔案位於c:/program files/mysql/bin/mysqlinstanceconfig.exe
可以用它來對mysql進行一些設定
mysql預設埠號:3306
mysql中超級使用者:root
mysql配置檔案
編輯資料表的預設儲存引擎
default-storage-engine=innodb
select version(); // 用於顯示當前伺服器版本
select now(); // 用於顯示當前日期時間
select user(); //用於顯示當前使用者
整型
tinyint 1個位元組
smallint 2個位元組
mediumint 3個位元組
int 4個位元組
bigint 8個位元組
浮點型float
double
日期時間型year
time
date
datetime
timestamp
字元型char(m) m位元組 定長型別,不足補齊
varchar(m) l+1個位元組 變長型別
tinytext l+1個位元組 l<2^8
text l+2個位元組 l<2^16
mediumtext l+3個位元組 l<2^24
longtext l+4個位元組 l<2^32
enum('value1','value2',...) 1或者2個位元組,取決於列舉值個數
set('value1','value2',...) 1,2,3,4或8個位元組,取決於set成員數目
use命令- 開啟資料庫
- use 資料庫名稱;
建立資料表create table [if not exists] table_name(
column_name data_type,
...);
自動編號
auto_increment
- 自動編號,且必須與主鍵組合使用(自動編號的一定要為主鍵)
- 預設情況下,初始值為1,每次增加1
非空約束
null / not null
- null,字段值可以為空
- not null,字段值禁止為空
- 類似unsigned的用法,在後面寫
主鍵約束
primary key
- 主鍵約束
- 每張資料表只能有乙個主鍵
- 主鍵保證記錄的唯一性(值不允許相同)
- 主鍵自動為not null
唯一約束
unique key
- 唯一約束
- 唯一約束可保證記錄的唯一性
- 唯一約束的字段可以為空值(null)
- 每張資料表可以存在多個唯一約束
預設約束
default
- 預設值
- 當插入記錄時,如果沒有明確為字段賦值,則自動賦予預設值
- 後面緊跟預設值
外來鍵約束
foreign key
保持資料一致性,完整性
實現一對一或一對多關係
外來鍵約束的要求
1. 父表和子表必須使用相同的儲存引擎,而且禁止使用臨時表。
2. 資料表的儲存引擎只能為innodb。
3. 外來鍵列和參照列必須具有相似的資料型別。其中數字的長度或是否有符號位必須相同;而字元的長度則可以不同。
4. 外來鍵列和參照列必須建立索引。如果外來鍵列不存在索引的話,mysql將自動建立索引。
外來鍵約束的參照操作
1. cascade: 從父表刪除或更新且自動刪除或更新子表中匹配的行
2. set null: 從父表刪除或更新行,並設定子表的外來鍵列為null,如果使用該選項,必須保證子表沒有指定not null
3. restrict: 拒絕對父表的刪除或更新操作
4. no action: 標準sql的關鍵字,在mysql中與restrict相同
表級與列級約束
對乙個資料列建立的約束,稱為列級約束
對多個資料列建立的約束,稱為表級約束
列級約束既可以在列定義時宣告,也可以在列定義後宣告
表級約束只能在列定義後宣告
show tables
- 檢視資料表列表
- show tables [from db_name] [like 'pattern' | where expr];
show columns- 檢視資料表結構
- show columns from tbl_name;
insert- 插入記錄
- insert [into] tbl_name [(col_name,...)] values(val,...);
select- 記錄查詢
- select expr,...from tbl_name;
修改列新增一列
alter table tbl_name add [column] col_name column_definition [first | after col_name];
新增多列
alter table tbl_name add [column] (col_name column_definition,...);
刪除列alter table tbl_name drop [column] col_name;
(要刪除多列的話,在後面加,drop [column] col_name,...)
新增約束新增主鍵約束
alter table tbl_name add [constraint [symbol]] primary key [index_type] (index_col_name,...);
新增唯一約束
alter table tbl_name add [constraint [symbol]] unique [index | key] [index_name] [index_type] (index_col_name,...);
新增外來鍵約束
alter table tbl_name add [constraint [symbol]] foreign key [index_name] (index_col_name,...) reference_definition;
新增/刪除預設約束
alter table tbl_name alter [column] col_name
Mysql學習日記
今天在csdn看到了乙個笑話,是這麼寫的 程式猿的讀書歷程 x語言入門 x語言應用實踐 x語言高階程式設計 x語言的科學與藝術 程式設計之美 程式設計之道 程式設計之禪 頸椎病 指南。然後我默默看了看書架,任重而道遠啊,感覺自己還要努力,爭取早日讀到勁椎病 指南 今天花時間複習了mysql的列資料型...
MySQL 學習日記 二
我只是將文件裡的一些東西寫了下來,我的學習參考也是在網上找的乙個中文文件,有人需要的話可以去提 mysql 中的一些特殊處理 select from where item 等價於strings query select from where item include using namespace ...
mysql學習日記之索引
在mysql資料庫中,資料的查詢是我們經常用到的操作。在查詢的時候,我們經常是根據一些條件進行過濾而不是把所有的記錄都查詢出來,當乙個表中的記錄很多的時候,有時候我們查詢一條記錄可能需要遍歷整張表,這樣效率是非常低下的,建立索引可以有效提高查詢效率。簡單的分,索引可以分為單列索引和組合索引 單列索引...