128 lines
6.2 KiB
Markdown
128 lines
6.2 KiB
Markdown
---
|
||
title: SQLについてのメモ
|
||
author: kazu634
|
||
date: 1969-12-31
|
||
url: /1970/01/01/_12/
|
||
wordtwit_post_info:
|
||
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4053;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
|
||
categories:
|
||
- mysql
|
||
- SQL
|
||
|
||
---
|
||
<div class="section">
|
||
<p>
|
||
自宅で勉強できるようにSQLについて調べる調べる。
|
||
</p>
|
||
|
||
<h4>
|
||
MySQLの起動
|
||
</h4>
|
||
|
||
<blockquote title="MacPortsを使ってMacにMySQLをインストール - 佐藤伸吾%28akio0911%29のgeek気取り日記" cite="http://d.hatena.ne.jp/akio0911/20080318/1205838594">
|
||
<p>
|
||
sudo /opt/local/share/mysql5/mysql/mysql.server start
|
||
</p>
|
||
|
||
<p>
|
||
<cite><a href="http://d.hatena.ne.jp/akio0911/20080318/1205838594" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/akio0911/20080318/1205838594', 'MacPortsを使ってMacにMySQLをインストール – 佐藤伸吾%28akio0911%29のgeek気取り日記');" target="_blank">MacPortsを使ってMacにMySQLをインストール – 佐藤伸吾%28akio0911%29のgeek気取り日記</a></cite>
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
データベース名を調べる
|
||
</h4>
|
||
|
||
<blockquote title="MySQLのデータベース作成とユーザー作成" cite="http://y-kit.jp/saba/xp/mysqluser.htm">
|
||
<p>
|
||
mysql> show databases;
|
||
</p>
|
||
|
||
<p>
|
||
<cite><a href="http://y-kit.jp/saba/xp/mysqluser.htm" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://y-kit.jp/saba/xp/mysqluser.htm', 'MySQLのデータベース作成とユーザー作成');" target="_blank">MySQLのデータベース作成とユーザー作成</a></cite>
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
これをしてから「use データベース名」をすればデータベースを使えるようになるよ。ここから容易に推測できたんだけど、テーブル名を調べるのは「show tables」だった。
|
||
</p>
|
||
|
||
<h4>
|
||
主キーの設定
|
||
</h4>
|
||
|
||
<blockquote title="SQL 主キー" cite="http://sql.1keydata.com/jp/sql-primary-key.php">
|
||
<p>
|
||
CREATE TABLE Customer
|
||
</p>
|
||
|
||
<p>
|
||
(SID integer,
|
||
</p>
|
||
|
||
<p>
|
||
Last_Name varchar(30),
|
||
</p>
|
||
|
||
<p>
|
||
First_Name varchar(30),
|
||
</p>
|
||
|
||
<p>
|
||
PRIMARY KEY (SID)
|
||
</p>
|
||
|
||
<p>
|
||
);
|
||
</p>
|
||
|
||
<p>
|
||
<cite><a href="http://sql.1keydata.com/jp/sql-primary-key.php" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://sql.1keydata.com/jp/sql-primary-key.php', 'SQL 主キー');" target="_blank">SQL 主キー</a></cite>
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
SQLでテーブルを生成するPerlスクリプトを作っている。うでも、こったことをしていないので単純なデータベースになりそう。こんな感じ。
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
<span class="synStatement">use strict</span>;
|
||
<span class="synStatement">use warnings</span>;
|
||
<span class="synComment"># テーブルの名前</span>
|
||
<span class="synStatement">my</span> <span class="synIdentifier">$t_name</span> = <span class="synConstant">"OFFICE"</span>;
|
||
<span class="synComment"># テーブルの作成</span>
|
||
<span class="synStatement">print</span> (<span class="synConstant">"CREATE TABLE "</span>, <span class="synIdentifier">$t_name</span>, <span class="synConstant">"</span><span class="synSpecial">\n</span><span class="synConstant">"</span>);
|
||
<span class="synStatement">print</span> (<span class="synConstant">"(</span><span class="synSpecial">\n</span><span class="synConstant">"</span>);
|
||
<span class="synComment"># == ここから属性名の設定 ==</span>
|
||
<span class="synStatement">print</span> (<span class="synConstant">" office_code INT(5),</span><span class="synSpecial">\n</span><span class="synConstant">"</span>);
|
||
<span class="synStatement">print</span> (<span class="synConstant">" office_name CHAR(9)</span><span class="synSpecial">\n</span><span class="synConstant">"</span>);
|
||
<span class="synComment"># == ここまで属性名の設定 ==</span>
|
||
<span class="synStatement">print</span> (<span class="synConstant">");"</span>);
|
||
<span class="synStatement">print</span> (<span class="synConstant">"</span><span class="synSpecial">\n</span><span class="synConstant">"</span>);
|
||
<span class="synComment"># 適当に変更させたいものを列挙させた配列</span>
|
||
<span class="synStatement">my</span> <span class="synIdentifier">@array</span> = (<span class="synConstant">"Tokyo"</span>, <span class="synConstant">"Osaka"</span>, <span class="synConstant">"Yokohama"</span>, <span class="synConstant">"Sendai"</span>, <span class="synConstant">"Fukuoka"</span>);
|
||
<span class="synComment"># 面倒くさいのでインクリメントする変数</span>
|
||
<span class="synStatement">my</span> <span class="synIdentifier">$i</span> = <span class="synConstant">1</span>;
|
||
<span class="synStatement">foreach</span> (<span class="synIdentifier">@array</span>) {
|
||
<span class="synStatement">print</span> (<span class="synConstant">"INSERT INTO "</span>, <span class="synIdentifier">$t_name</span>);
|
||
<span class="synStatement">print</span> (<span class="synConstant">"VALUES ("</span>);
|
||
<span class="synComment"># == ここからvalueの追加</span>
|
||
<span class="synStatement">print</span> (<span class="synConstant">"00"</span>, <span class="synIdentifier">$i</span>, <span class="synConstant">", '"</span>, <span class="synIdentifier">$_</span>, <span class="synConstant">"'"</span>);
|
||
<span class="synComment"># == ここまでvalueの追加</span>
|
||
<span class="synStatement">print</span> (<span class="synConstant">");</span><span class="synSpecial">\n</span><span class="synConstant">"</span>);
|
||
<span class="synIdentifier">$i</span>++;
|
||
}
|
||
</pre>
|
||
|
||
<p>
|
||
Perlの配列は
|
||
</p>
|
||
|
||
<pre class="syntax-highlight">
|
||
<span class="synIdentifier">@array</span> = (<span class="synConstant">1</span>, <span class="synConstant">2</span>, <span class="synConstant">3</span>, <span class="synConstant">4</span>, <span class="synConstant">5</span>);
|
||
</pre>
|
||
|
||
<p>
|
||
でしたね。「{}」だと勘違いした。
|
||
</p>
|
||
</div> |