mySQL学習入門チュートリアル——5.一般的な高度な操作
4559 ワード
五、mysqlでよく使われる高度な操作
一、MySQLテーブルはcreate table t 2 like t 1をコピーする.#テーブル構造をコピーし、t 2はt 1のすべてのテーブル構造insert into t 2 select*from t 1を学習することができる.#テーブルデータをコピーしますが、カラムの対応を考慮していないため、t 1とt 2のテーブル構造が完全に一致しているため、今回の操作でエラーは発生しません.提案:insert into t 3(name)select name from t 1;コピーされた列の指定
二、MySQL索引1、直接作成索引create index index_name on table_name(column_list);#一般インデックス作成create unique index index_name on table_name(colume_list);#一意のインデックスを作成します.一意のインデックスを作成する前に、カラムに重複値がないことを確認してください.そうしないと、作成に失敗します.
2、直接削除索引drop index index_name on table_name;
3、修正-索引alter table table_を作成するname add index [index_name](colum_list);#通常インデックスalter table table_の作成name add unique [index_name](column_list);#一意のインデックスを作成alter table table_name add primary key [index_name](column_list);#indexを追加しない場合は、プライマリ・キー・インデックスを作成します.name、column_を使用リストをデフォルトのインデックス名として使用
4、修正-索引alter table table_を削除するname drop index index_name;#通常/一意インデックスalter table tableを削除_name drop primary key;#プライマリ・キー索引の削除
【推奨使用方法3、4】1、索引の表示:show index from t 1G 2、alter table table_name modify id int not null;(modifyでインデックスを修正したのは調べられませんでしたが、addで修正したようです?)
三、MySQLビュー:一つの条件を通して、一部のデータを一枚の表から抽出し、中間表を形成する.name as select *from table_naem where id > 4 and id <= 10;
3、作成したビューshow tablesを表示する;ビューは中間テーブル3で、ビュー内のデータselect*from view_を表示します.name; #表データの表示と同じ
4、削除ビューdrop view_name;
四、MySQL内蔵関数補足表示関数の作用と簡単な例:function_namee.g. lcase;
1、文字列関数1)lcase("string")/ucase("string")#を小文字/大文字に変換し、lower(str)/upper(str)と同じ2)length("string")#文字列の長さを返す3)repeat("string",n)#文字をn回4)space(n)から繰り返す#n個のスペースを生成
2、数学関数1)bin(decimal_number)#10進数変換2)ceiling(n)#の作用はceilと同じで、3)sqrt(n)#開平方4)max(col)/min(col)#最大/最小値、集約時に5)rand()#を使用して乱数select*from table_を生成name order by rand(); #rand関数をソート基準として使用する
3、日付関数1)datediff(expr 1,expr 2)#はexpr 1とexpr 2の差の日数を返し、expr 1>expr 2の場合は正の値を返します
***********************************************************************************************************************************************
五、MySQL前処理文1、前処理stmtを設定し、whereの判断条件prepare stmt from「select*from table_name where id」;
2、変数set@i=1を設定する.
3、前処理文execute stmt using@iを実行する.
4、前処理指令drop prepare stmtを削除する.
六、MySQL取引【注意】MyISAMストレージエンジンは取引に対してサポートしていない.InnoDBストレージエンジンを使うべきである
七、MySQLストレージ1、ストレージp 1を作成する()
2、p 1()call p 1()を実行する.3、procedureのstatus情報show procedure statusGを見る
4、procedurep 1の具体的な情報show create procedure p 1Gを表示する
八、MySQLフリップフロップ1、フリップフロップ作成#t 1というフリップフロップを作成し、t 1テーブルにデータを挿入すると、動作を開始する:t 2テーブルに数を挿入する
#フリップフロップt 2を作成し、テーブルt 1がデータを削除するとフリップフロップが開始され、テーブルt 2のデータも削除される
#フリップフロップt 3を作成し、テーブルt 1を変更すると、t 2のレコードも変更される
2、トリガdrop trigger trigger_を削除するname;
【添付】テーブル内のすべてのデータを削除する:truncatetable_name; #速度が速く、auto_もクリアできます.incrementリスト
九、再配置auto_increment値MySQLで自動的に増加したIDはどのように回復しますか?1、テーブルを空にするときはdelete from table_を使わないname;代わりに:truncate[table]table_name;
または2、コンテンツをクリアした後、alterコマンドを使用してテーブルalter table table_を直接変更するname auto_increment = 1;
http://blog.csdn.net/zjf280441589/article/details/20217647
http://blog.csdn.net/zjf280441589/article/details/20230427
一、MySQLテーブルはcreate table t 2 like t 1をコピーする.#テーブル構造をコピーし、t 2はt 1のすべてのテーブル構造insert into t 2 select*from t 1を学習することができる.#テーブルデータをコピーしますが、カラムの対応を考慮していないため、t 1とt 2のテーブル構造が完全に一致しているため、今回の操作でエラーは発生しません.提案:insert into t 3(name)select name from t 1;コピーされた列の指定
二、MySQL索引1、直接作成索引create index index_name on table_name(column_list);#一般インデックス作成create unique index index_name on table_name(colume_list);#一意のインデックスを作成します.一意のインデックスを作成する前に、カラムに重複値がないことを確認してください.そうしないと、作成に失敗します.
2、直接削除索引drop index index_name on table_name;
3、修正-索引alter table table_を作成するname add index [index_name](colum_list);#通常インデックスalter table table_の作成name add unique [index_name](column_list);#一意のインデックスを作成alter table table_name add primary key [index_name](column_list);#indexを追加しない場合は、プライマリ・キー・インデックスを作成します.name、column_を使用リストをデフォルトのインデックス名として使用
4、修正-索引alter table table_を削除するname drop index index_name;#通常/一意インデックスalter table tableを削除_name drop primary key;#プライマリ・キー索引の削除
【推奨使用方法3、4】1、索引の表示:show index from t 1G 2、alter table table_name modify id int not null;(modifyでインデックスを修正したのは調べられませんでしたが、addで修正したようです?)
三、MySQLビュー:一つの条件を通して、一部のデータを一枚の表から抽出し、中間表を形成する.name as select *from table_naem where id > 4 and id <= 10;
3、作成したビューshow tablesを表示する;ビューは中間テーブル3で、ビュー内のデータselect*from view_を表示します.name; #表データの表示と同じ
4、削除ビューdrop view_name;
四、MySQL内蔵関数補足表示関数の作用と簡単な例:function_namee.g. lcase;
1、文字列関数1)lcase("string")/ucase("string")#を小文字/大文字に変換し、lower(str)/upper(str)と同じ2)length("string")#文字列の長さを返す3)repeat("string",n)#文字をn回4)space(n)から繰り返す#n個のスペースを生成
2、数学関数1)bin(decimal_number)#10進数変換2)ceiling(n)#の作用はceilと同じで、3)sqrt(n)#開平方4)max(col)/min(col)#最大/最小値、集約時に5)rand()#を使用して乱数select*from table_を生成name order by rand(); #rand関数をソート基準として使用する
3、日付関数1)datediff(expr 1,expr 2)#はexpr 1とexpr 2の差の日数を返し、expr 1>expr 2の場合は正の値を返します
***********************************************************************************************************************************************
五、MySQL前処理文1、前処理stmtを設定し、whereの判断条件prepare stmt from「select*from table_name where id」;
2、変数set@i=1を設定する.
3、前処理文execute stmt using@iを実行する.
4、前処理指令drop prepare stmtを削除する.
六、MySQL取引【注意】MyISAMストレージエンジンは取引に対してサポートしていない.InnoDBストレージエンジンを使うべきである
set autocommit = 0; #
delete from t1 where id > 4;
savepoint p1; #
delete from t1;
rollback to p1; # p1
rollback; #
commit ; #
set autocommit = 1; # ,
七、MySQLストレージ1、ストレージp 1を作成する()
mysql>\d // # //
mysql>create procedure p1()
->begin
->set @i = 0;
->while @i < 100 do
->insert into t2(name) values(concat("user",@i));
->set @i = @i + 1;
->end while;
->end;//
mysql>\d ;
2、p 1()call p 1()を実行する.3、procedureのstatus情報show procedure statusGを見る
4、procedurep 1の具体的な情報show create procedure p 1Gを表示する
八、MySQLフリップフロップ1、フリップフロップ作成#t 1というフリップフロップを作成し、t 1テーブルにデータを挿入すると、動作を開始する:t 2テーブルに数を挿入する
mysql>\d //
mysql>create trigger t1 before inserton t1 for each row
->begin
->insert into t2(name) values(new.name);
->end//
mysql>\d ;
#フリップフロップt 2を作成し、テーブルt 1がデータを削除するとフリップフロップが開始され、テーブルt 2のデータも削除される
mysql>\d //
mysql>create trigger t2 before delete on t1 for each row
->begin
->delete from t2 where id =old.id;
->end//
mysql>\d ;
#フリップフロップt 3を作成し、テーブルt 1を変更すると、t 2のレコードも変更される
mysql>\d //
mysql>create trigger t3 before update on t1 for each row
->begin
->update t2 set id =new.id where id = old.id;
->end//
mysql>\d ;
2、トリガdrop trigger trigger_を削除するname;
【添付】テーブル内のすべてのデータを削除する:truncatetable_name; #速度が速く、auto_もクリアできます.incrementリスト
九、再配置auto_increment値MySQLで自動的に増加したIDはどのように回復しますか?1、テーブルを空にするときはdelete from table_を使わないname;代わりに:truncate[table]table_name;
または2、コンテンツをクリアした後、alterコマンドを使用してテーブルalter table table_を直接変更するname auto_increment = 1;
http://blog.csdn.net/zjf280441589/article/details/20217647
http://blog.csdn.net/zjf280441589/article/details/20230427