Mysql高級05-SQL文

13257 ワード

SQL
ライブラリ構造操作SQL
 1、すべてのデータベースを表示する
show databases;
2、データベースの使用を切り替える
use     ;
 3、データベースの作成
create database     ;
create database      charset 'utf8';
4、データベースの削除
drop database     ;
テーブル構造操作SQL
 1、あるデータベースですべてのテーブルを表示します。
show tables; 
 2、テーブル構造を確認する
desc    ;
3、テーブル構造の削除
drop table    ;
4、表の名称を変更する
rename table     to    ;
5、テーブルフィールドの変更
(1)フィールドを追加する
alter table     add            ; #     
alter table     add             after       ; 
alter table     add             first;
(2)フィールドを削除します。
alter table     drop      ;
(3)フィールドの名前を変更する
alter table     change                   ;
(4)フィールドのデータタイプを変更する
alter table     modify            ;
(5)フィールドの位置を変更する
alter table     modify             after       ; #      
alter table     modify             first;
6、テーブルの作成
create table    (
            primary key auto_increment,   #(  )      、     、     
            unique key not null,          #(  )    、     
 
default ,          #( ) 、 primary key( ...),               #( ) 、 、  unique key( ...),     #( ) 、 、 foreign key( ) references ( ) 【on update xxx on delete yyy】 #   #( )               );
7、表を作ってから表の制約を修正する
(1)メインキーの変更
alter table     add primary key (   ...);
(2)メインキーの削除
alter table     drop primary key;
(3)一意キーの変更
alter table     add unique key(    );
(4)一意のキーを削除することは、対応するインデックスを削除することによって削除されます。
alter table     drop index    ;
(5)変更表が空ではないこと
alter table     modify          not null;
(6)非空制約の解除
alter table     modify          【default    】;
(7)標準値の変更
alter table     modify          default    ;
(8)標準値のキャンセル
alter table     modify          【not null】;
注意:ステートメントを変更すると、標準値または非空の制約を追加またはキャンセルします。標準値または非空の制約を保持する場合は、記入してください。
(9)改訂自己増加
alter table     modify          auto_increment;
(10)自己増加から削除する
alter table     modify         ;
(11)外キーの変更
alter table       add foreign key (   ) references      (     ) 【on update xx on delete yy】;
(12)外キーの削除
alter table      drop foreign key      ;          (CONSTRAINT_NAME)
データ操作
増加する
1、すべてのフィールドに値を割り当て、1回に複数の行または1行を追加します。
insert into     values( 1, 2...);  
insert into     values( 1, 2...),( 1, 2...),...;
2、指定されたフィールドに値を割り当て、1回に複数の行または1行を追加します。
insert into    (  1,  2...) values( 1, 2...);
insert into    (  1,  2...) values( 1, 2...),( 1, 2...),...;
󑧙要求値の数量、順序は表構造の数量、順序と一々対応しています。
xiデフォルトの位置はdefaultと書いてもいいです。増加した位置はnullと書きます。
削除
1、テーブル全体のデータを削除する
delete from    ;
truncate    ;
2、条件を満たす行を削除する
delete from     where   ; 
ハdeleteは一本ずつ削除します。truncateはテーブル全体のdropを落として、もう一枚作ります。deleteは事務中であれば、ロールバックできます。truncateはロールバックできません。
変更
1、すべての行の一部フィールドを変更する
update     set     =    ,     =    ...; 
2、条件を満たす行を変更する
update     set     =    ,     =    ... where   ;
調べます
select * from    ;
演算子
is null is not null
与:&and or:𞓜or
betsween.and.in(...)
not between.and.not in(...)
like配合一つの字%を表しています。任意の字を表しています。
条件クエリー
異なる値だけを返します。
select distinct name from users;
第1列の昇順で並べ替えられたものを返します。desc降順で、複数の列で降順に並べ替えたい場合は、各列にDESCキーワードを指定しなければなりません。
select *  from  users order by 1desc】;
1行目から5行目のデータを返します。最初に検索された行は0行目です。
select * from users limit 0,5;
「xiaoming-小明」という文字の列のデータを返します。
select concat (username,'-',NAME) from users;
テーブルの索引を表示します。
show index from    ;
ある表のすべての制約を表示します。
select * from information_schema.table_constraints where table_name = '   ';
完全な語句
select distinct
    <select_list>
from
    <left_table> <join_type>
join <right_table> on <join_condition>
where
    <where_condition>
group by
    <group_by_list>
having
    <having_condition>
order by
    <order_by_condition>
limit <limit_number>
 
1、外キー制約のレベル(1)Restrict方式:厳格モード、デフォルトのモード(2)No action方式:mysqlとRestict方式と同じ(3)Set null方式:スペース(4)Cascade方式:カスケード接続
それぞれon update xxx on delete yyを設定できます。変更と削除の制約レベルは同じでもいいです。
2、外部キー制約の操作(1)テーブルを作る順序:まずメインテーブルを作成し、テーブル(2)からリストの記録を追加して修正する場合、参照列の値は参照列の値の範囲内で選択しなければならない。例えば、従業員テーブル記録を追加して修正する場合、従業員がいる部門の選択は、部門表の番号の範囲内(3)にマスタテーブルの記録を修正し削除する場合、制約レベルを見るには、Restrict方式であれば、参照列のある値が引用されている限り、任意に削除または変更できない。Set null方式であれば、メインテーブルに対応する値が修正されて削除され、テーブルから対応するレコードがnullに設定されています。Cascade方式であれば、メインテーブルに対応する値が修正されたり削除されたりして、テーブルから対応するレコードは修正または削除されます。(4)テーブルの順序を削除します。まずテーブルを削除してから、メインテーブルを削除します。