二足のわらじ

〜プログラミングとSEOの勉強をはじめたミーハー26歳のメモ帳〜

【学習52日】SQLの基本【応用14日】

 

 

 

SQLの超概要

 

SQLとは?

・リレーショナルデータベースを操作する言語

・多くのリレーショナルDBでそのまま使える

 (MySQLpostgreSQLSQlite 等)

 

SQLには主に2つ命令がある

DDL(Data Definition Language)

定義する命令。データベース・テーブルそのものを扱う

ーCREATE(データベース・テーブルそのものを)作る

ーALTER(データベース・テーブルそのものを)更新

DROP(データベース・テーブルそのものを)削除

 

DML(Data Manipulation Language)

操作する命令。(テーブル等の)データを扱う

ーINSERT(データを)登録

ーUPDATE(データを)更新

ーDELEATE(データを)削除

ーSELECT(データを)検索

 

 

■データベース・テーブルそのものを操作(定義)する

■データベースへの接続

mysql -u root

mysqlだけでデータベースへの接続は可能)

(ユーザーを指定する時には -u root)

 

■データベースをみる

show databases;

(そのユーザーのデータベースが全て表示される)

 

■データベースを作る

create database DB名;

 

■データベースを選択する

use (データベース名);

数あるデータベースの中から今から使うDBを選択する

 

■テーブルをみる

show tables;

今選択しているデータベースのテーブルを表示する

 

■テーブルを作る

create table goods2(id int, name varchar(10), price int);

()の中でカラムを最低1つは定義しなければエラーになる

 

※int  数値型

※varchar(●) (最大●文字の)文字列型

 

 

■テーブルのカラムをみる(構造を確認する)

show columns from テーブル名;

 

■カラムを追加する

alter table テーブル名 add(カラム名  カラム型);

alter table テーブル名 add(price int, zaiko int);

 

■カラムを変更する

alter table テーブル名 changeカラム名カラム名 新カラム型;

alter table goods2 change zaiko stock int;

 

※たとえ型が変わらなくとも

 カラムの型は省略できない

 

■カラムを削除する

alter table テーブル名 drop カラム名;

alter table goods2 drop stock;

 

 

■データを操作する

 

■データを追加

insert into テーブル名 values (値1,値2,値3);

insert into goods2 values (1,"ペン",100);

 

insert into テーブル名(カラム1,カラム2) values(値1,値2);

 insert into goods2(id,name) values(2,"消しゴム");

 

■データの変更

update テーブル名 set 変更後の内容 where 条件;

 update goods2 set price = 120 where id =2;

 

※whereがなければ全てのデータが変更される

※whereは条件

 

■データの削除

delete from テーブル名 where id =2;

delete from goods2 where id =2;

 

※whereがなければ全てのデータが削除される

 

 

■データの選択の基本(SELECT)

 

■テーブルに入っているデータを全て表示する

select * from テーブル名 

 

ワイルドカード

文字の代わりとして使える文字

(例)* →全てのカラムを取得するという意味をもつ

 

■あるカラムの値を抜き出して表示

select カラム名 from テーブル名;

select name from goods2;

 

■AND演算子 OR演算子 NOT演算子

・select * from users where age =22 and name = ”佐藤”

・select * from users where age =22 or name = ”佐藤”

・select * from users where not name = ”佐藤”

 

■Between演算子 in演算子

・select * from users where age Between  22 and 24

・select * from users where name In (”佐藤”,”鈴木”,”田中”)