データの取得
カラムの値を演算した後の値を取得
カラム値を取得した後、別名を付ける(AS句) free76
Sunday,July,21,2013 ○テーブルの中身の表示 (sadachi_seiseki) mysql> select * from sadachika_shop.sadachi_seiseki; sada_name sada_suugaku sada_eigo sada_kokugo 定近 39 40 52 鈴木 75 91 53 佐藤 69 71 83 宮崎 92 81 87 橘高 71 47 99 松本 30 31 35 長谷川 50 51 52 7 rows in set (0.00 sec) ///////////////////ここまでの値の格納は下記///////////////////////// ○○カラムの値に0.8を乗算した結果を取得 SELECT sada_name, sada_suugaku * 0.8, sada_eigo * 0.8, sada_kokugo * 0.8, sada_kokugo * 0.8 FROM sadachika_shop.sadachi_seiseki; ↑表示するカラムの順番 ↑カラムの値を20OFF ↑カラムの値を20OFF ↑20OFF ↑参照するdb ↑参照するテーブル名 ○テーブルの中身の表示 (sadachi_seiseki) mysql> select * from sadachika_shop.sadachi_seiseki; ↓間違えて同じカラム名をセレクトしていた でもカラムを任意の順番に表示する練習になった。 sada_name sada_suugaku * 0.8 sada_eigo * 0.8 sada_kokugo * 0.8 sada_kokugo * 0.8 定近 31.2 32.0 41.6 41.6 鈴木 60.0 72.8 42.4 42.4 佐藤 55.2 56.8 66.4 66.4 宮崎 73.6 64.8 69.6 69.6 橘高 56.8 37.6 79.2 79.2 松本 24.0 24.8 28.0 28.0 長谷川 40.0 40.8 41.6 41.6 ○○テーブルに格納された値を用いて、カラムの合計と平均を取得する。 mysql> select sada_name, sada_suugaku + sada_eigo + sada_kokugo, -> round((sada_suugaku + sada_eigo + sada_kokugo) / 3) from sadachika_shop.sadachi_seiseki; ↑かっこ付けるときにいるみたい sada_name sada_suugaku + sada_eigo + sada_kokugo round((sada_suugaku + sada_eigo + sada_kokugo) / 3) 定近 131 44(63.6666666666) *小数点以下は表示されない 鈴木 219 73 佐藤 223 74(74.3333333333) *小数点以下は表示されない 宮崎 260 87(86.6666666666) *小数点以下は表示されない 橘高 217 72(72.3333333333) *小数点以下は表示されない 松本 96 32 長谷川 153 51 7 rows in set (0.06 sec) ○○カラムの値を演算した後の値に別名を付ける(AS句)。表示のみ。 mysql> select sada_name, -> sada_suugaku + sada_eigo + sada_kokugo as sada_goukei, -> round((sada_suugaku + sada_eigo + sada_kokugo) / 3) as sada_heikin -> from sadachika_shop.sadachi_seiseki; sada_name sada_goukei sada_heikin *表示する時だけだが、カラムの名前を任意に変更できる 定近 131 44(63.6666666666) 鈴木 219 73 佐藤 223 74(74.3333333333) 宮崎 260 87(86.6666666666) 橘高 217 72(72.3333333333) 松本 96 32 長谷川 153 51 7 rows in set (0.00 sec) (AS句)ってデータの引越しするとき使えるかな? 今度やってみよう。 お手本 メモ [例1] salesカラムをtokyosalesカラムとして取得 SELECT sales AS tokyosales FROM uriage WHERE branch = 'Tokyo'; [例2] sansuuカラムの値とeigoカラムの値の平均をheikinカラムとして取得 SELECT (sansuu + eigo) / 2 AS heikin FROM seiseki; 使い方が分らない [例3] valueカラムの値の絶対値を取得 SELECT ABS(value) FROM valuelist; //////////////////////悪戦苦闘 別記/////////////////////// ○データベースを表示させる。 MySQL> show databases; ○特定のデータベース内のテーブル SHOW TABLES FROM sadachika_books; SHOW TABLES FROM sadachika_shop; ○テーブルを作る 重複を許さない場合 VARCHAR型なら、unique その他のオプション default 'データなし', default 0, not null(データなし を許さない) INT型なら、primary key ↓db ↓テーブル名 ↓カラム名 ↓VARCHAR型 ↓ユニークキー設定↓デフォルト設定 mysql> create table sadachika_shop.sadachi_seiseki(sada_name varchar(20) unique default 'データなし', -> sada_suugaku int default 0, sada_eigo int default 0, sada_kokugo int default 0); ↑カラム名 ↑INT型 ↑デフォルト設定0 Query OK, 0 rows affected (1.03 sec) ○カラムの構造を見る mysql> show columns from sadachika_shop.sadachi_seiseki; *ユニークキー設定だとNullがYESのままだね。文字型の重複は許さないが、データ無しは許可なんだね Field Type Null Key Default Extra *ちなみにプライマリーにすると自動的にNULL(データなし)が無効になる。そりゃNULLを許すと重複するものね sada_name varchar(20) YES UNI データなし *Key項目はUNI Defaultは'データなし'へと設定された。 sada_suugaku int(11) YES 0 sada_eigo int(11) YES 0 sada_kokugo int(11) YES 0 4 rows in set (0.03 sec) INT型はデータなし ではなくゼロを格納したい。そのためテーブル設定をおこないます。 ○○カラム定義だけを変更する mysql> alter table sadachika_shop.sadachi_seiseki modify sada_eigo int(11) not null default 0; ↑対象のカラム ↑*変更したい型を入力する {元はINT型 not null(データ無しを許さない)} → SMALLINT型へ変更を行なう Query OK, 0 rows affected (0.20 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> alter table sadachika_shop.sadachi_seiseki modify sada_kokugo int(11) not null default 0; Query OK, 0 rows affected (0.08 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> alter table sadachika_shop.sadachi_seiseki modify sada_suugaku int(11) not null default 0; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 ○カラムの構造を見る mysql> show columns from sadachika_shop.sadachi_seiseki; Field Type Null Key Default Extra sada_name varchar(20) YES UNI データなし sada_suugaku int(11) NO 0 *これでNULLの格納が出来なくなった。整数のみ格納できる。 sada_eigo int(11) NO 0 *これでNULLの格納が出来なくなった。整数のみ格納できる。 sada_kokugo int(11) NO 0 *これでNULLの格納が出来なくなった。整数のみ格納できる。 4 rows in set (0.03 sec) ○値の入力(連続入力)(全入力のため省略文) mysql> insert into sadachika_shop.sadachi_seiseki values('定近', default(sada_suugaku), default(sada_eigo), default(sada_kokugo)), ('鈴木', default, default, default), ('佐藤', default, default, default), ('宮崎', default, 50, 50), ('橘高', 50, 50, 50), ('松本', 50, 50, 50), ('長谷川', 50, 50, 50); Query OK, 7 rows affected (0.03 sec) Records: 7 Duplicates: 0 Warnings: 0 ○テーブルの中身の表示 (sadachi_seiseki) mysql> select * from sadachika_shop.sadachi_seiseki; *全てのカラムの値を取得する場合には、カラム名の代わりに「*」を記述する sada_name sada_suugaku sada_eigo sada_kokugo 定近 0 0 0 鈴木 0 0 0 佐藤 0 0 0 宮崎 0 50 50 橘高 50 50 50 松本 50 50 50 長谷川 50 50 50 7 rows in set (0.01 sec) ○入力アップデート (もしも同じ値が合った場合上書きする設定) mysql> insert into sadachika_shop.sadachi_seiseki values('定近', 39, 40, 52), ('鈴木', 75, 91, 53), ('佐藤', 69, 71, 83), -> ('宮崎', 92, 81, 87), ('橘高', 71, 47, 99), ('松本', 30, 31, 35), ('長谷川', 50, 51, 52) -> on duplicate key update sada_name=values(sada_name), sada_suugaku=values(sada_suugaku), sada_eigo=values(sada_eigo), sada_kokugo=values(sada_kokugo); ↑もしも同じ値があったらカラム(sada_name)参照上書き Query OK, 14 rows affected (0.03 sec) Records: 7 Duplicates: 7 Warnings: 0 ○テーブルの中身の表示 (sadachi_seiseki) mysql> select * from sadachika_shop.sadachi_seiseki; sada_name sada_suugaku sada_eigo sada_kokugo 定近 39 40 52 *全て上書きされました 鈴木 75 91 53 佐藤 69 71 83 宮崎 92 81 87 橘高 71 47 99 松本 30 31 35 長谷川 50 51 52 7 rows in set (0.00 sec) もう一度上書きを繰り返すと Query OK, 0 rows affected (0.03 sec) Records: 7 Duplicates: 0 Warnings: 0 ○テーブルの中身の表示 (sadachi_seiseki) 同じでした。 1回目の格納点数 定近'0,0,0 鈴木'0,0,0 佐藤'0,0,0 宮崎'0,50,50 橘高'50,50,50 松本'50,50,50 長谷川'50,50,50 2回目上書きします 定近'39,40,52 鈴木'75,91,53 佐藤'69,71,83 宮崎'92,81,87 橘高'71,47,99 松本'30,31,35 長谷川'50,51,52 おさらいメモ ○○カラム定義だけを変更する mysql> alter table sadachika_shop.sadachi_food modify hirayama_id smallint; ↑対象のカラム ↑*変更したい型を入力する {元はINT型 not null(データ無しを許さない)} → SMALLINT型へ変更を行なう ○○カラム名の変更、データ型の変更 mysql> alter table sadachika_shop.sadachi_food change sada_id hirayama_id int not null; *名前だけ変更するのであってもあわせて型を入力する。 ↑旧カラム名 ↑新しく変更するカラム名(hirayama_id)
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。