トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
MySQL
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ Reference


___

■ Literal

DESC リテラルとは 変数や定数以外の、数値や文字列など表記どおりの値の総称
___

■ string

    文字列型は ", ' で囲む
    "foo",  'bar'

  POINT
    -- 文字列に引用符を追加する場合は 2 こ続ける
    "a""a"
    'a''a'

    -- " 内に ' を入れる場合は 1 個でよい ( 逆も )
    "a'a"
___

■ NULL

データがないことを意味する 0, "" とは意味が異なる
___

■ データの操作

___

■ SELECT

SYNTAX SELECT field[, field...] from tbl [where field=val][ORDER BY field (DESC|ASC)][LIMIT [offset,] row_count] DESC テーブルからレコードを取得( 照会 )する CustomerID、CompanyName は、それぞれ列( Key )の名前を指定 「Customersテーブルから CustomerID、CompanyNameを取得しなさい」という命令になる WARNING SELECT 構文では 各節 ( where など )の順番は構文とおりの順番である必要がある
    // BAD
    select name LIMIT 1, 10  ORDER BY name 
    // OK
    select name ORDER BY name LIMIT 1, 10
    // すべての Column を指定
    SELECT * FROM Customers
    
    // 顧客 Table を表示する. 
    SELECT * FROM customer;

    // Column を指定する { name, age }
    SELECT name, age FROM Customer;

    // 複数の条件を指定する. 
    SELECT * FROM Customer where name="sato" and age=30;

    // 条件 >= , < = を利用する
    SELECT * FROM Customer where age >= 30;

    // 指定リストに一致するものを抽出
    SELECT * FROM Customer where name in ( "tanaka", "sato" );
    
    // あいまい 検索
    // %: 0 文字以上の任意の文字
    // _: 1 つの任意の文字
    SELECT * FROM Customer where name like "%田%"

    // 文字列も 順序関係 があれば 条件判定できる
    SELECT * FROM  Customer where TIMES >= "2009.11.27" order by TIMES;
___

■ Limit

SYNTAX select ... limit [ offset, ] count DESC 指定した範囲の Record をかえす 件 〜 をするときに便利
    // 10 件目 から 20 件目をかえす
    select from tbl limit 10, 20

    // 1 件目 から 30 件目をかえす
    select from tbl limit 30
___

■ ORDER BY

SYNTAX ORDER BY field [(DESC|ASC)][, ...] DESC 指定したカラムでソートする
    -- id, message の順に sort 
    select * from tbl order by id, message

    -- 各項目について ASC DESC を指定する
    -- Default は昇順( ASC )
    select * from tbl order by id ASC, message DESC

    -- where の後でなくてはならない
    select * from tbl where id = 1 order by id, message


    // 文字列でも Sort 可能 ( ASCII code 順かな ? )
    SELECT * FROM member order by age

___

■ GROUP BY

DESC 指定したカラムの値ごとにグループ化する。 POINT グループ化した後は, sum, avg などの統計関数で値をとる。
    -- 性別ごとに平均年齢をもとめる
    SELECT  sex, AVG(age) FROM  member  GROUP BY sex;
___

■ DISTINCT

DESC 重複したレコードをひとつにする
  select DISTINCT age from member order by age
___

■ alias(別名)

DESC カラム名に別名をつける。 複数テーブルで同名のカラムがある場合や、関数で処理をした結果の名前をつけたいときに使う。
    select name AS 名前 from member; 
___

■ INSERT

SYNTAX INSERT INTO テーブル名 (フィールド名 , フィールド名 ,...) VALUES(値 , 値 ,...); # Primary ID は 1 から始まる
    insert into testtbl (NAME) values("tanaka") 

  BAD
    insert into testtbl ("NAME") values("tanaka")
  OK
    insert into testtbl (NAME, AGE) values("tanaka", 32);
___

■ UPDATE

SYNTAX UPDATE [LOW_PRIORITY] [IGNORE] テーブル名 SET field=val [,field=val ...] [WHERE 条件式] [ORDER BY ...] [LIMIT 値] DESC レコードを更新します すべてのレコードを一括更新、もしくは条件式を満たす特定のレコードだけを更新できる
    // Table[mn] の ID == 30 の ガス を 3000 にする
    UPDATE mn SET ガス = 3000 WHERE ID = 30;


    // 複数を指定することもできる
    // UPDATE は左から右に 評価する
    // [商品番号(id_g)]"3"の[価格(price)] フィールドに"3200"を代入し, 1.05倍
     UPDATE goods SET price = 3200, price = price * 1.05 WHERE ID = 3;
   
    BAD
      UPDATE mn SET  ガス = 111, 水 = 222, WHERE ID =32 ;
    OK
      UPDATE mn SET  ガス = 111, 水 = 222  WHERE ID =32 ;

    // String Data は ["] が必須
    BAD
      UPDATE kabu SET 会社 = aaa WHERE id = 12;
    OK
      UPDATE kabu SET 会社 = "aaa" WHERE id = 12;
___

■ DELETE

SYNTAX DELETE from tbl DESC レコードを消す。

  // 10 才以下は削除
  DELETE FROM member WHERE age < = 10;  

  // 田中さんは削除
  DELETE FROM member WHERE name = "tanaka"  

  // 30 才より下を消す
  DELETE FROM member WHERE age < = 30  

WARNING 条件を指定しないと全部消える。
    DELETE FROM member;
___

■ WHERE

SYNTAX where condition DESC 条件を指定する。
    SELECT CustomerID, CompanyName, City
               FROM Customers WHERE City = 'London'

    select * from cmdTbl where ID>=1

    // 複数の指定
    //    20 代のみ削除
    delete from Customer where age >= 20 AND age < = 29;

    // C みたいに () もあり
    SELECT * FROM customer  WHERE (id_c >= 2 AND id_c < =4) OR sex = 1;

  BAD
    delete from testtbl where ID == 1;
  OK
    delete from testtbl where ID = 1;

  WARNING
    条件を指定しないと すべて削除することになるので注意 ( これかなり重要 ! )
    where "xxx" [quot] を忘れずに
  // あいまい検索
  select from アイドル where like "森%千里"

  // REGEXP 検索
  //    部分にのみ Match すれば OK
  // 
  select from アイドル where regexp "森.千里"

___

■ データ定義

___

■ CREATE DATABASE

SYNTAX CREATE DATABASE [IF NOT EXISTS] name DESC 指定した名前のデータベースを作成する WARNING IF NOT EXISTS を指定していないときに 既存の DB を指定するとエラーになる
___

■ CREATE TABLE

SYNTAX CREATE TABLE Customer ( -- 名前 型 属性 id INT UNSIGNED NOT NULL AUTO_INCREMENT, fullname VARCHAR(40) NOT NULL, age TINYINT UNSIGNED NOT NULL , sex TINYINT UNSIGNED NOT NULL, email VARCHAR(50), -- 制約 PRIMARY KEY (id) ); DESC Table を作成する TIP
     // NULL 値を拒否( NULL はなしよ! )
     NOT NULL           
     
     // 重複しないように 自動Increment
     AUTO_INCREMENT
// into outfile "xxx" がないとだめらしい // 単独ですると, 落ちる echo use test;select * from tbl into outfile "foo.csv" fields terminated by ',' \ | mysql -u root -pXXX


  CREATE TABLE Customer (
  -- 名前     型                  属性 
    id         INT UNSIGNED      NOT NULL AUTO_INCREMENT,
    fullname    VARCHAR(40)       NOT NULL, 
    age        TINYINT UNSIGNED   NOT NULL ,
    sex        TINYINT UNSIGNED   NOT NULL,
    email      VARCHAR(50), 

    -- 制約
    PRIMARY KEY (id)
);


    -- Column の定義

    name type [NOT NULL | NULL] [DEFAULT val] [AUTO_INCREMENT]
      [[PRIMARY] KEY] [COMMENT 'string'] [reference_definition] 

    -- 名前   型   属性
    -- name   32文字    NULL はなし   Default値   "tanaka"
    name    char(32)     NOT NULL     DEFAULT "tanaka",
___

■ DROP TABLE

SYNTAX DROP TABLE [IF EXISTS] tbl [, tbl,...] [RESTRICT | CASCADE] DESC テーブルを削除

    // IF EXISTS をつけることで ERROR 回避できる
    DROP TABLE IF EXISTS tbl;
___

■ ALTER

SYNTAX ALTER TABLE tbl ADD column type DESC Table.に.Column.を追加, 削除をする
  // 顧客情報に TEL を追加
  ALTER TABLE Customer ADD tel char(10);

  // 削除
  ALTER TABLE CardInfo DROP Column Status
TIP column を追加すると, Default 値で埋まる
  String  -> NULL
  Integer -> 1 ?

















NINJAIDX 2