練習問題

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

練習問題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