久保清隆のブログ

ライフハック、健康、旅行など、役立つ情報を書きます。

MySQLの基礎(コマンド編):プログラミングの基礎知識

前回MySQLの基礎(概要編):プログラミングの基礎知識の続き。

クエリの構文

以下の8つを覚えれば、MySQLはほぼ使いこなせる。

構文 働き
CREATE データベースやテーブルをつくる
ALTER テーブルの構造を修正する
INSERT テーブルにデータ(レコード)を追加する
SELECT テーブルからレコードを選び出す
UPDATE テーブルの内容を修正する
DELETE レコードを削除する
DROP テーブルやデータベースを削除する
LOAD DATA INFILE ファイルからデータを一気に取り込む

フィールドに入れるべき値の型(データ型)

データ型はあらかじめ定義する。

データ型(データの種類のこと。4種類ある。)
    1. 文字型 
    2. 数値型 
    3. 日付・時刻型 
    4. リスト型 

よく使うのは、
文字型:char, text
数値型:int

char(文字数) character(文字)の略。()内に文字数を指定する。最大半角255文字。
text 最大半角65536文字。全角で原稿用紙80枚以上の文字が格納できる。
int integer(整数)の略。 2^-31 〜 2^31。およそ -21億 〜 +21億くらい。

データベースとテーブルの作り方

まず、MySQLモニタを起動
  • パスワードを設定している場合
mysql -u root -p
  • パスワードを設定していない場合
mysql -u root
データベースを作成

create database データベース名;

  • lessonという名前のデータベースを作成
create database lesson;
出来たデータベースを確認
show databases;
データベースの削除
drop database lesson;
データベースを指定

use データベース名;
以降の作業は、データベース名で指定したデータベースに対して行われる。

use lesson;
テーブル、フィールドを作成

create table テーブル名(フィールド名1 そのデータ型, フィールド名2 そのデータ型, ・・・)

create table todofuken (ken char(50), kencho char(50), jinko int);
出来たテーブルとフィールドを確認
  • テーブル確認
show tables;
  • フィールド確認

show fields from テーブル名

show fields from todofuken;
フィールド名、その属性を修正

alter table テーブル名 change 旧フィールド名 新フィールド名 型;

alter table todofuken change jinko population int;
フィールドの属性を修正

alter table テーブル名 modify フィールド名 新しい属性;

alter table todofuken modify kencho char(40);
テーブルを破棄

drop table テーブル名;

drop table todofuken;
新規レコード作成

1.insert into テーブル名 values (フィールド1の値, フィールド2の値, ・・・);

insert into todofuken values ('Tokyo', 'Tokio', 1222, 2102);

2.insert into テーブル名 (フィールド名1, フィールド名2, ・・・) values (フィールド名1の値, フィールド名2の値, ・・・);

insert into todofuken (kenmei, jinko) values ('Osaka', 882);

※値が文字の場合引用符で囲む必要がある。
2の方法だと、当面必要なフィールドのみにデータを与えることが出来る。


入力したレコードを表示

select * from テーブル名;
※「*」はワイルドカード、つまりなんでもOKという意味。

select * from todofuken;
表示するフィールドを限定

select フィールド名 from テーブル名;

select kenmei from todofuken;
条件を指定して選択

select 表示対象フィールド from テーブル名 where 条件式;

    • 条件式は、 フィールド名 = 〜〜 と記述。
    • = 、 > 、 < 、 >= 、 <= 、 <>(等しくないという意味)などが使える。
    • andor を用いて、複数条件にすることも可能
select kenmei from todofuken where jinko > 1000;
レコードを修正(UPDATE文)

update テーブル名 set フィールド名 = 修正したい値 where 条件式;

update todofuken set jinko = 500 where kenmei = 'Tokyo';
    • 条件をつけなければ、全てに適用される。
    • フィールドの値で更新することも可能。
      • update テーブル名 set フィールド名1 = フィールド名2;
    • 四則演算も可能
      • update テーブル名 set フィールド名 = フィールド名 + 〜〜;
レコードを削除(DELETE文)
  • 特定のレコードを削除
    • delete from テーブル名 where 条件式;
delete from todofuken where kenmei = 'Tokyo';
  • 全レコードを削除(テーブルは残る)
    • delete from テーブル名;
delete from todofuken;
ファイルからデータを一括で取り込む
  • windowsの場合

load data infile "テキストファイル名" into table テーブル名;

load data infile "todofuken.txt" into table todofuken;
選択結果の並び替え
  • 昇順:select 表示したいフィールド from テーブル名 order by フィールド名;
  • 降順:select 表示したいフィールド from テーブル名 order by フィールド名 desc;
select * from todofuken order by kenmei desc;
  • ベスト10:select 表示したいフィールド from テーブル名 order by フィールド名 limit 10;
select kenmei from todofuken order by jinko desc limit 10;
  • フィールド間の計算値による並び替え:select 表示したいフィールド from テーブル名 order by フィールド名1/フィールド名2; など
select kenmei from todofuken order by jinko/menseki;
重複レコードを防止
  • 連番を振る。
    • 連番を入れるフィールドをつくる
    • テーブルにインデックスを付加する(自動連番属性を持たせるため
    • 連番フィールドをAUTO_INCREMENT属性に変更する

alter table テーブル名 add 連番フィールド int;
alter table テーブル名 add index インデックス名 (連番フィールド);
alter table テーブル名 modify 連番フィールド int auto_increment;

alter table todofuken add renban int;
alter table todofuken add index ind1(renban);
alter table todofuken modify renban int auto_increment;
INSERT文での注意
  • 連番フィールドにも値を与えなければならない。適当に番号をつけても、オートインクリメント属性がついているので、自動的に連番が与えられる
  • コマンドは大文字、小文字の区別はない
  • テーブル名、フィールド名、変数は大文字、小文字の区別がある
  • 予約語と重複しないように気をつける。
MySQL5.1 予約語一覧

MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.3 予約語

MySQL入門以前

MySQL入門以前



お読み頂きありがとうございます。
少しでもお役に立てたらクリックお願いします↓。
ブログランキング・にほんブログ村へにほんブログ村 IT技術ブログへにほんブログ村 IT技術ブログ プログラム・プログラマへにほんブログ村 サラリーマン日記ブログ 戦うサラリーマンへ