SQL忘れたから復習

/ Linux/Unix / Comment[0]
postgresqlのソースをダウンロードするところからやってみたら、俺の場合インスコに10分もかかったお。aptgetなら数分なのにね。


ユーザを作成
構文: =# CREATE ROLE ユーザ名 オプション;

オプション
 SUPERUSER  スーパーユーザにする
 CREATEDB  DB作成権限を与える
 CREATEROLE  新しいROLEを作る権限を与える
 PASSWORD 'hoge' パスワードを設定


ユーザを作成
 =# CREATE ROLE usera CREATEDB;
ユーザ削除
 =# DROP ROLE usera;



データベースを作成
構文: =# CREATE DATABASE データベース名 オプション;

オ プション
 OWNER  DB所有者を指定
 TEMPLATE テンプレートDBを指定
 ENCODING DBのエンコードを指定
 LC_COLLATE  ロケール照合順を指定
 LC_CTYPE  ロケール文字クラスを指定


データベースを作成
 =# CREATE DATABASE memberlist OWNER postgres;
データベースを削除
 =# DROP DATABASE memberlist;



テーブルを作成
構文: =# CREATE TABLE テーブル名 (カラム名 データ型[,カラム名 データ型])

データ型
int 整数
float 浮動小数点
text 文字
date 日付
time 時刻
timestamp 日付時刻
boolean 真偽


memberテーブルを定義
=# CREATE TABLE member (id int PRIMARY KEY, name text, address text);



テーブルを削除
memberテーブルを削除
 =# DROP TABLE member;



レコードを挿入
構文: =# INSERT INTO テーブル名 (カラム名[,カラム名,...]) VALUES (カラムへ入れるデータ[,カラムへry...])


 =# INSERT INTO member (id, name, address) VALUES (1, 'Abuse', 'abuse@microsoft.com');
 =# INSERT INTO member (id, name, address) VALUES (2, ''BAKER JO', 'jolynb@microsoft.com')

($ whois -h whois.arin.net "@microsoft.com"で取得したアドレス)



SELECT文でSQLを実行

memberレコードを表示
=# SELECT * FROM member;
 id |   name   |       address        
----+----------+----------------------
1 | Abuse | abuse@microsoft.com
2 | BAKER JO | jolynb@microsoft.com
(2 行)


idが2のレコードのnameカラムを表示
=# SELECT name FROM member WHERE id = 2;
   name   
----------
BAKER JO
(1 行)


idが2以上,3以下のレコードを表示
=# SELECT * FROM member WHERE id <= 3 AND id > 1;
 id |   name   |       address        
----+----------+----------------------
2 | BAKER JO | jolynb@microsoft.com
(1 行)


nameカラムにBAを含むレコードを表示
=# SELECT * FROM member WHERE name ~ 'BA';
 id |   name   |       address        
----+----------+----------------------
2 | BAKER JO | jolynb@microsoft.com
(1 行)


nameレコードを昇順ソートして表示
=# SELECT * FROM member ORDER BY name ASC;
 id |   name   |       address        
----+----------+----------------------
1 | Abuse | abuse@microsoft.com
2 | BAKER JO | jolynb@microsoft.com
(2 行)


nameレコードを降順ソートして表示
=# SELECT * FROM member ORDER BY name DESC;
 id |   name   |       address        
----+----------+----------------------
2 | BAKER JO | jolynb@microsoft.com
1 | Abuse | abuse@microsoft.com
(2 行)


集約関数でレコード数をカウント
=# SELECT count(*) FROM member;

主な集約関数
 count(カラム) レコード数
 avg(数) 平均値
 max(カラム) 最大値
 min(カラム) 最小値



レコードを変更
構文: =# UPDATE テーブル名 SET カラム名 = カラム内容[,カラム名 = カラム内容] [WHERE 対象レコードを示す条件]


idが1のレコードのnameをrenamedに、idを123に変更
=# UPDATE book SET id = '123', name = 'renamed' WHERE id = 1;
=# SELECT * FROM member;
 id  |   name   |       address        
-----+----------+----------------------
2 | BAKER JO | jolynb@microsoft.com
123 | renamed | abuse@microsoft.com
(2 行)



レコードを削除
構文: =# DELETE FROM テーブル名 [WHERE 対象レコードを示す条件]


idが1のレコードを削除
 =# DELETE FROM member WHERE id = 1;
addressカラムに@microsoft.comを含むレコードを削除
 =# DELETE FROM member WHERE address ~ '@microsoft.com';
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可