0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL基礎_メモ用

Posted at

概説

SQL種類

DDL データ定義

CREATE DROP ALTER
表、テーブルの作成、削除など

表の作成(CREATE)

CREATEステートメントは会話式ツールや言語(C,JAVA etc.)で定義可能
```
CREATE TABLE table_name(列名 列data_type,
                    列名 列data_type,
                    列名 列data_type,
                    列名 列data_type)
```
表crate後、insertやload,importなどでデータを格納する

表の変更(ALTER)

表の定義変更はALTERを使用
作成済みテーブルに列を追加例:
```ALTER TABLE table_name ADD 列名 data_type```

表の削除(DROP)

テーブル内のデータも削除されるので、操作は要注意
```DROP TABLE table_name```

DML データ操作

select insert update delete
データの操作

DCL データ制御

権限付与 `GRANT`  権限削除 `REVOKE`
権限管理

行、列、フィールド

- 行は横 レコードとも呼ばれる
- 列は縦 列は特定のデータタイプ属性を持っている
- string (char_固定長 varcha_可変長 longvarchar_可変長 graphic_漢字固定長 vargrapchic_漢字可変長 graphic系は2byte文字しか含まれないので1byte文字混在の場合はchar系を使用)
- date (date_4byte time_3byte timestamp_10byte)
- num (samllint interger_2進数 decimal_10進数 float_浮動小数点数)など
- null notnull (e.g. レコードinsertする際指定のない列にはnullのデータに入る)
- nullを存在したくない場合は列定義時notnullを指定
- nullの場合はcount関数がskipされる
- not null with default(nullの場合自動入力,数値の場合は0,string-ブランク,data-現在日付,time-現在時刻..)
- フィールドは 行と列交差するところ
- いくつかの関連した表を データベースを呼ぶ

VIEW

表の一部を取り出したものやあるいは複数表の結合したもの(selectと違う使い方)

SELECT

構文

SELECT -列名、式、列関数、スカラー関数(必須)
FROM -表名かVIEW名 (必須)
WHERE -列の選択条件文 OPTION
GROUP BY -列名
HAVING -グルーピングの条件文
ORDER BY -列名か列番号

SELECT

  • すべての列を表示する場合は SELECT * FROM table_nameその場合列はCRATE TABLE時の順番だが、行の順番はデータの本当の物理記録順

  • 特定列の表示は SELECT 列名1,列名2,列名3 FROM table_name
    特定列の順序で表示するには 

    SELECT 列名1,列名2,列名3 
    FROM table_name
    ORDER BY 列名1 ASC/DESC ,列名2 ASC/DESC 
    

    (順番:先に列1 の順番並びしてから 列2を順番並び)
    省略する際のデフォルト値はASC 列名は SELECTする際の番号に省略可能(e.g. 列名1 → 1 列名2 → 2)
    ただし、プラットフォームの文字コードによって順番が違う場合がある

  • DISTINCT
    重複出力行を削除
       SELECTの後ろに付ける 1 SELECT文は一回だけ指定できる
    SELECTに複数の行を指定している場合は複数のレコードが完全に一致する場合のみ表示しない

WHERE

  • 文字列条件文
    char,varchar,date,time
    'で囲む必要があり
    2バイト文字列 graphic,vargraphic,long graphic
    の場合は G'xxxxx' (xxxxxは値) で値を入れる必要がある

  • and,or,not 条件文の優先順位
    NOT > AND > OR
    例: WHERE 列1 = 'A' AND 列2 ='B' OR 列2 = 'C' の場合
    出力は 列1 = 'A' 且つ 列2 = 'B'
    および 列2 = 'C'
       になる

    例: WHERE 列1 = 'A' AND (列2 ='B' OR 列2 = 'C') の場合
    出力は 列1 = 'A' 且つ 列2 = 'B'
    および 列1 = 'A' 且つ 列2 = 'C'
       になる   

  • IN
    IN (X,Y,Z)を使うと ORは不要

GROUP BY

 GROUPごと出力
合計や平均値やCOUNTの計算

ORDER BY

順番

HAVING

(GROUP BY)の条件が多い、 COUNT(*) > 1 や SUM > X や avrage > 123 とかとか

合併 UNION  (上下合併)

  • 両select重複の分が1つに除去する
  • 各selectは同じ列数にあする必要がある
  • 連結同士は互換性あるデータタイプであることが必要
  • 全ての列のよる順昇に並べ替え

union all

  • 重複行は除去しない
  • 並び替えもしない

副照会

  • where に select文を入れる
  • < = の時 副照会は1 record 1列の結果にならないといけない

  • 副照会の結果は null ではできない
  • all (副照会の複数結果の全部より > or < ..)
  • any (副照会の複数結果のどれか より > or < ..)

insert

insert into table_name
values('a','b','c',111,NULL)

insert into table_name
select a列,b列,c列,d列
form table_namen
where .....

update

update table_name
set c列 = 500
where a列 = 'ssss'

delete

  • 1行全部消される
    delete from table_name
    where a列 = 'ssss'

drop

  • drop table table_name
  • viewも削除される

なんでjoin説明ないやね

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?