練習問題
今までやってきたことをアウトプットして知識を定着していこう!!
練習問題46:並び替えをしてみよう!
条件:練習問題45で使用したテーブルを使用する。「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 order by score desc;
ターミナル文
\. ./myhonki.sql
練習問題47:並び替えをしてみよう!②
条件:練習問題46で使用したテーブルを使用する。「id」1~3を除いて4~6のみをターミナルに表示する。
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 limit 3 offset 3;
ターミナル文
\. ./myhonki.sql
練習問題48:並び替えをしてみよう!③
条件:練習問題46で使用したテーブルを使用する。
「score」が高い順に並べ替えをし、レコード3つだけをターミナルに表示する。
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 order by score desc limit 3;
ターミナル文
\. ./myhonki.sql
練習問題49:レコードの更新をしてみよう!
条件:練習問題46で使用したテーブルを使用する。
「apple」を「watermelon」、「watermelon」の「score」を「500」へ変更し、「users」テーブルの中をターミナルに表示する。
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);
update users set name ='watermelon', score = 500 where name ='apple';
select * from users;
ターミナル文
\. ./myhonki.sql
練習問題50:レコードの削除してみよう!
条件:練習問題46で使用したテーブルを使用する。
「score」が「150」より小さいレコードを削除して、「users」テーブルをターミナルに表示する。
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);
delete from users where score < 150;
select * from users;
ターミナル文
\. ./myhonki.sql
練習問題51:数値の演算をしてみよう!
条件:練習問題46で使用したテーブルを使用する。「score」を「1.1倍」かけてターミナルに表示する。
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);
update users set score = score * 1.1;
select * from users;
ターミナル文
\. ./myhonki.sql
練習問題52:ランダムにデータを抽出してみよう!
条件:練習問題46で使用したテーブルを使用する。「rand()」を使ってランダムに一つだけのデータを表示する。
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 order by rand() limit 1;
ターミナル文
\. ./myhonki.sql
練習問題53:名前の文字数順で並び替えをしてみよう!
条件:練習問題46で使用したテーブルを使用する。「文字数(length)」と「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 length(name) as len_name,name from users;
ターミナル文
\. ./myhonki.sql
練習問題54:名前の文字数順で並び替えをしてみよう!②
条件:練習問題46で使用したテーブルを使用する。
練習問題53でつけたカラム名「length(name)」を「len_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 length(name) as len_name,name from users order by len_name;
ターミナル文
\. ./myhonki.sql
練習問題55:MySQLのif文を使ってみよう!
条件:練習問題46で使用したテーブルを使用する。
「score」が、「300」以上の場合は「OK」それ未満は「NG」とカラム「profits」を作成してターミナルに表示する。表示するのは「name」「score」「profits」。
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,
score ,
if(score >= 300,'OK','NG') as profits
from
users;
ターミナル文
\. ./myhonki.sql
練習問題56:MySQLのcase文を使ってみよう!
条件:練習問題46で使用したテーブルを使用する。
「score」が「800」より大きい場合「A」、「250」より大きい場合「B」それ以外は「C」として
カラム「team」を作成して「name」「」score「team」の3つのカラム名の内容をターミナルに表示する。
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,
score,
case
when score > 800 then 'A'
when score > 250 then 'B'
else 'C'
end as team
from
users;
ターミナル文
\. ./myhonki.sql
練習問題57:抽出結果をテーブルにしてみよう!
条件:練習問題46で使用したテーブルを使用する。
練習問題56にて抽出した結果をテーブル名「users_team」で新たに作成し、ターミナルに表示する。
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);
create table users_team as
select
id,
name,
score,
case
when score > 800 then 'A'
when score > 250 then 'B'
else 'C'
end as team
from
users;
select * from users_team;
ターミナル文
\. ./myhonki.sql
練習問題58:既存のテーブルをコピーしてみよう!
条件:練習問題46で使用したテーブルを使用する。
「users」テーブルの構造だけをコピーして新しいテーブル(users_new)作成し、ターミナルに構造がコピーできているかと内容が入っていないか表示する。
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);
create table users_new like users;
desc users_new;
select * from users_new;
ターミナル文
\. ./myhonki.sql
練習問題59:データの集計処理をしてみよう!
条件:練習問題46で使用したテーブルを使用する。
「users」テーブルに何個レコードあるかターミナルに表示する。
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 count(*) from users;
ターミナル文
\. ./myhonki.sql
練習問題60:データの集計処理をしてみよう!②
条件:練習問題46で使用したテーブルを使用する。
「users」テーブルの「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 sum(score) from users;
ターミナル文
\. ./myhonki.sql