MySQL


データベース (Database) は、特定のテーマに沿ったデータを集
めて管理し、容易に検索・抽出などの再利用をできるようにした
もの。 狭義には、コンピュータによって実現されたものを言う。
OSが提供するファイルシステム上に直接構築されるものや、デー
タベース管理システム を用いて構築されるものを含む。

データベースをコンピュータ上で管理するためのシステムをデー
タベース管理システム (DBMS) という。

コンピュータ上では、データの再利用を高速かつ安定に実現する
ため、データを格納するための構造について様々な工夫が払われ
ており、このデータ構造とアルゴリズムは情報工学において重要
な研究分野のひとつである。
Wikiepediaよりコピペ

SQL(エスキューエル)は、リレーショナルデータベースマネージ
メントシステム (RDBMS) において、データの操作や定義を行うた
めのデータベース言語(問い合わせ言語)である。

リレーショナルデータベースマネジメントシステム (RDBMS; 英:
relational database management system) とは、エドガー・
F・コッドが提唱した関係モデル(リレーショナルモデル)に基づ
いた、コンピュータのデータベース管理システム (DBMS) である。
システムの利用者が、データをいくつかの関係 (複数の行と複数
の列からなる表) の形で、扱うことができるシステム
システムの利用者が、表形式のデータを参照・更新する手段とし
て、関係演算 (選択、射影、結合、和などの関係代数や関係論理)
を、使うことができるシステム
Wikipediaより(ry
1.
2.




MySQL(マイエスキューエル)は、RDBMS(リレーショナルデー
タベースを管理、運用するためのシステム)の実装の一つである。
世界で最も有名なオープンソース・データベースとして知られて
いる。 他のフリーRDBMSと比較して高速性に定評があり、特に更
新よりも参照の頻度の高いアプリケーションに向くとされている。
C, C++, Eiffel, Smalltalk, Java(JNI), Lisp, Perl, PHP, Python,
Ruby, TclはMySQLのAPIを介してデータベースへアクセスできる。
またODBCインターフェース (MyODBC) もサポートされている。
Open Database Connectivity(ODBC)は、RDBMSにアクセス
するための共通インタフェース (API)である。 wikipe(ry
データベースA
データベースB
データテーブル1
データテーブル2
データテーブル1
データテーブル2
データテーブル3
データテーブル4
データテーブル3
データテーブル4

管理者権限を持つユーザを登録する
GRANT ALL PRIVILEGES ON データベース名.* TO
ユーザー名@“%” IDENTIFIED BY ‘パスワード’ WITH
GRANT OPTION;
FLUSH PRIVILEGES;

通常のデータ操作が行えるユーザを登録する
GRANT SELECT,INSERT,UPDATE,DELETE・・・ON
データベース名.* TO ユーザ名@localhost IDENTIFIED
BY 'パスワード';
FLUSH PRIVILEGES;
データベースの権限テーブルから権限を再読み込みする。








データベース一覧を見る
SHOW DATABASES;
データベースを作る
CREATE DATABASE データベース名;
データベースを削除する
DROP DATABASE データベース名;
使用するデータベースを指定(切り替え)
USE データベース名;










テーブルを作成する(最低限必要な引数)
CREATE TABLE テーブル名 (カラム1名 カラム1の型,
カラム2名 カラム2の型・・・);
ここで型とは?
つまり変数の型のようなもの(int,double,string,etc…)
沢山ありすぎるのでここではDECIMALとVARCHARを使用します
DECIMALは金額データに関する値など、正確な精度で保存するこ
とが重要となる値に対して使用されます
DECIMAL(全桁数,小数点以下の桁数)
DECIMAL (5,2)と指定すると999.99まで表現できます
VARCHARは可変長の文字列です
VARCHAR(文字数)

主キー(PRIMARY KEY)プライマリキーとはレコードを1行ずつ識
別するためのフィールドで、プライマリキーは必ずユニークな値
となる。プライマリキーの指定により、膨大なデータから必要な
レコードだけを確実に取り出すことが可能。
例えば学籍番号とか(H106014)
CREATE TABLE TEST(
STUDENT_CODE
varchar(7)
not null primary key,
STUDENT_NAME
varchar(15)
);








レコード追加
INSERT INTO 表名(列名1,列名2) VALUES(値1,値2);
INSERT INTO 表名 VALUES(値1,値2);
レコード変更
UPDATE 表名 SET 列名2 = 値2,列名3 = 値3
WHERE 列名1=値1;
レコード削除
DELETE FROM 表名 WHERE 列名1 = 値1;






•
•
•
•
•
•
レコードの検索
SELECT 列名1,列名2・・・ FROM 表名;
条件付加
WHERE句
SELECT 列名1,列名2・・ FROM 表名 WHERE
演算子
=
<>,!=
>
>=
<
<=

•
•
•
演算子
and
or
not

•

•
•
•
ワイルドカード
*
あると便利
BETWEEN
IN
LIKE
列名1 = 値1;







GROUP句
SELECT *
AVG()
SUM()
COUNT()
MAX()
MIN()
FROM 表名 GROUP
BY
列名;









ORDER句
SELECT (中略)
ORDER
BY 列名(desc);
表結合
左結合
表名2 LEFT JOIN 表名2 ON 列名1 = 列名2;
右結合(左結合の反対)
表名2 RIGHT JOIN 表名2 ON 列名1 = 列名2;
内部結合
表名2 INNER JOIN 表名2 ON 列名1 = 列名2;




上のデータが返ってくるようなselect文を考える
これを作るのにもう一つ新しいテーブルを用意する
手順1:code,code_nameをカラムに持つテーブルを作成
手順2:前の結果にさらにleft joinを(合計2回)



返品テーブル
ここにあるデータを売上から除外する
課題1の表の形で上記のデータが反映された表を取得する



自由課題
身の回りの事象をデータベース化
例えばバイト先(飲食店)のデータベースとか学校の生徒や先生
のデータベースとか・・・