Mysql簡単入門

6057 ワード

mysqlタイプの概要
SQL分類:データ定義言語DDL、データ操作言語DML、データ制御言語DCL DDL:データ定義言語、定義、修正、削除データベース内部構造――例えば:データベース、データテーブル以上の操作DML:データ操作言語、データテーブル記録の増加、削除、修正DCL:データ制御言語ユーザー授権、if、while、トランザクション管理DQL:データ問合せ言語select問合せ文(後に追加されたクラス)
前にSQLを習ったことがあるので、MysqlのDDLの内容をご紹介します
1.インストール
一般的にはデフォルトのインストールを使用します.次にmysqlのパスワードをリセットする方法を説明します.
  • mysqlサービスを停止
  • 新規cmdウィンドウ入力mysqld-nt--skip-grant-tables---ウィンドウブロック、
  • を閉じないでください
  • 新しいウィンドウmysqlにログインするにはパスワードuse mysqlを入力する必要はありません.update user set password = password('abc') where user='root' ;
  • mysqlサービスウィンドウを閉じる---タスクマネージャを開いてmysqld-ntを閉じる.exe
  • mysqlサービスを再起動
  • 2.データベース操作
    (1)データベースの作成
    create database mydb1

    (2)すべてのデータベースを表示
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mydb1              |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+

    (3)あるデータベースの構造(文字セット)を表示する
    mysql> show create database mydb1;
    +----------+----------------------------------------------------------------+
    | Database | Create Database                                                |
    +----------+----------------------------------------------------------------+
    | mydb1    | CREATE DATABASE `mydb1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
    +----------+----------------------------------------------------------------+

    (4)データベースエンコーディングの変更
    alter database       character set    ; 
    (5)データベースの削除
    drop database mydb1
    (6)データベースの切り替え
    use database 
    (7)現在のデータベースを表示
    mysql> select database();
    +------------+
    | database() |
    +------------+
    | mydb1      |
    +------------+
    またはstatusを使用する.
    2.データベース表
    (1)データベーステーブルの作成
    create table   (     (  ),     (  ) ...) character set    ; 
    符号化セットを設定しない場合、データテーブルはデータベースのデフォルト文字セットを採用し、以下の簡単な例を示す.
    create table users(
       id int,
       name varchar(40),
       password varchar(40),
       birthday date
    );
    
    すべてのデータ型のうち、varcharが長さを指定する必要がある場合(charのデフォルトはchar(1))を除き、他のタイプのデフォルト長さ
    (2)データ型
    1)整数型tinyint(byte)smallint(short)int(int)bigint(long)float double
    2)文字列タイプvarchar char長さ取値0-255----String
    varcharが長くなるvarchar(20)はhelloをデータベースに格納します.長くなるため、列の長さは保存内容に応じて自動的に調整されます.
    char定长char(8)----helloをデータベースに格納hello定长保存hello+3スペース
    *varcharはよく使いますが、charの方が性能がいいです(長さが固定されている場合はcharがおすすめです)
    3)論理bit 1ビット---boolean*bit(8)は8ビットがtinyintに等しく、bit(32)がintに等しいことを示す
    4)日付型date time datetime timestamp
    dateは日付のみ保存できます
    time保存時間のみ
    datetimeは日付も時間もあります
    timestamp日付と時刻があり、自動的に更新---操作データテーブル、timestampフィールドが自動的に現在時刻を更新する
    5)ビッグデータ型text、blob
    textテキストタイプデータ、主に文字ファイル---テキストファイルを格納
    blobバイナリファイル、任意のタイプのファイル(音楽、映画)を格納
    (3)表構造の表示
    descテーブル名
    mysql> desc teacher;
    +----------+-------------+------+-----+---------+----------------+
    | Field    | Type        | Null | Key | Default | Extra          |
    +----------+-------------+------+-----+---------+----------------+
    | id       | int(11)     | NO   | PRI | NULL    | auto_increment |
    | name     | varchar(20) | YES  |     | NULL    |                |
    | gender   | char(1)     | YES  |     | NULL    |                |
    | birthday | date        | NO   |     | NULL    |                |
    +----------+-------------+------+-----+---------+----------------+

    (4)データテーブル修正
    既存のデータテーブルに列を追加:alter tableテーブル名
    addカラム名タイプ(長さ)[拘束];
    既存のデータテーブルの列タイプ、長さの変更:alter tableテーブル名
    modifyカラム名タイプ(長さ)[拘束];
    既存のデータテーブルの列の名前を変更する:alter tableテーブル名
    change旧列名新列名タイプ(長さ)[拘束];(modifyの代わりに新しい=古いカラム名)
    既存のカラムを削除:alter tableテーブル名dropカラム名;
    表名の変更:rename table旧表名to新表名; 
    表の文字セットの変更:alter table student character set utf 8;
    (5)テーブルの削除
    drop   

    (6)中国語コード問題
    dosフォームのデフォルトの符号化はgbkであり、デフォルトのデータベースの符号化はutf 8であり、中国語のあるレコードを挿入したい場合は、次のエラーが発生します.
    mysql> insert into student values(1,'  ');
    ERROR 1366 (HY000): Incorrect string value: '\xB9\xC5\xB3\xC7' for column 'name' at row 1

    mysqlでは、client、connection、database、results、server、systemの6つの文字セットが使用されています.
    サーバ側関連:database server system(変更できないのはutf-8)
    クライアント関連connectionクライアントresults
    次のコマンドを使用して、現在の6つの文字セットを表示できます.
    mysql> show variables like 'character%';
    +--------------------------+---------------------------------------------------------+
    | Variable_name            | Value                                                   |
    +--------------------------+---------------------------------------------------------+
    | character_set_client     | utf8                                                    |
    | character_set_connection | utf8                                                    |
    | character_set_database   | utf8                                                    |
    | character_set_filesystem | binary                                                  |
    | character_set_results    | utf8                                                    |
    | character_set_server     | utf8                                                    |
    | character_set_system     | utf8                                                    |
    | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
    +--------------------------+---------------------------------------------------------+
    clientもutf 8のコードですが、dosはgbkですが、カスタマーサービス側のコード方式を修正して、サーバーに相応の変換を通知すればいいです.カスタマーサービス側のコードを修正するのは以下の通りです.
    set names gbk;
    この時点で、前の挿入文は正常に実行されます.現在は一時的に有効ですが、永続的に有効にするにはmysqlインストールディレクトリの下のmyを変更する必要があります.iniファイル
    [mysql]----クライアント構成
    [mysqld]----サーバ側構成
    従ってutf 8をgbkに変更すれば一労永逸(dosのみ)
    [mysql]
    default-character-set=utf8