mysql構文-DDL(create、drop、alter)


sql常用分類
  • 1.DDL(データ定義言語)
  • 2.DML(データ操作言語)
  • 3.DQL(データ照会言語)
  • 1.DDL(データ定義言語)
    データベース、データテーブル、列などのデータベース・オブジェクトを定義します.キーワード:createの作成、dropの削除、alterの変更
    一.データベース操作
  • データベース作成
  • create database [if not exists] ;
  • データベース
  • を削除drop database [if exists] ;
    二.共通データ型
  • 数値タイプtinyint:1 byte=8 bit、長さは-27から27-1、すなわち-128~127です.smallint:2 byte mediumint:3 byte int:4 byte、長さは-21億から21億、10桁です.携帯電話番号を記憶するためには記憶できません.携帯電話番号は11ビットあるので、intは保存できません.一般的に文字列で保存します.bigint:8 byte float(n,m):nは全長を表し、mは小数ビットdouble(n,m):同上decimal(n,m):同上以上の数値タイプにunsignedを追加すると、数値は0から負の数を取ることができません.
  • 文字列タイプchar(n):定長文字列、長さが足りないnは自動的にスペースを補うvarchar(n):可変長文字列、長さが足りないnはスペースを補うことができない
  • 日付タイプdate:日付、年月日time:時間、時分秒datetime:日付時間、年月日時分秒.範囲:0000年-9999年timestamp:タイムスタンプ、年月日時分秒.範囲:1970年-2038年
  • その他のタイプenum:列挙
  • データ型の選択の原則:より簡単またはより少ないスペースを使用します.
  • 長さが満たされれば、intではなくtiny、smallint、mediumintを使用します.
  • 文字列長が決定された場合、charタイプが使用されます.
  • varcharが満たされる場合、textタイプは採用されません.
  • 精度はdecimalタイプをより高く使用する必要があり、bigintタイプを使用することもできます.
  • は、datetimeではなくtimestampをできるだけ採用する.

  • 三.データテーブルアクション
    1.データテーブルの作成
    create table   (
        #          
    	sid int unsigned primary key auto_increment,
    	sname varchar(10) not null,
    	age int unsigned default 0,
    	gender enum(" "," ","  ") default "  "
    );
    

    tips:テーブルの作成時に#1067-Invalid default value for genderのエラーが発生した場合、データベースの作成時に文字セットをutf 8に設定しなかったため、中国語文字を格納できない可能性があります.
    utf 8を設定する4つの方法は私の別のブログを見ることができます:mysqlはutf 8の方法を設定します
    2.データシートの変更
  • 追加フィールドa.追加フィールドを最後(デフォルト)alter table add ; b.追加フィールドを最上位alter table add first; c.追加フィールドを指定位置alter table add after ;
  • に追加する.
  • 修正フィールドa.修正フィールド名alter table change [ ]; b.修正データ型alter table change [ ]; alter table modify [ ];(より推奨)c.修正フィールド位置alter table modify after ;
  • .
  • 削除フィールドalter table drop ;
  • 名前変更rename table to ; alter table rename to ;
  • クリアリストtruncate table ;
  • 3.データテーブルの削除drop table ;
    四.データ整合性
    1.エンティティ整合性各レコードは一意であり、重複しない.
  • プライマリ・キー制約(primary key)(プライマリ・キーが一意で重複しない)tips:①テーブルごとにプライマリ・キーが1つしかない②プライマリ・キーと連携できる③idなどの
  • のような非ビジネス・フィールドをできるだけ選択する.
    #         
    #   1:
    create table   (	
    	sid int primary key,
    	...
    );
    #   2:
    create table   (
    	sid int,
    	... ,
    	primary key(sid)  #                
    	#           ,        ,    
    );
    
    #          add              
    alter table    add constraint PK_   primary key(  );
    
    #      
    alter table    drop primary key;
    

    tips:テーブルのプライマリ・キーを削除すると#1075-Incorrect table definitionが表示されます.there can be only one auto column and it must be defined as a key主キーフィールドにauto_が設定されていることを示しますincrementなので、プライマリ・キーは削除できません.
  • プライマリ・キー自己増加(auto_increment)(1から自己増加)
  • create table   (
    	sid int primary key auto_increment,
    	...
    );
    
  • 一意制約(unique)(一意制約フィールドの値は重複できず、空に許可されている)例えば、身分証明書番号はビジネスフィールドに属し、プライマリ・キーを使用するのに適しておらず、一意制約を使用することができます.
  • #           
    #   1:
    create table   (
    	sid int primary key auto_increment,
    	card varchar(18) unique
    );
    #   2:
    create table   (
    	sid int primary key,
    	card varchar(18),
    	unique(card)
    );
    
    #          
    alter table    add constraint UN_   unique(  );
    

    2.しきい値整合性
  • 非空拘束not null
  • デフォルト制約default
  • タイプ制約
  • create table   (
    	sid int primary key auto_increment,
    	sname varchar(10) not null,
    	age int unsigned default 0
    );
    

    3.参照整合性
  • 外部キー制約(foreign key)は、Aテーブルのレコードを削除する場合は、Bテーブルに外部キーを使用して接続されているため、実際の作業ではあまり使用されません.
  • #  A   Aid B   Bid  
    alter table A add constraint FK_Aid foreign key(Aid) references B(Bid);
    
    #      
    alter table A drop foreign key;
    

    2.DML(データ操作言語)
    DMLセクションでは、mysql構文-DML(insert、update、delete)を参照できます.
    3.DQL(データ照会言語)
    DMLセクションでは、selectベースクエリーselect拡張クエリーの2つの記事を表示できます.