練習問題

今までやってきたことをアウトプットして知識を定着していこう!!

練習問題31:外部ファイルのコマンドを実行しよう!

条件:データーベース名「myhonki」、ユーザー名「myhonki」、パスワード「honkipc」とし、cloud9の別ファイルを作成したSQLコード(クエリー)を読み込こんでデータベースを作成する。

SQL文


# comment
-- comment
/*
comment
comment
comment
*/
drop database if exists myhonki;
create database myhonki;
grant all on myhonki.* to myhonki_user@localhost identified by 'honkipc';

ターミナル文回答①


\. ./create_myhonki.sql
quit;

ターミナル文回答②


mysql -u root < create_myhonki.sql
mysql -u myhonki_user -p 
honkipc
quit;

練習問題32:テーブルを作成してみよう!

条件:データベース名「myhonki」に「users」テーブルを作成する。SQL文は、練習問題31で使用した外部ファイルから読み込んで作成する。

SQL文


drop table if exists users;
create table users (
  id int unsigned,
  name varchar(20),
  score float
);

ターミナル文


mysql -u myhonki_user -p myhonki
\. ./myhonki.sql
show tables;
desc users;

練習問題33:テーブルを削除してみよう!

条件:練習問題33で作成した「users」テーブルを削除して、削除出来ているか確認する。

ターミナル文


drop table users;
show tables;

練習問題34:レコードを挿入してみよう!

条件:cloud9内の別ファイルで「users」テーブルと次のレコード(id,name.score)を挿入するSQL文(クエリ文)を作成し、読み込む。その作成結果をターミナルに表示する。

id:1、name:apple、score: null

id:2、name:orange、score: 200

id:3、name:banana、score: 100

id:4、name:melon、score: 1000

SQL文


drop table if exists users;
create table users (
  id int unsigned,
  name varchar(20),
  score float
);
insert into users (id, name, score) values
  (1, 'apple', null),
  (2, 'orange', 200),
  (3, 'banana', 100),
  (4, 'melon', 1000);

select * from users;

ターミナル文


\. ./myhonki.sql

練習問題35:フィールドに制限をかけてみよう!

条件:練習問題34で作成した内容を使用する。「id」を自動的に割り振りされ、「name」が重複しないようにする。その作成結果をターミナルに表示する。

id:1、name:apple、score: null

id:2、name:orange、score: 200

id:3、name:banana、score: 100

id:4、name:melon、score: 1000

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);

desc users;

insert into users (name, score) values
  ('apple', null),
  ('orange', 200),
  ('banana', 100),
  ('melon', 1000);

select * from users;

ターミナル文


\. ./myhonki.sql

練習問題36:テーブルの構造を変更してみよう!①

条件:練習問題35で作成した内容を使用する。カラム「name」の後に「email」を追加して、ターミナルに表示する。

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
alter table users add column email varchar(255) after name;
desc users;

ターミナル文


\. ./myhonki.sql

練習問題37:テーブルの構造を変更してみよう!②

条件:練習問題35で作成した内容を使用する。カラム「score」を削除して、ターミナルに表示する。

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
alter table users add column email varchar(255) after name;
alter table users drop column score;
desc users;

ターミナル文


\. ./myhonki.sql

練習問題38:テーブルの構造を変更してみよう!③

条件:練習問題35で作成した内容を使用する。

カラム「name」の名前を「user_name」、データ型を「varchar(255)」へ変更する。

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
alter table users change name user_name varchar(255);
desc users;

ターミナル文


\. ./myhonki.sql

練習問題39:テーブルの構造を変更してみよう!④

条件:練習問題35で作成した内容を使用する。

テーブル名「users」を「persons」へ変更する。その後、テーブル名が変更されているかターミナルに表示する。

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
alter table users rename persons;
show tables;
drop table if exists persons;

ターミナル文


\. ./myhonki.sql

練習問題40:レコード抽出してみよう!①

条件:「users」テーブルに以下のカラムを追加する。

「id」は、自動で割り振りされるようにする。「id」と「name」だけデータ抽出し、ターミナルに表示する。

name:apple、score:150
name:orange、score:200
name:banana、score:100
name:melon、score:1000
name:strawberry、score:300
name:grape、score:350

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
insert into users (name, score) values
  ('apple',150),
  ('orange',200),
  ('banana',100),
  ('melon',1000),
  ('strawberry',300),
  ('grape',350);

select id,name from users;

ターミナル文


\. ./myhonki.sql

練習問題41:レコード抽出してみよう!②

条件:練習問題40の「users」テーブルを使用する。

「score」が、「200」〜「370」だけの「name」抽出して、ターミナルに表示する。

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
insert into users (name, score) values
  ('apple',150),
  ('orange',200),
  ('banana',100),
  ('melon',1000),
  ('strawberry',300),
  ('grape',350);

select name from users where score between 200 and 370;

ターミナル文


\. ./myhonki.sql

練習問題42:レコード抽出してみよう!③

条件:練習問題40の「users」テーブルを使用する。

カラム「name」が「apple」だけの「id」「name」「 score」を抽出し、ターミナルに表示する。

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
insert into users (name, score) values
  ('apple',150),
  ('orange',200),
  ('banana',100),
  ('melon',1000),
  ('strawberry',300),
  ('grape',350);

select * from users where name = 'apple';

ターミナル文


\. ./myhonki.sql

練習問題43:文字列を抽出条件にしてみよう!①

条件:練習問題40の「users」テーブルを使用する。

カラム「name」が以下の分の条件で、それぞれ「id」「name」「score」をターミナルに表示する。

  1. 「name」が、「a」で終わるもの
  2. 「name」が、「e」を含まれているもの
  3. 「name」が、「o」で始まるもの

 

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
insert into users (name, score) values
  ('apple',150),
  ('orange',200),
  ('banana',100),
  ('melon',1000),
  ('strawberry',300),
  ('grape',350);

select * from users where name like '%a';
select * from users where name like '%e%';
select * from users where name like 'o%';

ターミナル文


\. ./myhonki.sql

練習問題44:文字列を抽出条件にしてみよう!②

条件:練習問題40の「users」テーブルを使用する。「name」の「strawberry」を「Strawberry」へ変更する。

「name」が、英数字が大文字「S」だけの「id」「name」「score」を抽出して、ターミナルに表示する。

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
insert into users (name, score) values
  ('apple',150),
  ('orange',200),
  ('banana',100),
  ('melon',1000),
  ('Strawberry',300),
  ('grape',350);

select * from users where name like binary 'S%';

ターミナル文


\. ./myhonki.sql

練習問題45:文字列を抽出条件にしてみよう!③

条件:練習問題44の「users」テーブルを使用する。

カラム「name」が「5文字」の「id」「name」「score」を抽出して、ターミナルに表示する。

SQL文


drop table if exists users;
create table users (
  id int unsigned primary key auto_increment,
  name varchar(20) unique,
  score float 
);
insert into users (name, score) values
  ('apple',150),
  ('orange',200),
  ('banana',100),
  ('melon',1000),
  ('strawberry',300),
  ('grape',350);

select * from users where name like '_____';

ターミナル文


\. ./myhonki.sql