mysql データ型整合性制約 054

mysql データ型整合性制約 054

ユーザーを作成し、ユーザー権限を認可します。

# 1.ユーザーの作成: # ログインするには、ip 192.168.15.109
の fgf ユーザーを指定します
create user ' fgf ' @ ' 192.168.15.109 ' identified by ' 12 ' ; #ログインするには、
 
ip 192.168.15.1のfgfユーザーを指定しますcreate user ' fgf ' @ ' 192.168.15.% 'は' 123 '識別されます; 
# 任意の IP fgf ユーザーログインを指定しますcreate user ' fgf ' @      
  ' % 'は' 123 ' 識別されます; # 
2 .ユーザーを削除します
drop user'username ' @ ' IP address ' ; 
# 3 .ユーザーを変更します
user'username ' @ ' IP address ' to ' new username ' @ ' IP address ' ; 4 。
パスワードを変更してユーザー名 @ IP アドレス」パスワードを設定します      ' = password( '新しいパスワード' );

現在のユーザーの権限管理
表示権限'ユーザー名' @ ' IP アドレス' 
許可を表示
# fgf ユーザーに db1.t1 ファイルのクエリ、挿入、および更新のみを許可するGrant select , insert , update on db1 to ' fgf ' @ ' % ' ; # root のみが使用できる
Grantコマンド
を除くすべての権限を示し、fgf ユーザーは db1 の下の t1 ファイルに対する任意の操作権限を持ち、 db1 .t1に対するすべての権限を' mjj付与します。
       ' @ ' % ' ; 
#fgf ユーザーは、db1 データベース内のファイルに対して任意の操作を実行し、
 db1に対するすべての権限を付与します。  * to ' fgf ' @ ' % ' ; 
# fgf ユーザーは、すべてのデータベース ファイルに対して任意の操作を実行し、 *に対するすべての権限を付与します* ' fgf ' @ ' % ' ; _    
    

コピーテーブル

# テーブル構造をコピーし、レコードをコピーし
ますcreate  table t2 select  *  from db1.t1; 

# テーブル構造のみをコピーし、レコードはコピーしません
create  table t2 select  *  from db1.t1 where  1 > 3 ;
 create  table t2 like db1.t1;

データ型: デフォルトでは整数が署名されます 

  データ型 符号なし (unsigned) および符号付き 0 によるゼロフィル

  制約の役割: データの整合性と一貫性を確保すること

    tinyint[-128~127] の小さな整数を両側から取得できます

    整数

    bigint 非常に大きな整数

# unsigned は 0 から始まり、負の数からは始まらないという意味を追加しました
。 create  table t1(id int ( 4 ) unsigned,name char ( 20 ));

浮動小数点 

  float 単精度は、小数点以下の桁数が増えるにつれて精度が低くなります

    float[(M,D)] [符号なし] [ゼロフィル]

    パラメータの説明: 単精度浮動小数点数 (不正確な 10 進数値)、M は全長、D は小数点以下の数値、M の最大値は 255、D の最大値は 30

  Double double precision は、小数の数が増えるにつれて不正確になりますが、float よりも正確です

    DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] 文字は float と同じ意味を持ちます。

  10 進数 正確な 10 進数

    10 進数 [(m[,d])] [符号なし] [ゼロフィル]

      #パラメータの説明: 正確な 10 進数値、M は整数部分の合計数 (負の符号はカウントされません)、D は小数点以下の数値です。M の最大値は 65、D の最大値は 30 です。

        #精度:  **** 精度は、小数点以下の桁数が増えるにつれて常に正確になります ****

             このタイプは正確な数値計算に必要です

             Ecaimal が正確な値を保存できる理由は、内部的に文字列として保存されているためです。

日付タイプ: DATE TIME DATETIME TIMESTAMP YEAR

    ユーザー登録時刻、記事公開時刻、従業員入店時刻、出生時刻、有効期限などを保存する役割です。

    YEAR 年 (1901~2155)

    日にち 

    TIME 時分秒 

    now() SQL 言語に付属するコンテンツ関数: 現在のイベント時刻を取得します (データ型に応じて)。

    テーブル t10(born_year year,intClass datetime) を作成します。

文字タイプ 

    文字固定長、シンプルで失礼、スペースの無駄だがアクセス速度は速い 

    Varchar 可変長はスペースを正確に節約しますが、アクセス速度が遅くなります

length(): バイト数を表示
char_length(): 文字数を表示

  列挙型とコレクション

 create  table Consumer( 
     id int , 
     name varchar ( 50 ), 
     sex enum( ' Male ' , ' Female ' , ' other ' ) default  ' Male ' ,
      level enum( ' vip1 ' , ' vip2 ' , ' vip3 ' , ' vip4 ' ),#指定された範囲内で複数の
     お気に入りセットを選択してください( 'play ' , ' music ' , ' read ' , ' study ' ) # 指定範囲内で複数選択
    );

    注: ブール型を表すには SQL で tinyint(1) を使用してください。

整合性の制約

  null ではなくデフォルトです

    not nullを単独で設定した場合、null値を挿入できません

    null が設定されておらず、default が指定されている場合、null 値を挿入でき、default が実行されます。

  一意のキー

    単一行の一意

create  table t4( 
    id int  not  null , 
    name char ( 20 ) unique 
); 

create  table t4( 
    id int  not  null , 
    name char ( 20 ),
     unique (name) 
); 
t4(id,name)( 1 , ' alex ' )
挿入します。 t4(id,name)挿入( 1 , ' ウシル' );

    複数列一意 1つの列が同じである限り挿入できません(andと同様)

create  table t5( 
    id int , 
    name char ( 20 ),
     unique (id),
     unique (name) 
);

    すべてが同じである場合 (or と同様)、unique ユニオンは挿入できません。

create  table t6( 
    id int , 
    name char ( 20 ),
     unique (id,name) 
);

    応用シナリオ コース選択システム 一人の学生が複数のコースを選択可能 複数の学生がコースを選択可能

主キー

  化学反応: null ではない + 固有   

  単一列の主キーは空にすることはできず、一意です

# キーインデックス (大量のデータの場合) クエリ速度が速くなります
create  table t7( 
    id int  Primary  key , 
    name varchar ( 10 ) unique 
); 

create  table t8( 
    id int  not  null  unique , 
    name varchar ( 10 ) unique 
) ;

  結合された主キー  

create  table t9(     
    id int ,     
    name varchar ( 10 ),
     キー(id,name) 
);

auto_increment 制約: 制約されたフィールドは自動インクリメントです。 制約されたフィールドは同時にキーによって制約される必要があります。

create  table Student( 
    id int  キーauto_increment, 
    name varchar ( 20 ) not  null , 
    sex enum( ' Male ' , ' Female ' ) default  ' Male ' , 
    ip varchar ( 20 ) unique 
); 

学生(名前、性別、IP)の値挿入します  
( アレックス女性, ' 127.0.0.5 ' ), 
( ' wusir ' , '男性' , ' 173.45.32.1 ' );

  テーブルをクリアして、削除と切り捨ての違いを区別します。

    delete from t1 : 自己インクリメントする ID 情報がある場合でも、データは削除前の最後の ID 情報から始まります。

    truncate table t1: 大量のデータを削除するのに適しており、以前のものよりも削除速度が速く、ゼロから直接開始されます。

外部キー

  外部キーは 2 つのテーブルを関連付けます 

# メインテーブルを作成します
create  table dep( 
    # メインテーブルの ID は自動的に
    ID が増えるように設定されますint  キーauto_increment, 
    # 部門名を単一列として設定します 一意の
    名前char ( 10 ) unique , 
    # 部門の説明を空にすることはできません
    dep_desc varchar ( 50 ) not  null 
); 

# スレーブテーブルを作成します
create  table emp( 
    eid int  キーauto_increment, 
    name char ( 10 ) not  null , 
    ageint  not  null 
    dep_id int 制約fk_dep外部 キー(dep_id)は、削除カスケード、更新カスケードdep(id
     
)参照しますcreate table emp( 
    eid intキーauto_increment, 
    name char ( 10 ) not null , 
    age int not null , 
    dep_id int ,
      
      



      制約fk_dep外部 キー(dep_id)はdep(id) 
    を参照しますon delete cascade on update cascade , 
); insert into dep(name,dep_desc)
    ( '取締役会' , '管理会社部門' ), 
    ( '広報部門''広報管理部門' )、
    ( ' IT 部門'' IT 管理部門' )、
    ( '財務部門'   
      

 , '財務管理部' ); 
    
insert  into emp(name,age,dep_id)
    ( 'アレックス' , 18 , 1 ), 
    ( ' wusir ' , 30 , 2 ), 
    ( '上司呉' , 20 , 3 ), 
    ( '上司 Ma ' , 18 , 4 ), 
    ( '上司秋' , 20 , 2 ),
    (女神163 );

 

posted @ 2018-11-22 00:47 あなたはあなたが思っているほど重要ではありません 読む ( ... ) コメント ( ... ) お気に入りを 編集

おすすめ

転載: blog.csdn.net/bruce_van/article/details/89443043