データベースとSQL
C:\PostgreSQL\9.5\bin\psql.exe -U postgres -d shop
データベースの基本的な考え方
データベース(DB)は:それは効率的のセットによってアクセス可能なデータのコンピュータ処理によって大量のデータが保存されます
データベース管理システム(DBMS) :コンピュータシステムのデータベースを管理するために使用する
DBMSの重要性 :(テキストファイルやスプレッドシートができませんやります)
- 人々は、データを共有することはできません
- 私たちは、業務に必要なデータ・フォーマットの多数を提供することはできません
- 自動化を読み書きする能力は、プログラミングを必要とします
- 予期せぬ出来事のに対処することができません
DBMSの種類 - 階層データベース:階層DB
- リレーショナル・データベース:リレーショナルDB使用してSQL(構造化照会言語)クエリ
- リレーショナルデータベース管理システム:リレーショナルデータベース管理システム
- オラクル
- SQLサーバー
- DB2
- Postgresqlの
- MySQLの
- リレーショナルデータベース管理システム:リレーショナルデータベース管理システム
- オブジェクト指向データベース:オブジェクト指向DB
- XMLデータベース:XMLDB
キーと値のストレージシステム:KEY_VALUEストア
データベースの構造
一般的なRDBMSアーキテクチャ
SQLデータを呼び出すことによって、クライアント、サーバー、クライアント
のテーブル構造を- テーブル:行と列からなる2次元の表
- 返されるSQL文のデータ内容によると、2次元の表形式でなければなりません
- フィールド、リレーショナルデータベースを記録する単位でデータを読み込みと書き込み
カラム(垂直方向)と行(横方向)のグリッドと呼ばれる細胞を交差するセルだけつのデータ入力
SQLの概要
- SQLは、リレーショナルデータベースを操作するための言語であります
- SQL文のタイプ
- テーブルなどのデータベースおよびデータベースオブジェクトに格納されたデータを作成または削除するDDL(データ定義言語)
- CREATE:データベースとデータテーブルを作成します
- DROP:データベースとデータテーブルを削除
- ALTER:データベースとテーブルの構造を変更
- DML(データ操作言語)は、テーブル内のレコードを照会したり変更するために使用されます
- SELECT:データルックアップテーブル
- INSERT:テーブルに新しいデータを挿入
- UPDATE:更新テーブルデータ
- DELETE:テーブル内のデータを削除します
- DCL(データ制御言語)は、データベース内のデータへの変更を確認またはキャンセルするために使用され
- COMMIT:データベース内のデータへの変更を確認します
- ROLLBACK:データベース内のデータへの変更をキャンセル
- GRANTは:ユーザー権利を与えます
- REVOKE:ユーザーの操作権限を取り消します
- テーブルなどのデータベースおよびデータベースオブジェクトに格納されたデータを作成または削除するDDL(データ定義言語)
- 書き込みSQLの基本的なルール
- セミコロン(;)とSQL文SQL文の終わりには、データベースの動作を記述することができます
- SQL文は統一ルールの理解を容易にするために大文字と小文字を区別しません
- キーワードの大文字
- 大文字でテーブル名の最初の文字
- 列名を小文字
- データテーブルに挿入すると、大文字と小文字が区別され、セルジェリーコンピュータ、コンピュータは、コンピュータは同じではありません
- 表記は固定定数であります
- 統一された単一引用符「2010-01-26」形式を推奨する日付
- 単一引用符で埋めることなく、数値定数
ハーフサイズのスペースワードラインを分離または分割する必要があり
テーブルを作成します。
- データベースの作成
CREATE DATABASE <数据库名>;
CREATE DATABASE shop;
- テーブルを作成します。
CREATE TABLE <表名>
(<列名1><数据类型><该列的约束>
<列名2><数据类型><该列的约束>
<列名3><数据类型><该列的约束>
...
<该表的约束1><该表的约束2>);
CREATE TABLE Product
(product_id CHAR(4) NOT NULL,
product_name VARCHAR(10) NOT NULL,
product_type VARCHAR(32) NOT NULL,
sale_price INTEGER ,
purchase_price INTEGER ,
regist_date DATE ,
PRIMARY KEY (product_id)
); --Postgresql通过 \dt来查看数据库里的表 \dt <表名>来查看表的定义
- 命名規則
- データベース、テーブル、カラムとしてのみ半幅文字、数字、アンダースコア(_)の名前を使用します
- 名前は半角文字で始まる必要があります
- あなたは、同じ名前を持つ2つのテーブルを使用してデータベースを作成することはできません。
- データの種類
- データ型を指定する必要がありますすべての列
のデータ型が数値、文字および日付データ型を含むタイプを示している-整数のストレージ用INTEGERを、小数格納することはできません- 記憶固定長の文字列を指定するために使用されるCHAR文字列は、大文字と小文字が区別され
- VARCHAR変数は大文字と小文字を区別した文字列を指定するために使用される文字列を格納するために - オラクルはVARCHAR2を使用しました
- DATEは、ストレージ日付を指定するために使用されます
- データ型を指定する必要がありますすべての列
- 設定制約:データ・タイプに加えて、列に格納されたデータ、または制限条件は、機能を追加
- 空でない、NOT NULL
PRIMARY KEYキープライマリ(非空で繰り返されていません)
削除して、テーブルを更新
- 表を削除します
DROP TABLE <表名>;
DROP TABLE <Product>; --无法恢复
- 更新テーブル
- 列を増やします
ALTER TABLE <表名> ADD COLUMN <列名>;
-- Oracle和MS SQL 可以不写COLUMN
-- Oracle添加多列:ALTER TABLE <表名> ADD (<列名1>,<列名2>,...);
- 列を削除
ALTER TABLE <表名> DROP COLUMN <列名>;
-- Oracle不用写COLUMN
-- Oracle删除多列:ALTER TABLE <表名> DROP (<列名1>,<列名2>,...); --无法恢复
- テーブルにデータを挿入します
-- DML:插入数据
BEGIN TRANSACTION;
INSERT INTO Product VALUES ('0001','T恤衫','衣服',1000,500,'2009-09-20');
INSERT INTO Product VALUES ('0002','打孔器','办公用品',500,320,'2009-09-11');
INSERT INTO Product VALUES ('0003','运动T恤','衣服',4000,2800,NULL);
INSERT INTO Product VALUES ('0004','菜刀','厨房用具',3000,2800,'2009-09-20');
INSERT INTO Product VALUES ('0005','高压锅','厨房用具',6800,5000,'2009-01-15');
INSERT INTO Product VALUES ('0006','叉子','厨房用具',500,NULL,'2009-09-20');
INSERT INTO Product VALUES ('0007','擦菜板','厨房用具',880,790,'2008-04-28');
INSERT INTO Product VALUES ('0008','圆珠笔','办公用品',100,NULL,'2009-11-11');
COMMIT;
-- MySQL改为:START TRANSACTION -- Oracle和DB2中不用BEGIN TRANSACTION
- テーブル名を変更します。
ALTER TABLE Poduct RENAME TO Product; -- Oracle/PostgreSQL
RENAME TABLE Poduct TO Product; -- DB2:
sp_rename 'Poduct','Product'; -- SQL SEVER:
RENAME TABLE Poduct TO Product; --MySQL: