MySQL 8で学ぶSQLデータベース入門:初心者向けマスターガイド
What you'll learn
- Can build complicated SQL(SELECT, GROUP BY, JOIN, Subquery, WITH, Window Functions)
- Understand Transaction
- Table Normalization & Table Design
- How to do SQL tuning
- Understand Stored Procedure
Requirements
- PC (Win/Mac)
Description
SQLについて初心者でも、1からマスターできます。
本コースではMySQLを使って学習していきますが、SQLの知識は他のDBMSでも活用することができます。
SQLおよびテーブル設計は、Webシステムを構築する上で欠かせない知識になります。
section 2~10までは基礎的な内容となっていて、また演習も含まれているので、SQL構文の理解を深めることができます。
section10のSubqueryまで完了しますと、複雑なSQLを組み立てることができるようになります。
Transactionでは、commit, rollbackやACID特性について学習していきます。
MySQL 8.x から追加された機能であるWindow Functionsについて使い方を理解していきます。
SQLの組み立て方だけでなく、正規化やテーブル設計の仕方についても学習していきます。
統計情報の確認方法からINDEXの作成方法、実行計画の見方からSQLのチューニングまで学ぶことができます。
最後に通常のSQLでは組むことのできない複雑な処理を、Stored Procedureを使ってできるようになります。
※またスライドなどの解説には英語表記を取り入れています。
Even if you are a beginner about SQL, you can master it from scratch.
This course will be taught using MySQL, but knowledge of SQL can be applied to other DBMS.
SQL and table design are essential knowledge for building web systems.
Sections 2-10 are foundational and include exercises to help you better understand SQL syntax.
Once you have completed section 10 Subquery, you will be able to construct complex SQL.
In Transaction, we will learn about commit, rollback and ACID characteristics.
You will understand how to use Window Functions, which is a function added from MySQL 8.x.
You will learn not only how to construct SQL, but also how to normalize and design tables.
You can learn everything from how to check statistics information to how to create INDEX, how to check execution plans, and how to tune SQL.
Finally, you will be able to use Stored Procedures to perform complex processing that cannot be done with normal SQL.
this course topics
MySQL install(Win/Mac)
create DB, create table, alter table
INSERT, SELECT, UPDATE, DELETE
WHERE(AND, OR, LIKE, IN, BETWEEN etc)
Function(string, numeric, date)
GROUP BY, ORDER BY
JOIN(cross, LEFT/RIGHT, INNER)
UNION
Table Scale Out(テーブル拡張)
Subquery(副問い合わせ)
WITH(CTE)
recursive SQL
Transaction(commit, rollback, ACID)
Isolation Levelの理解
IF, CASE
Window Function(partition by order by etc)
Constraint(制約) - PK, UNIQUE, Foreign Key, Check
Data type(string, numeric, boolean, date & time)
Normalization(正規化)の理解
Table Design(テーブル設計)の考え方
統計情報、INDEXの理解
Execution Plan(実行計画)の見方
SQL tuning
INDEX limitation
Stored Procedure
Who this course is for:
- リレーショナルデータベースに関心を持つ初学習者
- Beginners interested in relational databases
Instructor
主にITエンジニア/PMとして活動。
これからエンジニアとして活躍される方へお役に立つようなコースを常に考えています。
私自身様々なオンラインコースを受講してきました。
最初は写経でも良いかと思います。ただずっと写しているだけだと中々力をつけるというのは難しいかと感じています。
そこで特に重視しているのは、「自分で調べる癖をつけること」「なぜそうなるのか疑問を持つこと」「問題や課題が発生したときへの対処する力をつけること」です。
コーディングであれば、実装方法を調べたり、エラーに対処する力、自身で調べて解決する力をつけることが重要です。
コースの中で、受講生自ら考えてもらうような課題や、何かしらのエラーの内容や対処法を紹介していくようにしたいと考えています。
エンジニアとして自走する力を養っていただき、1人でも多くのエンジニアが活躍できるように貢献していきたいと考えています。
■略歴
・大学卒業後、Webエンジニアとしてシステム開発~テスト、マネジメントを一通り経験。
・PMとして多数のプロジェクト経験。
・大規模なデータを扱うシステムのDBテーブル設計、データ設計、SQLチューニングを経験。
I am mainly working as an IT engineer/PM.
I am always thinking about courses that will be useful for those who will be active as engineers in the future.
I have taken various online courses myself.
I think copying is fine at first. However, I feel that it is difficult to improve your skills just by copying.
What I particularly emphasize is "getting into the habit of researching on your own," "questioning why something happens," and "developing the ability to deal with problems and issues when they arise."
For coding, it is important to develop the ability to research implementation methods, deal with errors, and research and solve problems on your own.
In the course, I would like to introduce issues that students will think about on their own, and the contents and countermeasures of some kind of error.
I would like to contribute to developing the ability to be independent as an engineer and to help as many engineers as possible to be active.
■ Biography
- After graduating from university, I experienced a full range of system development, testing, and management as a web engineer.
- Experience in many projects as a PM.
- Experience in DB table design, data design, and SQL tuning for systems that handle large amounts of data.