mysql學習筆記

來源:互聯網
上載者:User

標籤:

/**建立資料庫**/
create database testdata;
/**
返回query OK; 則表示建立成功.
**/

/**刪除資料庫**/
drop database testdata;
/**
返回query OK; 表示建立成功
**/

/**展示mysql所支援的引擎**/
show engines;
/**
如果列數太多用;結尾 不是太過美觀,所以可以用\G結尾.
support為default表示資料庫預設是innodb引擎.
**/

/**查看預設的引擎**/
show variables like ‘storage_engine%‘;
/**
要修改預設引擎,則在設定檔裡修改default-storage-engine為你想要的引擎名字即可
**/


/**
myisam預設支援表鎖
innodb預設支援行鎖,但是有時候會鎖表
**/

/**
浮點儲存注意的地方:
float double儲存的是近似值,比如123131309307461630.010 用float double 儲存 值為123131309307461630.000
decimal 內部儲存的是字串,所以精度高 123131309307461630.010 儲存值為123131309307461630.010
**/


/**
char varchar nvarchar

char
char是定長的,也就是當你輸入的字元小於你指定的數目時,char(8),你輸入的字元小於8時,它會再後面補空值。當你輸入的字元大於指定的數時,它會截取超出的字元。

nvarchar(n)
包含 n 個字元的可變長度 Unicode 字元資料。n 的值必須介於 1 與 4,000 之間。位元組的儲存大小是所輸入字元個數的兩倍。所輸入的資料字元長度可以為零。

varchar[(n)]
長度為 n 個位元組的可變長度且非 Unicode 的字元資料。n 必須是一個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。所輸入的資料字元長度可以為零。

varchar 適合存一些數字和字母 nvarchar 適合存漢子
**/


/**建立mysql資料表語句**/
create TABLE test (
id INT(11) AUTO_INCREMENT,
name varchar(55),
year char(4)
) engine=‘myisam‘ default CHARSET=utf8;

/**
欄位類型後面可以增加約束:
NOT NULL 欄位不可為空
DETAULT 預設值 給欄位設定預設值
**/

describe table_name;/**查看錶單位結構,可簡化為desc table_name**/
show create table test;/**查看建立表時的sql語句**/
drop table test;/**刪除資料表**/
alter table old_tablename rename new_tablename;/**修改表的名字**/
alter table test1 add age char(4);/**增加欄位,如果想欄位在第一個,末尾加上first關鍵字 如果要在制定欄位後面加,可以在末尾加上after 欄位名 即可**/

alter table test1 drop 欄位名;/**刪除指定欄位**/
alter table test1 modify age int(2);/**修改指定欄位 可以用first或者after調整欄位順序**/
alter table test1 change agf address char(4);/**修改欄位的名字 char(4)是舊欄位的資料類型 如果改變成varchar(4) 那麼新欄位的資料類型就變為後者 可以用first或者after調整欄位順序**/

/**
注:
CHANGE 對列進行重新命名或更改列的類型,需給定舊的列名稱和新的列名稱、當前的類型
MODIFY 可以改變列的類型,此時不需要重新命名(不需給定新的列名稱) 還可以修改列的順序
**/

 


/**索引筆記 test4為表名**/
innodb myisam 引擎都支援btree 索引,memory 支援hash儲存

/**索引操作**/
alter table test1 add primary key (id);/**添加主鍵索引 括弧裡可為多列**/
alter table test1 drop primary key;/**刪除主鍵索引**/
alter table test1 add ‘索引類型‘ ‘索引名‘ (欄位) /*添加非主鍵索引,欄位可以為多個,用逗號隔開*/
alter table test1 drop index ‘索引名‘;/*刪除非主鍵索引,索引名為建立時指定的名字*/
show index from 表名;/*查看索引*/

/**
查看語句是否用到索引
EXPLAIN sql語句 如果possible_key不為空白,則說明使用到了索引
**/

/*普通索引開始*/
/**建立表時建立普通索引**/
create table test4 (
id int(11) primary key auto_increment,
name varchar(55) NOT NULL DEFAULT ‘‘,
index 索引名 (屬性名稱)
);

/**給已存在的表建立普通索引**/
create index 索引名 on test4 (屬性名稱);
/**alter語句建立普通索引**/
alter table test4 add index 索引名 (屬性名稱);
/**alter語句刪除普通索引**/
alert table test4 drop index 索引名;
/*普通索引結束*/


/**唯一索引開始**/
/**建立表時建立唯一索引**/
create table test4 (
id int(11) primary key auto_increment,
name varchar(55) NOT NULL DEFAULT ‘‘,
UNIQUE INDEX 索引名 (屬性名稱);
);
/**給已存在的表建立唯一索引**/
create unique index 索引名 on test4 (屬性名稱)
/**alter語句建立普通索引**/
alter table test4 add unique index 索引名 (屬性名稱);
/**刪除方法同普通索引**/
/**唯一索引結束**/


/**全文索引 把唯一索引裡的unique換成fulltext就是全文索引的建立方法**/

/**刪除索引開始**/
/**刪除索引的文法形式**/
drop index 索引名 on test4;/*刪除索引*/
/**alter語句刪除普通索引**/
alert table test4 drop index 索引名;
/**刪除主鍵 因為主鍵只會有一個,所以不用指定名字**/
alert table test4 drop primary key;
/**刪除索引結束**/

 


/**視圖**/
/**建立視圖文法 sql語句規範中,視圖命名首碼一般為view_xxx or v_xxx來命名**/
create view 視圖名 as sql語句;

/**使用視圖**/
select * from 視圖名
/**查看建立視圖時候的語句**/
show create view 試圖名;
/**查看視圖結構**/
desc 視圖名

/**刪除視圖**/
drop view 視圖名1,視圖名2

/**修改視圖**/
create or replace view 視圖名 as sql語句

/**alter創修改視圖方法**/
alter view 視圖名 as sql語句;

/**
視圖算是一張虛擬表,通過指定sql查出表裡的欄位和值 放入視圖虛表,視圖和基本表是互相影響的,相當於基本表內容的快照 如果視圖來自多個基本表,則添加刪除不起效
**/


/*觸發器*/
/*
能夠使用觸發器的三個操作:
insert
delete
update
*/


/*建立觸發器文法*/
-- create trigger insert1 before insert on user for each row insert into nickname (name) values (‘rocky‘);

-- 基本文法:create trigger 觸發器名字 觸發時間(after/before) 觸發事件(insert/delete/update) on 表名 for each row 觸發時候執行的語句;
/*
對於insert 只有new
對於delete 只有old
對於update old new都通用
*/
/*delimiter &&
create trigger insert2 after insert
on user for each row
begin
insert into nickname (nickname) values (new.uid);
insert into nickname (nickname) values (new.uid);
end
&& delimiter;*/

-- 這裡的new.uid 是插入後所產生的主鍵
/*觸發器多條語句 delimiter 結束符號 修改結束符號*/

/*查看觸發器*/
show triggers;

/*刪除觸發器*/
drop trigger 觸發器名;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/**建立資料庫**/
create database testdata;
/**
返回query OK; 則表示建立成功.
**/

/**刪除資料庫**/
drop database testdata;
/**
返回query OK; 表示建立成功
**/

/**展示mysql所支援的引擎**/
show engines;
/**
如果列數太多用;結尾 不是太過美觀,所以可以用\G結尾.
support為default表示資料庫預設是innodb引擎.
**/

/**查看預設的引擎**/
show variables like ‘storage_engine%‘;
/**
要修改預設引擎,則在設定檔裡修改default-storage-engine為你想要的引擎名字即可
**/


/**
myisam預設支援表鎖
innodb預設支援行鎖,但是有時候會鎖表
**/

/**
浮點儲存注意的地方:
float double儲存的是近似值,比如123131309307461630.010 用float double 儲存 值為123131309307461630.000
decimal 內部儲存的是字串,所以精度高 123131309307461630.010 儲存值為123131309307461630.010
**/


/**
char varchar nvarchar

char
char是定長的,也就是當你輸入的字元小於你指定的數目時,char(8),你輸入的字元小於8時,它會再後面補空值。當你輸入的字元大於指定的數時,它會截取超出的字元。

nvarchar(n)
包含 n 個字元的可變長度 Unicode 字元資料。n 的值必須介於 1 與 4,000 之間。位元組的儲存大小是所輸入字元個數的兩倍。所輸入的資料字元長度可以為零。

varchar[(n)]
長度為 n 個位元組的可變長度且非 Unicode 的字元資料。n 必須是一個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。所輸入的資料字元長度可以為零。

varchar 適合存一些數字和字母 nvarchar 適合存漢子
**/


/**建立mysql資料表語句**/
create TABLE test (
id INT(11) AUTO_INCREMENT,
name varchar(55),
year char(4)
) engine=‘myisam‘ default CHARSET=utf8;

/**
欄位類型後面可以增加約束:
NOT NULL 欄位不可為空
DETAULT 預設值 給欄位設定預設值
**/

describe table_name;/**查看錶單位結構,可簡化為desc table_name**/
show create table test;/**查看建立表時的sql語句**/
drop table test;/**刪除資料表**/
alter table old_tablename rename new_tablename;/**修改表的名字**/
alter table test1 add age char(4);/**增加欄位,如果想欄位在第一個,末尾加上first關鍵字 如果要在制定欄位後面加,可以在末尾加上after 欄位名 即可**/

alter table test1 drop 欄位名;/**刪除指定欄位**/
alter table test1 modify age int(2);/**修改指定欄位 可以用first或者after調整欄位順序**/
alter table test1 change agf address char(4);/**修改欄位的名字 char(4)是舊欄位的資料類型 如果改變成varchar(4) 那麼新欄位的資料類型就變為後者 可以用first或者after調整欄位順序**/

/**
注:
CHANGE 對列進行重新命名或更改列的類型,需給定舊的列名稱和新的列名稱、當前的類型
MODIFY 可以改變列的類型,此時不需要重新命名(不需給定新的列名稱) 還可以修改列的順序
**/

 


/**索引筆記 test4為表名**/
innodb myisam 引擎都支援btree 索引,memory 支援hash儲存

/**索引操作**/
alter table test1 add primary key (id);/**添加主鍵索引 括弧裡可為多列**/
alter table test1 drop primary key;/**刪除主鍵索引**/
alter table test1 add ‘索引類型‘ ‘索引名‘ (欄位) /*添加非主鍵索引,欄位可以為多個,用逗號隔開*/
alter table test1 drop index ‘索引名‘;/*刪除非主鍵索引,索引名為建立時指定的名字*/
show index from 表名;/*查看索引*/

/**
查看語句是否用到索引
EXPLAIN sql語句 如果possible_key不為空白,則說明使用到了索引
**/

/*普通索引開始*/
/**建立表時建立普通索引**/
create table test4 (
id int(11) primary key auto_increment,
name varchar(55) NOT NULL DEFAULT ‘‘,
index 索引名 (屬性名稱)
);

/**給已存在的表建立普通索引**/
create index 索引名 on test4 (屬性名稱);
/**alter語句建立普通索引**/
alter table test4 add index 索引名 (屬性名稱);
/**alter語句刪除普通索引**/
alert table test4 drop index 索引名;
/*普通索引結束*/


/**唯一索引開始**/
/**建立表時建立唯一索引**/
create table test4 (
id int(11) primary key auto_increment,
name varchar(55) NOT NULL DEFAULT ‘‘,
UNIQUE INDEX 索引名 (屬性名稱);
);
/**給已存在的表建立唯一索引**/
create unique index 索引名 on test4 (屬性名稱)
/**alter語句建立普通索引**/
alter table test4 add unique index 索引名 (屬性名稱);
/**刪除方法同普通索引**/
/**唯一索引結束**/


/**全文索引 把唯一索引裡的unique換成fulltext就是全文索引的建立方法**/

/**刪除索引開始**/
/**刪除索引的文法形式**/
drop index 索引名 on test4;/*刪除索引*/
/**alter語句刪除普通索引**/
alert table test4 drop index 索引名;
/**刪除主鍵 因為主鍵只會有一個,所以不用指定名字**/
alert table test4 drop primary key;
/**刪除索引結束**/

 


/**視圖**/
/**建立視圖文法 sql語句規範中,視圖命名首碼一般為view_xxx or v_xxx來命名**/
create view 視圖名 as sql語句;

/**使用視圖**/
select * from 視圖名
/**查看建立視圖時候的語句**/
show create view 試圖名;
/**查看視圖結構**/
desc 視圖名

/**刪除視圖**/
drop view 視圖名1,視圖名2

/**修改視圖**/
create or replace view 視圖名 as sql語句

/**alter創修改視圖方法**/
alter view 視圖名 as sql語句;

/**
視圖算是一張虛擬表,通過指定sql查出表裡的欄位和值 放入視圖虛表,視圖和基本表是互相影響的,相當於基本表內容的快照 如果視圖來自多個基本表,則添加刪除不起效
**/


/*觸發器*/
/*
能夠使用觸發器的三個操作:
insert
delete
update
*/


/*建立觸發器文法*/
-- create trigger insert1 before insert on user for each row insert into nickname (name) values (‘rocky‘);

-- 基本文法:create trigger 觸發器名字 觸發時間(after/before) 觸發事件(insert/delete/update) on 表名 for each row 觸發時候執行的語句;
/*
對於insert 只有new
對於delete 只有old
對於update old new都通用
*/
/*delimiter &&
create trigger insert2 after insert
on user for each row
begin
insert into nickname (nickname) values (new.uid);
insert into nickname (nickname) values (new.uid);
end
&& delimiter;*/

-- 這裡的new.uid 是插入後所產生的主鍵
/*觸發器多條語句 delimiter 結束符號 修改結束符號*/

/*查看觸發器*/
show triggers;

/*刪除觸發器*/
drop trigger 觸發器名;

 

mysql學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.