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かはてブコメントにて。