SQL

BCC 5 で MySQLに接続

参考になります。 http://blog.livedoor.jp/dq_school/archives/1050794.html 参考ソース 404 Not Found

MySQLのサービス開始まで

C:\my.iniに [mysqld] basedir=C:/mysql5 datadir=D:/MySQL_DATA/ default-character-set = cp932[mysql] default-character-set = cp932 を追記 C:\mysql5\bin>net stop MySQL5 MySQL5 サービスを停止中です. MySQL5 サービスは正常に停止されました。 C:\m…

MySQL5.0のストアドプロシジャがサポートする制御文

SQL

条件分岐 記述例 IF 文 IF ・・・ THEN SQL文;ELSE SQL文;END IF; CASE 文 CASE 条件式 WHEN 値 THEN SQL文; WHEN 値 THEN SQL文;ELSE SQL文;END CASE; 繰り返し制御 記述例 WHILE 文 WHILE 条件式 DO SQL文; ・・・END WHILE; REPEAT 文 REPEAT SQL文; ・・・ UNTIL …

ストアドプロシジャで引数と制御構文を実装

SQL

mysql> delimiter // mysql> CREATE TABLE t_test(s1 INT)// Query OK, 0 rows affected (0.09 sec) mysql> CREATE PROCEDURE sp_3 (IN param1 INT, IN param2 INT) -> BEGIN -> DECLARE var1 INT; -> SET var1 = 0; -> WHILE var1 < param1 DO -> INSERT IN…

ストアドプロシジャのパラメータについて

SQL

ストアドプロシジャは入力パラメータを受け取り、処理結果を出力パラメータとして返すことができます。 入力パラメータ:[IN] 名前 データ型 出力パラメータ:OUT 名前 データ型 入出力パラメータ:INOUT 名前 データ型 また次のようにローカル変数も利用できま…

複数のSQL文を記述する場合は、BEGIN〜ENDでくくる

SQL

mysql> CREATE PROCEDURE sp_2() -> BEGIN -> INSERT INTO t_tokui VALUES(1010,'得意先11'); -> UPDATE t_tokui SET tkname = '得意先名10' WHERE tkcd = 1010; -> END -> // Query OK, 0 rows affected (0.02 sec) mysql> CALL sp_2()// Query OK, 1 row a…

ストアドプロシジャ

SQL

mysql> delimiter // mysql> CREATE PROCEDURE sp_1() -> SELECT * FROM t_tokui; -> // Query OK, 0 rows affected (0.08 sec) mysql> CALL sp_1() // +------+-----------+ | tkcd | tkname | +------+-----------+ | 1001 | 得意先名1 | | 1002 | 得意先…

ALTER VIEW文で、作成済みのビューの定義内容をかえられる。

SQL

mysql> ALTER VIEW v_test AS SELECT shcd,shname,tanka,kigou FROM t_syohin -> WHERE tanka < 4000; Query OK, 0 rows affected (0.01 sec) mysql> SELECT * FROM v_test; +--------+---------------------+-------+-------+ | shcd | shname | tanka | ki…

ビューの削除

SQL

mysql> DROP VIEW v_test; Query OK, 0 rows affected (0.00 sec)

ビューの作成

SQL

mysql> CREATE VIEW v_test AS SELECT shcd,shname,tanka,kigou FROM t_syohin; Query OK, 0 rows affected (0.07 sec) mysql> show tables; +------------------+ | Tables_in_rensyu | +------------------+ | members | | t_hanbai | | t_syohin | | t_to…

MySQL4.0から5.0へ移行する手順

C:\mysql\bin>mysqldump -u root -p rensyu >c:\rensyu.sql Enter password: ****** C:\mysql\bin>cd "\Program Files\MySQL\MySQL Server 5.0\bin ※注 MySQL4.0→MySQL5.0にサービスを変更 C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -u root -p En…

インデックスを活かせないSQL文の書き方

SQL

インデックスを設定した列のデータを対象に関数を適用した場合

EXPLAIN文を使ってインデックスの利用状況を把握

SQL

インデックスの設定にALTER TABLE文を使う。

トランザクション処理 BEGIN,COMMIT,ROLLBACK

SQL

トランザクションの最後でROLLBACKを実行してBEGIN以降のSQL文は実行しなかったことになる。 mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO t_hanbai VALUES -> (9,'2005-08-10','1001','100001',5); Query OK, 1 row affected (0…

テーブル定義の変更ALTER文

SQL

t_syohinテーブルに在庫数を記録する列zaikosuを追加する mysql> ALTER TABLE t_syohin ADD zaikosu -> integer not null default 0; Query OK, 11 rows affected (0.30 sec) Records: 11 Duplicates: 0 Warnings: 0 mysql> UPDATE t_syohin SET zaikosu = 1…

MySQL独自のREPLACE文

SQL

指定した主キーを持つレコードがテーブルに存在しなければレコードを追加し、存在している場合はそのレコードを削除したうえで追加します。

AS句を使って列に別名をつける

SQL

mysql> SELECT shname AS 商品名,tanka AS 単価 FROM t_syohin; +----------------------+------+ | 商品名 | 単価 | +----------------------+------+ | USBメモリー128 | 2400 | | USBメモリー256 | 3500 | | USBメモリー512 | 5000 | | SDメモリーカード1…

複数テーブルを結合するとき列名の記述に注意する

SQL

mysql> SELECT t_hanbai.shcd,shname,suryo,tanka FROM t_hanbai INNER JOIN t_syohin ON t_hanbai.shcd = t_syohin.shcd; +--------+---------------------+-------+-------+ | shcd | shname | suryo | tanka | +--------+---------------------+-------+-…

HAVING句で特定の条件に合致したレコードを引き出す方法

SQL

mysql> SELECT shcd,SUM(suryo) FROM t_hanbai GROUP BY shcd HAVING SUM(suryo)>=10; +--------+------------+ | shcd | SUM(suryo) | +--------+------------+ | 100001 | 10 | +--------+------------+ 1 row in set (0.01 sec)

SUM関数でレコードの値を集計、GROUP BY句で結果をグループ分けする方法

SQL

mysql> SELECT shcd,SUM(suryo) FROM t_hanbai GROUP BY shcd; +--------+------------+ | shcd | SUM(suryo) | +--------+------------+ | 100001 | 10 | | 100101 | 3 | | 100201 | 5 | | 100A01 | 7 | | 100B01 | 2 | +--------+------------+ 5 rows in …

WHERE 列名 NOT BETWEEN A AND B

SQL

mysql> SELECT shcd,shname,tanka FROM t_syohin WHERE tanka BETWEEN 3000 AND 5000; +--------+---------------------+-------+ | shcd | shname | tanka | +--------+---------------------+-------+ | 100002 | USBメモリー256 | 3500 | | 100003 | USB…

「WHERE」句に「IN」を使って候補値のどれかと合致するレコードを引き出す

SQL

mysql> SELECT shcd,shname,tanka FROM t_syohin WHERE kigou IN('SDMC','SM'); +--------+---------------------+-------+ | shcd | shname | tanka | +--------+---------------------+-------+ | 100101 | SDメモリーカード128 | 2300 | | 100102 | SDメ…

「WHERE BETWEEN」句で複数の条件を「AND」「OR」でつなげる

SQL

mysql> SELECT shcd,shname,tanka FROM t_syohin WHERE kigou='SDMC' AND tanka<5000; +--------+---------------------+-------+ | shcd | shname | tanka | +--------+---------------------+-------+ | 100101 | SDメモリーカード128 | 2300 | | 100102 |…

「LIMIT」句で引き出すレコード数を制限する

SQL

mysql> SELECT * FROM t_hanbai limit 1,3; +----+------------+------+--------+-------+ | id | ndate | tkcd | shcd | suryo | +----+------------+------+--------+-------+ | 2 | 2005-07-12 | 1001 | 100101 | 3 | | 3 | 2005-07-12 | 1002 | 100201 |…

「DISTINCT」句で重複するデータを一つにまとめて表示

SQL

mysql> SELECT ndate FROM t_hanbai; +------------+ | ndate | +------------+ | 2005-07-11 | | 2005-07-12 | | 2005-07-12 | | 2005-07-21 | | 2005-07-22 | +------------+ 5 rows in set (0.00 sec) mysql> SELECT DISTINCT ndate FROM t_hanbai; +----…

全レコードを表示する「ALL」句

SQL

mysql> SELECT ndate FROM t_hanbai; +------------+ | ndate | +------------+ | 2005-07-11 | | 2005-07-12 | | 2005-07-12 | | 2005-07-21 | | 2005-07-22 | +------------+ 5 rows in set (0.00 sec) mysql> SELECT ALL ndate FROM t_hanbai; +---------…

SOURCEコマンドで長いSQL文をテキストファイルにまとめて実行

例hanbai.sql use rensyu; drop table if exists t_hanbai; CREATE TABLE t_hanbai ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ndate DATE NOT NULL, tkcd CHAR(4) NOT NULL, shcd CHAR(6) NOT NULL, suryo SMALLINT NOT NULL, PRIMARY KEY(id), INDEX…

テキストファイルで複数のレコードをテーブルに追加する方法

mysql> load data local infile 'c:\\mysql\\txt\\syohin.txt' into table t_syohin; Query OK, 10 rows affected (0.49 sec) Records: 10 Deleted: 0 Skipped: 0 Warnings: 0追加するデータ(タブ区切り) 100001 USBメモリー128 USBM 2500 100002 USBメモリ…

ネットワーク上のMySQLサーバに接続

C:\mysql\bin>mysql -h ibm -u ideg Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 to server version: 4.0.26-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

MySQLで使用できるデータ型の一覧

カテゴリ データ型 概要 文字 char(n) nバイトの小手医長文字列 varchar(n) 最大nバイトの可変長文字列 tinytext 可変長文字列。それぞれ格納できる最大バイト数が異なる text 〃 mediumtext 〃 longtext 〃 数値 tinyint 整数型。それぞれ格納できる値の範…