標籤:
/**建立資料庫**/
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學習筆記