前回MySQLの基礎(概要編):プログラミングの基礎知識の続き。
クエリの構文
以下の8つを覚えれば、MySQLはほぼ使いこなせる。
構文 | 働き |
---|---|
CREATE | データベースやテーブルをつくる |
ALTER | テーブルの構造を修正する |
INSERT | テーブルにデータ(レコード)を追加する |
SELECT | テーブルからレコードを選び出す |
UPDATE | テーブルの内容を修正する |
DELETE | レコードを削除する |
DROP | テーブルやデータベースを削除する |
LOAD DATA INFILE | ファイルからデータを一気に取り込む |
フィールドに入れるべき値の型(データ型)
データ型はあらかじめ定義する。
データ型(データの種類のこと。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 条件式;
-
- 条件式は、 フィールド名 = 〜〜 と記述。
- = 、 > 、 < 、 >= 、 <= 、 <>(等しくないという意味)などが使える。
- and や or を用いて、複数条件にすることも可能
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 予約語
- 作者: 石田豊
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2005/03
- メディア: 単行本
- 購入: 22人 クリック: 439回
- この商品を含むブログ (35件) を見る
お読み頂きありがとうございます。
少しでもお役に立てたらクリックお願いします↓。