【MySQL】データベースとテーブルの添削

12051 ワード

データベースの基本概念
  • データベースの英単語:DataBase略称:DB
  • データベースとは何ですか?
  • は、データを格納および管理するための倉庫である.

  • データベースの特徴:
  • データを永続化して格納する.データベースはファイルシステム
  • です
  • データの保存と管理を容易にする
  • データベースを統合して操作–SQL

  • MySQLデータベースソフトウェア
    インストール

    アンインストール(インストール版)
  • mysqlのインストールディレクトリに行ってmy.iniファイルを見つけます
  • 複製datadir="C:/ProgramData/MySQL/MySQL Server 5.7/Data/"
  • MySQL
  • をアンインストール
  • C:/ProgramDataディレクトリの下にあるMySQLフォルダを削除します.

  • コンフィギュレーション
    MySQLサービス起動
  • 手動.
  • cmd-->services.mscサービスのウィンドウ
  • を開く.
  • 管理者を使用してcmdを開く
  • net start mysql:mysqlのサービスを開始する
  • net stop mysql:mysqlサービス
  • を閉じる

    MySQLログイン
  • mysql -uroot -p
  • mysql -hip -uroot -p
  • mysql --host=ip --user=root --password=

  • MySQL終了
  • exit
  • quit

  • MySQLディレクトリ構造
  • MySQLインストールディレクトリ:basedir="D:/develop/MySQL/"
  • プロファイルmy.ini
  • MySQLデータディレクトリ:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
  • のいくつかの概念
  • データベース:フォルダ
  • 表:ファイル
  • データ:データ


  • SQL
    SQLとは?
    Structured Query Language:構造化クエリー言語は、すべてのリレーショナル・データベースを操作するルールを定義します.各データベースの操作方法には「方言」と呼ばれる場所があります.​
    SQL共通構文
  • SQL文は、セミコロンで終わる1行または複数行で書くことができます.
  • は、スペースおよびインデントを使用して文の可読性を向上させることができる.
  • MySQLデータベースのSQL文は大文字と小文字を区別せず、キーワードは大文字を推奨します.
  • 3コメント
  • 単行注釈:–注釈コンテンツまたは#注釈コンテンツ(mysql固有)
  • 複数行コメント:/*コメント*/

  • SQL分類
  • DDL(Data Definition Language)データ定義言語は、データベースオブジェクト:データベース、テーブル、カラムなどを定義するために使用されます.キーワード:create,drop,alterなど
  • DML(Data Manipulation Language)データ操作言語は、データベース内のテーブルのデータを削除するために使用される.キーワード:insert,delete,updateなど
  • DQL(Data Query Language)データ照会言語は、データベース内のテーブルのレコード(データ)を照会するために使用される.キーワード:select,whereなど
  • DCL(Data Control Language)データ制御言語(了解)は、データベースのアクセス権とセキュリティレベルを定義し、ユーザーを作成するために使用されます.キーワード:GRANT,REVOKE等
  • 1.DDL:操作データベース、テーブル
    1.1操作データベース:CRUD
    C(Create):作成
  • データベースの作成:
    create database      ;
    
  • データベースを作成し、存在しないと判断し、再作成:
    create database if not exists      ;
    
  • データベースを作成し、文字セット
    create database       character set     ;
    
  • を指定します.
  • 練習:db 4データベースを作成し、存在するかどうかを判断し、utf 8(なし-)
    create database if not exists db4 character set utf8;
    
  • の文字セットを作成します.
    R(Retrieve):クエリー
  • クエリーすべてのデータベースの名前:
    show databases;
    
  • データベースの文字セットを問い合わせる:データベースの作成文を問い合わせる
    show create database      ;
    
  • U(Update):変更
  • データベースの文字セットを変更する
    alter database       character set      ;
    
  • D(Delete):削除
  • データベース
    drop database      ;
    
  • を削除
  • データベースが存在すると判断し、再削除
    drop database if exists      ;
    
  • が存在する.
    データベースの使用
  • 現在使用中のデータベース名を問い合わせる
    select database();
    
  • データベース
    use      ;
    
  • を使用
    1.2操作表
    C(Create):作成
    基本構文:
    create table   (
    	  1     1 [      ],
    	  2     2 [      ],
    	...
    	  n     n [      ]
    );
    #   :    ,      (,)
    

    補足1:一般的なデータベース・タイプ:
  • int:整数タイプ
  • age int

  • double:小数型
  • score double(5,2)

  • date:日付、年月日のみを含む、yyyy-MM-dd
  • datetime:日付、年月日を含む時分秒yyyy-MM-dd HH:mm:ss
  • timestamp:タイムスタンプタイプ年月日分秒yyyy-MM-dd HH:mm:ssを含む
  • このフィールドに将来値を割り当てない場合、またはnullに値を割り当てる場合、デフォルトでは現在のシステム時間が使用され、
  • が自動的に値を割り当てる.
  • varchar:文字列
  • name varchar(20): 20 exam: zhangsan 8 2


  • 補足2:整合性制約
    こうそくじょうけん
    説明
    PRIMARY KEY
    この属性がテーブルのプライマリ・キーであることを識別し、対応するメタ・グループを一意に識別できます.
    FOREIGN KEY
    このプロパティがテーブルであることを示す外部キーは、テーブルに関連付けられたプライマリ・キーです.
    NOT NULL
    この属性を空にできないことを識別します.
    UNIQUE
    属性を識別する値は一意です
    AUTO_INCREMENT
    この属性を識別する値は自動的に増加します.これはMySQLのSQL文の特色です.
    DEFAULT
    この属性のデフォルト値を設定
    Exam:
    create table student(
    	id int PRIMARY KEY NOT NULL AUTO_INCREMENT,	 --     ,  ,    
    	name varchar(32) NOT NULL, --      
    	age int DEFAULT 0, --         0
    	score double(4,1),
    	birthday date,
    	insert_time timestamp
    	--  :            :PRIMARY KEY(id)
    );
    

    テーブルのコピー:
    create table    like       ;
    

    R(Retrieve):クエリー
  • クエリーあるデータベース内のすべてのテーブル名
    show tables;
    
  • クエリテーブル構造
    desc   ;
    
  • U(Update):変更
  • 表名
    alter table    rename to     ;
    
  • を変更
  • 表の文字セットを変更する
    alter table    character set      ;
    
    #        
    show create table   ;
    
  •  alter table    add         [     ]; #[    ]
    
  • を追加
  • 列名タイプ
    alter table    change             ;
    
    alter table    modify         ;
    
  • を変更
  • 削除列
    alter table    drop   ;
    
  • D(Delete):削除
    drop table   ;
    
    drop table  if exists    ;
    

    2.DML:表中のデータを添削する
    データの追加:
  • 構文:
    insert into   (  1,  2,...  n) values( 1, 2,... n);
    
  • 注意:
  • カラム名と値は1つずつ対応します.
  • テーブル名の後にカラム名を定義しない場合、デフォルトではすべてのカラムに値insert into values( 1, 2,... n);
  • を追加します.
  • 数字のタイプを除いて、他のタイプは引用符(一重でも可)を使用して
  • を引き起こす必要があります.

    データの削除:
  • 構文:
    delete from    [where   ]
    
  • 注意:
  • 条件を付けない場合、テーブル内のすべてのレコードが削除されます.
  • すべてのレコードを削除する場合
    --1.      。                 
    delete from   ;
    
    --2.     ,         ,           。
    TRUNCATE TABLE   ;   
    

  • データの変更:
  • 構文:update set 1 = 1, 2 = 2,... [where ];
  • 注意:条件を付けないと、テーブル内のすべてのレコードが変更されます.

  • 3.DQL:クエリー・テーブルのレコードselect * from ;
    基本構文:
    select
    	    
    from
    	    
    where
    	    
    group by
    	    
    having
    	       
    order by
    	  
    limit
    	    
    

    ベースクエリー
  • 複数のフィールドのクエリー
    select    1,   2, ...,    n from   ;
    
  • 注:すべてのフィールドをクエリーする場合は、*を使用してフィールドリストを置き換えることができます.

  • 除去繰返し:
    select distinct     from   ;
    
  • 計算カラム
  • は、一般に、4つの演算を使用していくつかのカラムの値を計算することができる.(一般的に数値型の計算しかできない)
  • ifnull(式1,式2):nullが関与する演算で、計算結果はnullです.
  • 式1:nullの値が可能なフィールド
  • フィールドがnullの場合のデフォルト値.


  • からの別名:
  • as:asは
  • を省略することもできる.
    select     as    from   ;
    

    条件クエリー
    where句の後に条件を付ける
    補足3:演算子
  • 補足:比較演算子
  • 演算子
    式の形式
    さぎょう
    =
    a=b
    aがbに等しいか否かを判断する
    <>または!=
    a<>bまたはa!=b
    aがbに等しくないか否かを判断する
    <=>
    2つのNULL値が等しいかどうかを厳密に比較
    両方の操作コードがNULLの場合、その得られた値は1である.一方、1つの操作コードがNULLである場合、その得られた値が0でaを判断するとbに等しい
    >
    a>b
    aがbより大きいか否かを判断する
    >=
    a>=b
    aがb以上であるか否かを判断する
    <
    a
    aがbより小さいか否かを判断する
    <=
    a<=b
    aがb以下であるか否かを判断する
    IS NULL
    a IS NULL
    aがNULLに等しいか否かを判定する
    IS NOT NULL
    a IS NOT NULL
    aがNULLに等しくないか否かを判断する
    BETWEEN AND
    x BETWEEN a and b
    aの取値がaとbの間にあるか否かを判断する
    IN
    a IN(値1,値2,…,値n)
    aの取値が値1乃至値nの一方であるか否かを判断する
    LIKE
    a LIKE式
    aが式に一致するか否かを判断する
    REGEXP
    a REGEXP正規表現
    aが正規表現に一致するか否かを判断する
    説明:LIKE:ファジイクエリ
  • プレースホルダ:
  • _:単一任意文字
  • %:複数の任意の文字
  • 補足:論理演算子
  • andまたは&&
  • orまたは||
  • notまたは!

  • 例:
    --       /    20 
    SELECT * FROM student WHERE age > 20;
    SELECT * FROM student WHERE age >= 20;
    
    --       20 
    SELECT * FROM student WHERE age = 20;
    
    --        20 
    SELECT * FROM student WHERE age != 20;
    SELECT * FROM student WHERE age <> 20;
    
    --         20     30
    SELECT * FROM student WHERE age >= 20 &&  age <=30;
    SELECT * FROM student WHERE age >= 20 AND  age <=30;
    SELECT * FROM student WHERE age BETWEEN 20 AND 30;
    
    --     22 ,18 ,25    
    SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
    SELECT * FROM student WHERE age IN (22,18,25);
    
    --        null
    SELECT * FROM student WHERE english = NULL; --    。null      =!=)   
    
    SELECT * FROM student WHERE english IS NULL;
    
    --         null
    SELECT * FROM student WHERE english  IS NOT NULL;
    
    --         ? like
    SELECT * FROM student WHERE NAME LIKE ' %';
    
    --             
    SELECT * FROM student WHERE NAME LIKE "_ %";
    
    --      3    
    SELECT * FROM student WHERE NAME LIKE '___';
    
    --           
    SELECT * FROM student WHERE NAME LIKE '% %';