練習問題
今までやってきたことをアウトプットして知識を定着していこう!!
練習問題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;
練習問題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:テーブルの構造を変更してみよう!①
練習問題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」だけデータ抽出し、ターミナルに表示する。
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」をターミナルに表示する。
- 「name」が、「a」で終わるもの
- 「name」が、「e」を含まれているもの
- 「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