464 lines
9.7 KiB
HTML
464 lines
9.7 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<title>MySQL_Questions3.md</title>
|
||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
||
|
||
<style>
|
||
/*---------------------------------------------------------------------------------------------
|
||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||
*--------------------------------------------------------------------------------------------*/
|
||
|
||
body {
|
||
font-family: "Segoe WPC", "Segoe UI", "SFUIText-Light", "HelveticaNeue-Light", sans-serif, "Droid Sans Fallback";
|
||
font-size: 14px;
|
||
padding: 0 12px;
|
||
line-height: 22px;
|
||
word-wrap: break-word;
|
||
}
|
||
|
||
#code-csp-warning {
|
||
position: fixed;
|
||
top: 0;
|
||
right: 0;
|
||
color: white;
|
||
margin: 16px;
|
||
text-align: center;
|
||
font-size: 12px;
|
||
font-family: sans-serif;
|
||
background-color:#444444;
|
||
cursor: pointer;
|
||
padding: 6px;
|
||
box-shadow: 1px 1px 1px rgba(0,0,0,.25);
|
||
}
|
||
|
||
#code-csp-warning:hover {
|
||
text-decoration: none;
|
||
background-color:#007acc;
|
||
box-shadow: 2px 2px 2px rgba(0,0,0,.25);
|
||
}
|
||
|
||
|
||
body.scrollBeyondLastLine {
|
||
margin-bottom: calc(100vh - 22px);
|
||
}
|
||
|
||
body.showEditorSelection .code-line {
|
||
position: relative;
|
||
}
|
||
|
||
body.showEditorSelection .code-active-line:before,
|
||
body.showEditorSelection .code-line:hover:before {
|
||
content: "";
|
||
display: block;
|
||
position: absolute;
|
||
top: 0;
|
||
left: -12px;
|
||
height: 100%;
|
||
}
|
||
|
||
body.showEditorSelection li.code-active-line:before,
|
||
body.showEditorSelection li.code-line:hover:before {
|
||
left: -30px;
|
||
}
|
||
|
||
.vscode-light.showEditorSelection .code-active-line:before {
|
||
border-left: 3px solid rgba(0, 0, 0, 0.15);
|
||
}
|
||
|
||
.vscode-light.showEditorSelection .code-line:hover:before {
|
||
border-left: 3px solid rgba(0, 0, 0, 0.40);
|
||
}
|
||
|
||
.vscode-dark.showEditorSelection .code-active-line:before {
|
||
border-left: 3px solid rgba(255, 255, 255, 0.4);
|
||
}
|
||
|
||
.vscode-dark.showEditorSelection .code-line:hover:before {
|
||
border-left: 3px solid rgba(255, 255, 255, 0.60);
|
||
}
|
||
|
||
.vscode-high-contrast.showEditorSelection .code-active-line:before {
|
||
border-left: 3px solid rgba(255, 160, 0, 0.7);
|
||
}
|
||
|
||
.vscode-high-contrast.showEditorSelection .code-line:hover:before {
|
||
border-left: 3px solid rgba(255, 160, 0, 1);
|
||
}
|
||
|
||
img {
|
||
max-width: 100%;
|
||
max-height: 100%;
|
||
}
|
||
|
||
a {
|
||
color: #4080D0;
|
||
text-decoration: none;
|
||
}
|
||
|
||
a:focus,
|
||
input:focus,
|
||
select:focus,
|
||
textarea:focus {
|
||
outline: 1px solid -webkit-focus-ring-color;
|
||
outline-offset: -1px;
|
||
}
|
||
|
||
hr {
|
||
border: 0;
|
||
height: 2px;
|
||
border-bottom: 2px solid;
|
||
}
|
||
|
||
h1 {
|
||
padding-bottom: 0.3em;
|
||
line-height: 1.2;
|
||
border-bottom-width: 1px;
|
||
border-bottom-style: solid;
|
||
}
|
||
|
||
h1, h2, h3 {
|
||
font-weight: normal;
|
||
}
|
||
|
||
h1 code,
|
||
h2 code,
|
||
h3 code,
|
||
h4 code,
|
||
h5 code,
|
||
h6 code {
|
||
font-size: inherit;
|
||
line-height: auto;
|
||
}
|
||
|
||
a:hover {
|
||
color: #4080D0;
|
||
text-decoration: underline;
|
||
}
|
||
|
||
table {
|
||
border-collapse: collapse;
|
||
}
|
||
|
||
table > thead > tr > th {
|
||
text-align: left;
|
||
border-bottom: 1px solid;
|
||
}
|
||
|
||
table > thead > tr > th,
|
||
table > thead > tr > td,
|
||
table > tbody > tr > th,
|
||
table > tbody > tr > td {
|
||
padding: 5px 10px;
|
||
}
|
||
|
||
table > tbody > tr + tr > td {
|
||
border-top: 1px solid;
|
||
}
|
||
|
||
blockquote {
|
||
margin: 0 7px 0 5px;
|
||
padding: 0 16px 0 10px;
|
||
border-left: 5px solid;
|
||
}
|
||
|
||
code {
|
||
font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
|
||
font-size: 14px;
|
||
line-height: 19px;
|
||
}
|
||
|
||
body.wordWrap pre {
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
.mac code {
|
||
font-size: 12px;
|
||
line-height: 18px;
|
||
}
|
||
|
||
pre:not(.hljs),
|
||
pre.hljs code > div {
|
||
padding: 16px;
|
||
border-radius: 3px;
|
||
overflow: auto;
|
||
}
|
||
|
||
/** Theming */
|
||
|
||
.vscode-light,
|
||
.vscode-light pre code {
|
||
color: rgb(30, 30, 30);
|
||
}
|
||
|
||
.vscode-dark,
|
||
.vscode-dark pre code {
|
||
color: #DDD;
|
||
}
|
||
|
||
.vscode-high-contrast,
|
||
.vscode-high-contrast pre code {
|
||
color: white;
|
||
}
|
||
|
||
.vscode-light code {
|
||
color: #A31515;
|
||
}
|
||
|
||
.vscode-dark code {
|
||
color: #D7BA7D;
|
||
}
|
||
|
||
.vscode-light pre:not(.hljs),
|
||
.vscode-light code > div {
|
||
background-color: rgba(220, 220, 220, 0.4);
|
||
}
|
||
|
||
.vscode-dark pre:not(.hljs),
|
||
.vscode-dark code > div {
|
||
background-color: rgba(10, 10, 10, 0.4);
|
||
}
|
||
|
||
.vscode-high-contrast pre:not(.hljs),
|
||
.vscode-high-contrast code > div {
|
||
background-color: rgb(0, 0, 0);
|
||
}
|
||
|
||
.vscode-high-contrast h1 {
|
||
border-color: rgb(0, 0, 0);
|
||
}
|
||
|
||
.vscode-light table > thead > tr > th {
|
||
border-color: rgba(0, 0, 0, 0.69);
|
||
}
|
||
|
||
.vscode-dark table > thead > tr > th {
|
||
border-color: rgba(255, 255, 255, 0.69);
|
||
}
|
||
|
||
.vscode-light h1,
|
||
.vscode-light hr,
|
||
.vscode-light table > tbody > tr + tr > td {
|
||
border-color: rgba(0, 0, 0, 0.18);
|
||
}
|
||
|
||
.vscode-dark h1,
|
||
.vscode-dark hr,
|
||
.vscode-dark table > tbody > tr + tr > td {
|
||
border-color: rgba(255, 255, 255, 0.18);
|
||
}
|
||
|
||
.vscode-light blockquote,
|
||
.vscode-dark blockquote {
|
||
background: rgba(127, 127, 127, 0.1);
|
||
border-color: rgba(0, 122, 204, 0.5);
|
||
}
|
||
|
||
.vscode-high-contrast blockquote {
|
||
background: transparent;
|
||
border-color: #fff;
|
||
}
|
||
</style>
|
||
|
||
<style>
|
||
/* Tomorrow Theme */
|
||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
||
|
||
/* Tomorrow Comment */
|
||
.hljs-comment,
|
||
.hljs-quote {
|
||
color: #8e908c;
|
||
}
|
||
|
||
/* Tomorrow Red */
|
||
.hljs-variable,
|
||
.hljs-template-variable,
|
||
.hljs-tag,
|
||
.hljs-name,
|
||
.hljs-selector-id,
|
||
.hljs-selector-class,
|
||
.hljs-regexp,
|
||
.hljs-deletion {
|
||
color: #c82829;
|
||
}
|
||
|
||
/* Tomorrow Orange */
|
||
.hljs-number,
|
||
.hljs-built_in,
|
||
.hljs-builtin-name,
|
||
.hljs-literal,
|
||
.hljs-type,
|
||
.hljs-params,
|
||
.hljs-meta,
|
||
.hljs-link {
|
||
color: #f5871f;
|
||
}
|
||
|
||
/* Tomorrow Yellow */
|
||
.hljs-attribute {
|
||
color: #eab700;
|
||
}
|
||
|
||
/* Tomorrow Green */
|
||
.hljs-string,
|
||
.hljs-symbol,
|
||
.hljs-bullet,
|
||
.hljs-addition {
|
||
color: #718c00;
|
||
}
|
||
|
||
/* Tomorrow Blue */
|
||
.hljs-title,
|
||
.hljs-section {
|
||
color: #4271ae;
|
||
}
|
||
|
||
/* Tomorrow Purple */
|
||
.hljs-keyword,
|
||
.hljs-selector-tag {
|
||
color: #8959a8;
|
||
}
|
||
|
||
.hljs {
|
||
display: block;
|
||
overflow-x: auto;
|
||
color: #4d4d4c;
|
||
padding: 0.5em;
|
||
}
|
||
|
||
.hljs-emphasis {
|
||
font-style: italic;
|
||
}
|
||
|
||
.hljs-strong {
|
||
font-weight: bold;
|
||
}
|
||
</style>
|
||
|
||
<style>
|
||
/*
|
||
* Markdown PDF CSS
|
||
*/
|
||
|
||
body {
|
||
font-family: "Meiryo", "Segoe WPC", "Segoe UI", "SFUIText-Light", "HelveticaNeue-Light", sans-serif, "Droid Sans Fallback";
|
||
}
|
||
|
||
pre {
|
||
background-color: #f8f8f8;
|
||
border: 1px solid #cccccc;
|
||
border-radius: 3px;
|
||
overflow-x: auto;
|
||
white-space: pre-wrap;
|
||
overflow-wrap: break-word;
|
||
}
|
||
|
||
pre:not(.hljs) {
|
||
padding: 23px;
|
||
line-height: 19px;
|
||
}
|
||
|
||
blockquote {
|
||
background: rgba(127, 127, 127, 0.1);
|
||
border-color: rgba(0, 122, 204, 0.5);
|
||
}
|
||
|
||
.emoji {
|
||
height: 1.4em;
|
||
}
|
||
|
||
/* for inline code */
|
||
:not(pre):not(.hljs) > code {
|
||
color: #C9AE75; /* Change the old color so it seems less like an error */
|
||
font-size: inherit;
|
||
}
|
||
|
||
/* Page Break : use <div class="page"/> to insert page break
|
||
-------------------------------------------------------- */
|
||
.page {
|
||
page-break-after: always;
|
||
}
|
||
|
||
</style>
|
||
|
||
</head>
|
||
<body>
|
||
<h1>MySQL SQL問題集 part3</h1>
|
||
<h2><strong>前提条件</strong></h2>
|
||
<h2><strong>問1 テーブル作成</strong></h2>
|
||
<p>データ定義に沿って、テーブル及びレコードを作成してください。</p>
|
||
<ol>
|
||
<li>データ型に関しては、入力されているデータを元に推測して選定してください</li>
|
||
<li>主キーは必ず全てのテーブルに設定してください
|
||
※どの項目を主キーとするかは考えて設定してみてください</li>
|
||
<li>主キー以外の制約に関しては問いません</li>
|
||
</ol>
|
||
<h2><strong>問2 データ抽出</strong></h2>
|
||
<p>1で作成したテーブルデータを元に以下のSQLを組み立てましょう。
|
||
基本的に各設問毎に1回のSQLで実現可能な形となっています。
|
||
なるべく少ない回数の問い合わせで済むようにしてみてください。</p>
|
||
<h3>2.1. 以下のデータを取得するSQLを作成しなさい。</h3>
|
||
<ol>
|
||
<li>
|
||
<p>商品一覧と各在庫数を取得するSQL</p>
|
||
</li>
|
||
<li>
|
||
<p>顧客情報とクレジットカード情報を表示するSQL
|
||
※ クレジットカードを登録していない顧客は、クレジット情報をNULLで表示させる
|
||
※ ホームページなどで表示できるよう、性別などのコード値は各種マスタから名称を取得するように</p>
|
||
</li>
|
||
<li>
|
||
<p>入庫予定の商品一覧と予定日、入庫先倉庫を表示するSQL
|
||
※入庫予定は、入庫TBLの完了日が入っていないものを指す</p>
|
||
</li>
|
||
</ol>
|
||
<h3>2.2. 顧客ID:CU00000002(高橋)から受注の以下のような注文が入った</h3>
|
||
<ul>
|
||
<li>
|
||
<p>商品ID・ITM0000002を100個、ITM0000005を90個</p>
|
||
</li>
|
||
<li>
|
||
<p>銀行振り込みで受注日は2014/12/4
|
||
※ このシステムでは、以下のような仕様でデータを登録することになっている</p>
|
||
<ul>
|
||
<li>出荷予定日は各商品の入庫が完了次第出荷</li>
|
||
<li>到着日は未定の為、null
|
||
<ul>
|
||
<li>ステータスは受注完了</li>
|
||
<li>金額、消費税は現マスタ情報を参照して割り出すこと</li>
|
||
<li>配送料は一律で \1,836</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p>この場合、下記のような仕様で登録する必要があるが、それぞれどんなSQLが必要になるか。SQLを作成しなさい</p>
|
||
<ol>
|
||
<li>
|
||
<p>シーケンスでオーダーNOを採番</p>
|
||
</li>
|
||
<li>
|
||
<p>注文情報テーブルに基本情報のみ登録する。他の項目はNULL</p>
|
||
</li>
|
||
<li>
|
||
<p>商品の注文数と注文時の価格を登録</p>
|
||
</li>
|
||
<li>
|
||
<p>受注日で税率をチェックし、総額から消費税を計算、更新</p>
|
||
</li>
|
||
<li>
|
||
<p>注文数と商品の在庫を判定</p>
|
||
<ol>
|
||
<li>在庫があれば、在庫を引当た後に発注手続きへ</li>
|
||
<li>在庫が無ければ、ステータスを入荷待にして入庫予定をチェックし、入庫数と在庫数を合わせて注文数に足りているか判定
|
||
a.入庫数+在庫数が注文数に足りていれば入庫された日を出荷予定日に
|
||
b.入庫数+在庫数が注文数に足りて居なければnullのまま</li>
|
||
</ol>
|
||
</li>
|
||
</ol>
|
||
</li>
|
||
</ul>
|
||
|
||
</body>
|
||
</html>
|