MySQLの追加削除とテーブルのコピーと名前変更
MySQL追加、削除、変更、挿入全表照会表記録フォーマット1:selectフィールド1,...フィールドN fromライブラリ名テーブル名;
フォーマット2:selectフィールド1,...フィールドN fromライブラリ名テーブル名where条件式;
注意事項:1.「*」を使用して、すべてのフィールドに一致します.2.テーブル名を指定する場合は、ライブラリ名を用いることができる.テーブル名の形式
クエリおよび条件マッチングはWHERE文ガイド1を用いる.更新、削除、クエリーなどに適用する.条件を満たすレコードのみが操作されます
一般的な一致条件1.フィールドの数値サイズをチェックします.文字列が3に一致するかどうか.ロジックテスト
論理比較、多条件組合せOR、AND、!論理または、論理和、論理非IN...NOTIN.. で、範囲内、不在..範囲内のIS NULLフィールドの値が空のIS NOT NULLフィールドの値が空でないDISTINCTは重複した値を表示しません
ファジイクエリを使用する基本的な使い方:-WHEREフィールド名LIKE「ワイルドカード文字列」-ワイルドカード「」1文字に一致し、“%”は0~N文字に一致します
正規表現を使用する基本的な使い方:-WHEREフィールド名REGEXP'正規表現'
whereサブクエリwhereサブクエリを使用する:-内層クエリの結果を外層クエリのクエリ条件とする
フォーマット1:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表A);
フォーマット2:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表A where条件);
フォーマット3:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表B);
フォーマット4:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表B where条件);
クエリ結果ソート/パケット基本使用法:-ORDER BYフィールド名[asc(昇順)/desc(降順)]-GROUP BYフィールド名[HAVING条件式]-LIMIDN,M制限表示レコードエントリ数
Insert挿入記録フォーマット1:(一部のフィールドの値のみ指定)insert intoライブラリ名.表名(フィールド1,フィールド2,..フィールドN)values(フィールド1に付与された値,フィールド2に付与された値,....フィールドNに付与された値);
フォーマット2:(各フィールドの値を指定)insert intoライブラリ名.表名values(フィールド1に付与された値、フィールド2に付与された値、....フィールドNに付与された値);
注意事項:1.フィールド値は、フィールドタイプと一致します.2.文字タイプのフィールドは、二重または一重引用符で囲みます.3.すべてのフィールドに順番に値を割り当てる場合、フィールド名は省略できます.4.一部のフィールドにのみ値を割り当てる場合は、対応するフィールド名を明確に書く必要があります.
update更新レコードフォーマット1:(テーブル内のすべてのレコードを更新)updateライブラリ名.表名setフィールド1=フィールド1修正値、フィールド2=フィールド2修正値、...フィールドN=フィールドNが変更した値.
フォーマット2:(条件を満たす部分レコードのみ更新)updateライブラリ名.表名setフィールド1=フィールド1修正値、フィールド2=フィールド2修正値、...フィールドN=フィールドNが変更した値where条件式;
注意事項:1.フィールド値は、フィールドタイプと一致します.2.文字タイプのフィールドは、二重または一重引用符で囲みます.3.WHEREで条件を限定しなければ、すべての記録が更新されます.4.条件を限定する場合、一致条件のレコードのみ更新します.
delete削除テーブルレコードフォーマット1:(条件を満たすレコードのみ削除)delete fromライブラリ名.テーブル名where条件式;
フォーマット2:(テーブルのすべてのテーブルレコードを削除)delete fromライブラリ名.テーブル名;
マルチテーブルクエリ(接続クエリとも呼ばれる)1.2つまたは2つ以上のテーブルを、ある条件で接続し、そこから必要なデータを選択します.
2.複数のテーブルに同じ意味のフィールドが存在する場合(フィールド名が異なる場合があります)、このフィールドで複数のテーブルを接続できます.フォーマット1:selectフィールド名リストfromテーブルa,テーブルb;フォーマット2:selectフィールド名リストfromテーブルa、テーブルb where条件;
以上の形式のクエリー結果をデカルトセットと呼び、クエリー結果の合計エントリが(表aのレコード*表bのレコード数)であることを示します.
内部接続クエリー(クエリー条件に一致するレコードのみ表示)フォーマット:selectフィールド名リストfromテーブルa、テーブルb;
外部ジョインクエリ1.左接続クエリー(左テーブルレコードを主とする)2.右接続クエリー(右テーブルレコードがメイン)
左接続クエリーフォーマット:selectフィールド名リストfromテーブルa left joinテーブルb on条件式;
右接続クエリーフォーマット:selectフィールド名リストfromテーブルa right joinテーブルb on条件式;
テーブルのコピーと名前変更ソーステーブルxxxを新しいテーブルyyyフォーマット:create tableライブラリ名にコピーします.yyy select*fromライブラリ名.xxx;
指定したクエリー結果を新しいテーブルzzz形式にコピーします:create table zzz SQLクエリー文;
ソーステーブルxxxのテーブル構造を新しいテーブルbbbフォーマット:create tableライブラリ名にコピーします.bbb select*fromライブラリxxx where false(誤った記録マッチング);
ソーステーブルbbbの名前をwwwフォーマットに変更します:alter table bbb rename to www;
フォーマット2:selectフィールド1,...フィールドN fromライブラリ名テーブル名where条件式;
注意事項:1.「*」を使用して、すべてのフィールドに一致します.2.テーブル名を指定する場合は、ライブラリ名を用いることができる.テーブル名の形式
:
mysql>create database ku;
mysql>create table ku.lisi(
>name char(10) not null,
>gender enum("boy","girl"),
>age int(3) not null
>);
mysql>insert into ku.lisi values("luozixu","boy"23);
mysql>insert into ku.lisi values("wang","girl",25);
mysql>select * from ku.lisi;
mysql>select name,age from ku.lisi where gender="girl";
:
,name " "、age " "
mysql>select name AS " ",age AS " " from ku.lisi;
クエリおよび条件マッチングはWHERE文ガイド1を用いる.更新、削除、クエリーなどに適用する.条件を満たすレコードのみが操作されます
一般的な一致条件1.フィールドの数値サイズをチェックします.文字列が3に一致するかどうか.ロジックテスト
=
>、>= 、
論理比較、多条件組合せOR、AND、!論理または、論理和、論理非IN...NOTIN.. で、範囲内、不在..範囲内のIS NULLフィールドの値が空のIS NOT NULLフィールドの値が空でないDISTINCTは重複した値を表示しません
+
-
*
/
% ( )
ファジイクエリを使用する基本的な使い方:-WHEREフィールド名LIKE「ワイルドカード文字列」-ワイルドカード「」1文字に一致し、“%”は0~N文字に一致します
: name J Y
mysql>select * from ku.lisi where name LIKE "J" OR name LIKE "Y";
正規表現を使用する基本的な使い方:-WHEREフィールド名REGEXP'正規表現'
: name J Y
mysql>select * from ku.lisi where name regexp '^J|Y$';
whereサブクエリwhereサブクエリを使用する:-内層クエリの結果を外層クエリのクエリ条件とする
フォーマット1:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表A);
フォーマット2:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表A where条件);
:
mysql>select name,age from ku.lisi where age < (select avg(age) from ku.lisi);
フォーマット3:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表B);
フォーマット4:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表B where条件);
avg()
sum()
min()
max()
count()
: ku lisi ,
、 、 。
mysql>select count(*),sum(age) from ku.lisi;
mysql>select avg(age),max(age) from ku.lisi;
クエリ結果ソート/パケット基本使用法:-ORDER BYフィールド名[asc(昇順)/desc(降順)]-GROUP BYフィールド名[HAVING条件式]-LIMIDN,M制限表示レコードエントリ数
:
ku lisi , , 2 。
mysql>select * from ku.lisi order by age limit 2;
2
mysql>select * from ku.lisi order by age desc limit 2;
:
ku lisi , , boy、girl 。
mysql>select gender AS " ",count(*) AS " " from ku.lisi group by gender;
Insert挿入記録フォーマット1:(一部のフィールドの値のみ指定)insert intoライブラリ名.表名(フィールド1,フィールド2,..フィールドN)values(フィールド1に付与された値,フィールド2に付与された値,....フィールドNに付与された値);
フォーマット2:(各フィールドの値を指定)insert intoライブラリ名.表名values(フィールド1に付与された値、フィールド2に付与された値、....フィールドNに付与された値);
注意事項:1.フィールド値は、フィールドタイプと一致します.2.文字タイプのフィールドは、二重または一重引用符で囲みます.3.すべてのフィールドに順番に値を割り当てる場合、フィールド名は省略できます.4.一部のフィールドにのみ値を割り当てる場合は、対応するフィールド名を明確に書く必要があります.
:
1.
mysql>create database ku;
mysql>create table ku.xi(
>name char(10) not null,
>gender enum("boy","girl") default "girl",
>age int(3) not null
>);
2.
mysql>insert into ku.xi(name,age) values("luozixu",23);
mysql>insert into ku.xi values("lisi","boy",25);
3.
mysql>select * from ku.xi;
update更新レコードフォーマット1:(テーブル内のすべてのレコードを更新)updateライブラリ名.表名setフィールド1=フィールド1修正値、フィールド2=フィールド2修正値、...フィールドN=フィールドNが変更した値.
フォーマット2:(条件を満たす部分レコードのみ更新)updateライブラリ名.表名setフィールド1=フィールド1修正値、フィールド2=フィールド2修正値、...フィールドN=フィールドNが変更した値where条件式;
注意事項:1.フィールド値は、フィールドタイプと一致します.2.文字タイプのフィールドは、二重または一重引用符で囲みます.3.WHEREで条件を限定しなければ、すべての記録が更新されます.4.条件を限定する場合、一致条件のレコードのみ更新します.
:
1. ku xi age 10。
mysql>update ku.xi set age=10;
mysql>select * from ku.xi;
2. boy age 20。
mysql>update ku.xi set age=20 where gender="boy";
mysql>select * from ku.xi;
delete削除テーブルレコードフォーマット1:(条件を満たすレコードのみ削除)delete fromライブラリ名.テーブル名where条件式;
フォーマット2:(テーブルのすべてのテーブルレコードを削除)delete fromライブラリ名.テーブル名;
:
1. ku xi age 10 。
mysql>delete from ku.xi where age<=10;
mysql>select * from ku.xi;
2.
mysql>delete from ku.xi;
mysql>select * from ku.xi;
マルチテーブルクエリ(接続クエリとも呼ばれる)1.2つまたは2つ以上のテーブルを、ある条件で接続し、そこから必要なデータを選択します.
2.複数のテーブルに同じ意味のフィールドが存在する場合(フィールド名が異なる場合があります)、このフィールドで複数のテーブルを接続できます.フォーマット1:selectフィールド名リストfromテーブルa,テーブルb;フォーマット2:selectフィールド名リストfromテーブルa、テーブルb where条件;
以上の形式のクエリー結果をデカルトセットと呼び、クエリー結果の合計エントリが(表aのレコード*表bのレコード数)であることを示します.
:
mysql>select * from ku.user,ku.user2;
mysql>select * from ku.user,ku.user2 where ku.user2.shell != ku.user.shell and ku.usr.uid<100;
内部接続クエリー(クエリー条件に一致するレコードのみ表示)フォーマット:selectフィールド名リストfromテーブルa、テーブルb;
外部ジョインクエリ1.左接続クエリー(左テーブルレコードを主とする)2.右接続クエリー(右テーブルレコードがメイン)
左接続クエリーフォーマット:selectフィールド名リストfromテーブルa left joinテーブルb on条件式;
右接続クエリーフォーマット:selectフィールド名リストfromテーブルa right joinテーブルb on条件式;
テーブルのコピーと名前変更ソーステーブルxxxを新しいテーブルyyyフォーマット:create tableライブラリ名にコピーします.yyy select*fromライブラリ名.xxx;
:
mysql>create table ku.yy select * from mysql.user;
指定したクエリー結果を新しいテーブルzzz形式にコピーします:create table zzz SQLクエリー文;
:
mysql>create table ku.zz select user,host,password from mysql.user;
ソーステーブルxxxのテーブル構造を新しいテーブルbbbフォーマット:create tableライブラリ名にコピーします.bbb select*fromライブラリxxx where false(誤った記録マッチング);
:
mysql>create table ku.bb select * from mysql.user where false;
mysql>desc ku.bb;
ソーステーブルbbbの名前をwwwフォーマットに変更します:alter table bbb rename to www;
:
mysql>alter table ku.bb rename to ku.ww;