Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。
SQLとは、データの操作や定義を行うための問い合わせ言語のこと。
リレーショナルデータベースマネジメントシステム(RDBMS)を操作する、標準言語。OracleもMySQLもPostgreSQLも、概ね同じSQL文で動作する。
SQLは Structured Query Language (構造化問合せ言語)の略である、とされる。IBM社のRDBMSである「SQL」を指すならば、これは正しい。しかしIBM社のSQLと標準SQLは厳密には別であり、標準SQLについては特に何かの略ではないとのこと。
標準SQLはISOで言語仕様の標準化が行われており、IBM社独自で唱えるRDBMSでは無い。IBM社のSQLは「シークェル」と読まれることもある。
DB作成・削除
- DB作成
create database DB名;
- DB削除
drop database DB名;
- DBに入る
use DB名;
memo: DB名として使える文字は、’英数字“か’_“か’$“。
テーブルの編集
CREATE TABLE bbs (
bbs_id int(11) PRIMARY KEY AUTO_INCREMENT,
bbs_title varchar(255),
bbs_author varchar(128) NOT NULL,
bbs_text text NOT NULL,
bbs_create datetime NOT NULL default'0000-00-00 00:00:00',
bbs_update TIMESTAMP(14),
bbs_delete enum('Y','N') NOT NULL default'N'
);
- テーブルの一覧を表示
show tables;
- テーブルを削除
drop table テーブル名
- テーブルを作成
create table テーブル名 { フィールド名 データ型 初期値, ... };
- テーブル名の変更
alter table 現テーブル名 rename 新テーブル名
フィールドの編集
データ型 | 内容 | データ範囲 |
---|---|---|
int | 4バイト整数 | -2147483648~2147483647 | char( ) | 固定長文字列 | 最大長255バイト |
varchar( ) | 可変長文字列 | 最大長255バイト |
text | 可変長文字列 | 最大長65535バイト |
enum(' ', ' ', ...) | 列挙 | 最大65535個の固有値 |
set(' ', ' ', ...) | リスト | 最大64個の要素 |
date | 日付 | 1000-1-1~9999-12-31 |
datetime | 日付と時刻 | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
timestamp(14) | 現在の日付と時刻 | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
- 一覧を表示
desc テーブル名;
- フィールドを追加 (フィールドAの後に、前に)
alter table テーブル名 add フィールドB データ型 初期値 after フィールドA;
alter table テーブル名 add フィールドB データ型 初期値 first フィールドA;
- フィールドの変更
alter table テーブル名 change 現フィールド名 新フィールド名 データ型 初期値;
- フィールドのデータ型を変更
alter table テーブル名 modify データ型;
- フィールドの削除
alter table テーブル名 drop フィールド名;
- 初期値の設定/削除
alter table テーブル名 alter フィールド名 set default '初期値';
alter table テーブル名 alter フィールド名 drop default;
- インデックスの追加/削除
alter table テーブル名 add unique (フィールド名);
alter table テーブル名 add index フィールド名;
alter table テーブル名 drop index フィールド名;
- 主キーの設定/削除
alter table テーブル名 add primary key( フィールド名, ...);
alter table テーブル名 drop primary key;
レコードの編集
- 新規レコードを追加
insert into テーブル名 ( フィールド1, フィールド2, ... ) values( 値1, 値2, ... );
insert into テーブル名 values( 値1, 値2, ... , 値7 );
- レコードを選択して取り出す(降順)
select フィールド名 from テーブル名 where 条件 order by フィールド名 desc;
- レコードを更新する
update テーブル名 set フィールド名 = 値 where 条件;
- レコードを削除
delete from テーブル名 where 条件;
- テーブルを空にする
delete from テーブル名
Note: スパム対策が面倒なので、コメント投稿を廃止しました。以前のコメントは残します。
ご意見・ご要望はtwitter@sigwygかはてブコメントにて。