160 likes | 280 Views
MySQL. 情報理工学部 情報システム工学科 ラシキアゼミ 3年 H106014 井奈波 和也. データベースとは. データベース (Database) は、特定のテーマに沿ったデータを集めて管理し、容易に検索・抽出などの再利用をできるようにしたもの。 狭義には、コンピュータによって実現されたものを言う。 OS が提供するファイルシステム上に直接構築されるものや、データベース管理システム を用いて構築されるものを含む。 データベースをコンピュータ上で管理するためのシステムをデータベース管理システム (DBMS) という。
E N D
MySQL 情報理工学部 情報システム工学科 ラシキアゼミ 3年 H106014 井奈波 和也
データベースとは • データベース (Database) は、特定のテーマに沿ったデータを集めて管理し、容易に検索・抽出などの再利用をできるようにしたもの。 狭義には、コンピュータによって実現されたものを言う。OSが提供するファイルシステム上に直接構築されるものや、データベース管理システム を用いて構築されるものを含む。 • データベースをコンピュータ上で管理するためのシステムをデータベース管理システム (DBMS) という。 • コンピュータ上では、データの再利用を高速かつ安定に実現するため、データを格納するための構造について様々な工夫が払われており、このデータ構造とアルゴリズムは情報工学において重要な研究分野のひとつである。 Wikiepediaよりコピペ
SQLRDBMS • SQL(エスキューエル)は、リレーショナルデータベースマネージメントシステム (RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)である。 • リレーショナルデータベースマネジメントシステム (RDBMS; 英: relational database management system) とは、エドガー・F・コッドが提唱した関係モデル(リレーショナルモデル)に基づいた、コンピュータのデータベース管理システム (DBMS) である。 • システムの利用者が、データをいくつかの関係 (複数の行と複数の列からなる表) の形で、扱うことができるシステム • システムの利用者が、表形式のデータを参照・更新する手段として、関係演算 (選択、射影、結合、和などの関係代数や関係論理) を、使うことができるシステム Wikipediaより(ry
MySQLとは • 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 データテーブル1 データテーブル2 データテーブル2 データテーブル3 データテーブル3 データテーブル4 データテーブル4
ユーザー管理 • 管理者権限を持つユーザを登録する GRANTALLPRIVILEGESON データベース名.* TO ユーザー名@“%”IDENTIFIEDBY‘パスワード’WITH GRANTOPTION; FLUSH PRIVILEGES; • 通常のデータ操作が行えるユーザを登録する GRANTSELECT,INSERT,UPDATE,DELETE・・・ON データベース名.* TO ユーザ名@localhostIDENTIFIED BY 'パスワード'; FLUSH PRIVILEGES; データベースの権限テーブルから権限を再読み込みする。
SQL文基礎 • データベース一覧を見る • SHOWDATABASES; • データベースを作る • CREATEDATABASE データベース名; • データベースを削除する • DROPDATABASE データベース名; • 使用するデータベースを指定(切り替え) • USE データベース名;
SQL文基礎 • テーブルを作成する(最低限必要な引数) • CREATETABLE テーブル名 (カラム1名 カラム1の型, カラム2名 カラム2の型・・・); • ここで型とは? • つまり変数の型のようなもの(int,double,string,etc…) • 沢山ありすぎるのでここではDECIMALとVARCHARを使用します • DECIMALは金額データに関する値など、正確な精度で保存することが重要となる値に対して使用されます • DECIMAL(全桁数,小数点以下の桁数) • DECIMAL (5,2)と指定すると999.99まで表現できます • VARCHARは可変長の文字列です • VARCHAR(文字数)
SQL文基礎 • 主キー(PRIMARY KEY)プライマリキーとはレコードを1行ずつ識別するためのフィールドで、プライマリキーは必ずユニークな値となる。プライマリキーの指定により、膨大なデータから必要なレコードだけを確実に取り出すことが可能。 • 例えば学籍番号とか(H106014) CREATETABLETEST( STUDENT_CODEvarchar(7)not nullprimary key, STUDENT_NAMEvarchar(15) );
SQL文基礎 • レコード追加 • INSERTINTO 表名(列名1,列名2) VALUES(値1,値2); • INSERTINTO 表名 VALUES(値1,値2); • レコード変更 • UPDATE 表名 SET 列名2 = 値2,列名3 = 値3 WHERE 列名1=値1; • レコード削除 • DELETEFROM表名WHERE列名1 = 値1;
SQL文基礎 • レコードの検索 • SELECT 列名1,列名2・・・ FROM 表名; • 条件付加 • WHERE句 • SELECT 列名1,列名2・・ FROM 表名 WHERE列名1 = 値1; • 演算子 • = • <>,!= • > • >= • < • <= • 演算子 • and • or • not • ワイルドカード • * • あると便利 • BETWEEN • IN • LIKE
SQL文基礎 • GROUP句 • SELECT * FROM 表名 GROUPBY 列名; • AVG() • SUM() • COUNT() • MAX() • MIN()
SQL文基礎 • ORDER句 • SELECT(中略)ORDERBY 列名(desc); • 表結合 • 左結合 • 表名2LEFTJOIN 表名2ON 列名1 = 列名2; • 右結合(左結合の反対) • 表名2RIGHTJOIN 表名2ON 列名1 = 列名2; • 内部結合 • 表名2INNERJOIN 表名2ON 列名1 = 列名2;
課題1 • 上のデータが返ってくるようなselect文を考える • これを作るのにもう一つ新しいテーブルを用意する • 手順1:code,code_nameをカラムに持つテーブルを作成 • 手順2:前の結果にさらにleftjoinを(合計2回)
課題2 • 返品テーブル • ここにあるデータを売上から除外する • 課題1の表の形で上記のデータが反映された表を取得する
課題3 • 自由課題 • 身の回りの事象をデータベース化 • 例えばバイト先(飲食店)のデータベースとか学校の生徒や先生のデータベースとか・・・