SQL
SQL(エスキューエル、Structured Query Language)
構造化クエリ言語と訳せる
リレーショナル・データベース(RDB)から情報を取得したり、データベースの情報を更新するためプログラミング言語
RDBMS
SQLの仕様がある
SQL99
データ定義言語(Data Definition Language; DDL)
CREATEやDROP、ALTERなどデータベースオブジェクトの生成や削除変更を行うコマンド
CREATE
DROP
GRANT
REVOKE
データ操作言語(Data Manipulation Language; DML)
SELECT/INSERT/UPDATE/DELETEなどテーブルに対するデータの取得・追加・更新・削除を行うコマンド
select
insert
update
delete
DECLARE CURSOR
OPEN
FETCH
CLOSE
データ制御言語(Data Control Language; DCL)
BEGIN、COMMIT、ROLLBACKなどトランザクションの制御を行うためのコマンド
BEGIN
COMMIT
ROLLBACK
code:sample.sql
-- 単一レコードのinsert
insert into table_name (col1, col2, ...) values (col1, col2, ...);
-- select insert
insert into table_name (col1, col2, ...)
select col1, col2, ... from table2_name;
-- update
update table_name
set col_name1 = ...,
col_name2 = ...
where
col_name1 = ...;
delete from table_name
where col_name1 = ...;
code:with.sql
-- WITH サブクエリ名 AS ( ...select文など... )
WITH CTE1 AS (
SELECT item_id, item_name FROM items
), CTE2 AS (
SELECT item_id, item_name FROM items
)
SELECT * FROM CTE1
UNION ALL
SELECT * FROM CTE2;
code:sql
select distinct language from v_example_desc order by language;
code:memo.sql
/* GRANT */
GRANT 権限名 ON オブジェクト名
TO { ユーザ名 | ロール名 | PUBLIC }
WITH GRANT OPTION ;
/* REVOKE */
REVOKE 権限名 ON オブジェクト名
FROM { ユーザ名 | ロール名 | PUBLIC }
SQL 練習問題
関連
PL/SQL
sqlplus
PostgreSQL
MySQL
Transact SQL
確認用
Q. SQL
Q. DDL
Q. DML
Q. DCL
Q. select文
Q. insert文(1行分を挿入)
Q. insert文(クエリで)
Q. update文
Q. delete文
Q. WITH句
Q. WITH句を複数書く場合は
Q. distinctの使い方
Q. GRANT文とは
Q. GRANT文の構文
Q. REVOKE文とは
Q. REVOKE文の構文
Q. ビューの作成
参考
-Redshift PostgreSQL- WITH句を使ってSQLをシンプルに。 | Developers.IO
SQLで、複数テーブルから他方に無い(存在しない)レコードを抽出する | ぱーくん plus idea
SQL - Wikipedia
SQL (構造化クエリ言語) とは何ですか?
メモ
PostgreSQL - 制約 - PRIMARY KEY (主キー) と UNIQUE の違い - From the Southern Hemisphere
#SQL #クエリ言語