ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

【SQL】SQL训练网站 SQLBlot

2022-05-25 10:33:29  阅读:150  来源: 互联网

标签:训练 -- com movies SQLBlot SQL WHERE Find SELECT


 

网站地址:

https://sqlbolt.com/

  

Lesson1:

-- https://sqlbolt.com/lesson/select_queries_introduction
-- Find the title of each film ✓
SELECT `TITLE ` FROM `movies`;

-- Find the director of each film ✓
SELECT `DIRECTOR` FROM movies;

-- Find the title and director of each film ✓
SELECT `TITLE`,`DIRECTOR` FROM movies;

-- Find the title and year of each film ✓
SELECT `TITLE`,`YEAR` FROM movies;

-- Find all the information about each film ✓
SELECT * FROM movies;

 

Lesson2:

-- https://sqlbolt.com/lesson/select_queries_with_constraints

-- Find the movie with a row id of 6 ✓
SELECT * FROM movies WHERE `ID` = 6;

-- Find the movies not released in the years between 2000 and 2010 ✓
SELECT * FROM movies WHERE `YEAR` BETWEEN 2000 AND 2010;

-- Find the movies not released in the years between 2000 and 2010 ✓
SELECT `TITLE`, `YEAR` FROM movies WHERE `YEAR` < 2000 OR `YEAR` > 2010;
SELECT * FROM movies WHERE `YEAR` NOT BETWEEN 2000 AND 2010;

-- Find the first 5 Pixar movies and their release year ✓
SELECT `TITLE`, `YEAR` FROM movies WHERE `YEAR` <= 2003;

  

Lesson3:

https://sqlbolt.com/lesson/select_queries_with_constraints_pt_2

-- Find all the Toy Story movies ✓
SELECT * FROM movies WHERE `TITLE ` LIKE '%Toy Story%';

-- Find all the movies directed by John Lasseter ✓
SELECT * FROM movies WHERE `DIRECTOR` = 'John Lasseter'

-- Find all the movies (and director) not directed by John Lasseter ✓
SELECT * FROM movies WHERE `DIRECTOR` != 'John Lasseter'

-- Find all the WALL-* movies ✓
SELECT * FROM movies WHERE `TITLE` LIKE '%WALL-%'

  

Lesson4:

-- https://sqlbolt.com/lesson/filtering_sorting_query_results

-- List all directors of Pixar movies (alphabetically), without duplicates ✓
SELECT DISTINCT `DIRECTOR` FROM movies ORDER BY `DIRECTOR`

-- List the last four Pixar movies released (ordered from most recent to least) ✓
SELECT * FROM movies ORDER BY `YEAR` DESC LIMIT 4

-- List the first five Pixar movies sorted alphabetically ✓
SELECT * FROM movies ORDER BY `TITLE` ASC LIMIT 5

-- List the next five Pixar movies sorted alphabetically ✓
SELECT * FROM movies ORDER BY `TITLE` ASC LIMIT 5, 5

  

Lesson5:

-- https://sqlbolt.com/lesson/select_queries_review

-- List all the Canadian cities and their populations ✓
SELECT * FROM north_american_cities WHERE `COUNTRY` = 'Canada';

-- Order all the cities in the United States by their latitude from north to south ✓
SELECT * FROM north_american_cities 
WHERE `COUNTRY` = 'United States' 
ORDER BY `LATITUDE` DESC;

-- List all the cities west of Chicago, ordered from west to east ✓
SELECT `CITY`,`LONGTITUDE` FROM north_american_cities
WHERE `LONGTITUDE` < -87.629798
ORDER BY `LONGTITUDE` ASC;

-- List the two largest cities in Mexico (by population) ✓
SELECT * FROM north_american_cities 
WHERE `COUNTRY` = 'Mexico' 
ORDER BY `POPULATION` DESC LIMIT 2

-- List the third and fourth largest cities (by population) in the United States and their population ✓
SELECT * FROM north_american_cities 
WHERE `COUNTRY` = 'United States' 
ORDER BY `POPULATION` DESC LIMIT 2, 2

  

Lesson6:

-- https://sqlbolt.com/lesson/select_queries_with_joins

-- Find the domestic and international sales for each movie ✓
SELECT 
    A.*,
    B.`DOMESTIC_SALES`,
    B.`INTERNATIONAL_SALES`
FROM 
    movies AS A
    JOIN `boxoffice` AS B ON A.ID = B.MOVIE_ID;

-- Show the sales numbers for each movie that did better internationally rather than domestically ✓
SELECT `title`, `domestic_sales`, `international_sales`
FROM 
  `MOVIES` AS A   JOIN `BOXOFFICE` AS B ON A.id = B.movie_id WHERE B.`international_sales ` > B.`domestic_sales`; -- List all the movies by their ratings in descending order ✓ SELECT A.`title`, B.`rating` FROM `movies` AS A JOIN `boxoffice` AS B ON movies.id = boxoffice.movie_id ORDER BY rating DESC;

  

Lesson7:

-- https://sqlbolt.com/lesson/select_queries_with_outer_joins

-- Find the list of all buildings that have employees ✓
SELECT DISTINCT building FROM employees;

-- Find the list of all buildings and their capacity ✓
SELECT * FROM Buildings 

-- List all buildings and the distinct employee roles in each building (including empty buildings) ✓
SELECT DISTINCT A.`building_name`, B.`role `
FROM 
    buildings AS A
    LEFT JOIN employees AS B ON A.building_name = B.building;

 

Lesson8:

-- https://sqlbolt.com/lesson/select_queries_with_nulls

-- Find the name and role of all employees who have not been assigned to a building ✓
SELECT * FROM Employees WHERE Building IS NULL

-- Find the names of the buildings that hold no employees ✓
SELECT
  A.Building_name
FROM
  Buildings AS A
  LEFT JOIN Employees AS B ON A.Building_name = B.Building
WHERE
  B.Building IS NULL

  

Lesson9:

-- https://sqlbolt.com/lesson/select_queries_with_expressions

-- List all movies and their combined sales in millions of dollars ✓
SELECT 
  A.title, 
  (domestic_sales + international_sales) / 1000000 AS gross_sales_millions
FROM 
  movies AS A,
  JOIN boxoffice AS B ON A.id = B.movie_id;

-- List all movies and their ratings in percent ✓
SELECT 
  A.TITLE,
	B.RATING * 10 AS rating_percent
FROM 
  movies AS A
  JOIN Boxoffice AS B ON A.ID = B.MOVIE_ID

-- List all movies that were released on even number years ✓
SELECT title, year
FROM movies
WHERE year % 2 = 0;

  

Lesson10:

-- https://sqlbolt.com/lesson/select_queries_with_aggregates

-- Find the longest time that an employee has been at the studio ✓
SELECT * FROM employees ORDER BY Years_employed DESC LIMIT 1;

-- For each role, find the average number of years employed by employees in that role ✓
SELECT ROLE, AVG(Years_employed) FROM Employees GROUP BY ROLE

-- Find the total number of employee years worked in each building ✓
SELECT building, SUM(years_employed) as Total_years_employed
FROM employees
GROUP BY building;

 

Lesson11:

-- https://sqlbolt.com/lesson/select_queries_with_aggregates_pt_2

--Find the number of Artists in the studio (without a HAVING clause) ✓
SELECT ROLE, COUNT(NAME) 
FROM employees 
WHERE ROLE = 'Artist' 
GROUP BY ROLE;

SELECT role, COUNT(*) as Number_of_artists
FROM employees
WHERE role = "Artist";

-- Find the number of Employees of each role in the studio ✓
SELECT role, COUNT(*) as Number_of_artists
FROM employees
GROUP BY ROLE

-- Find the total number of years employed by all Engineers ✓
SELECT SUM(Years_employed) FROM Employees WHERE ROLE = 'Engineer';

 

Lesson12:

-- https://sqlbolt.com/lesson/select_queries_order_of_execution

-- Find the number of movies each director has directed ✓
SELECT Director,COUNT(*) FROM movies GROUP BY Director;

-- Find the total domestic and international sales that can be attributed to each director ✓
SELECT 
  Director,
  SUM(B.Domestic_sales + B.International_sales) AS Cumulative_sales_from_all_movies
FROM
  Movies AS A
  JOIN Boxoffice AS B ON A.ID = B.MOVIE_ID
GROUP BY A.Director

 

Lesson13:

-- https://sqlbolt.com/lesson/inserting_rows

-- Add the studio's new production, Toy Story 4 to the list of movies (you can use any director) ✓
INSERT INTO Movies (Id, Title, Director, Year, Length_minutes) VALUES
(NULL, 'Toy Story 4', 'John Lasseter', NULL, NULL)

-- Toy Story 4 has been released to critical acclaim! It had a rating of 8.7, and made 340 million domestically and 270 million internationally. Add the record to the BoxOffice table. ✓
INSERT INTO Boxoffice (Movie_id, Rating, Domestic_sales, International_sales) VALUES
(15, ' 8.7', 34000000, 27000000)

 

Lesson14:

-- https://sqlbolt.com/lesson/updating_rows

-- The director for A Bug's Life is incorrect, it was actually directed by John Lasseter ✓
UPDATE `Movies` 
SET DIRECTOR = 'John Lasseter'
WHERE TITLE = "A Bug's Life" 

-- The year that Toy Story 2 was released is incorrect, it was actually released in 1999 ✓
UPDATE `Movies` 
SET YEAR = 1999
WHERE TITLE = 'Toy Story 2'

-- Both the title and director for Toy Story 8 is incorrect! The title should be "Toy Story 3" and it was directed by Lee Unkrich ✓
UPDATE `Movies`
SET 
  DIRECTOR = 'Lee Unkrich',
  TITLE = 'Toy Story 3'
WHERE TITLE = 'Toy Story 8'

  

Lesson15:

-- https://sqlbolt.com/lesson/deleting_rows

-- This database is getting too big, lets remove all movies that were released before 2005. ✓
DELETE FROM movies WHERE YEAR < 2005;

-- Andrew Stanton has also left the studio, so please remove all movies directed by him. ✓
DELETE FROM movies WHERE DIRECTOR = 'Andrew Stanton';

 

Lesson16:

-- https://sqlbolt.com/lesson/creating_tables

-- Create a new table named Database with the following columns:
– Name A string (text) describing the name of the database
– Version A number (floating point) of the latest version of this database
– Download_count An integer count of the number of times this database was downloaded
This table has no constraints.

CREATE TABLE `Database`(
	NAME VARCHAR,
	VERSION FLOAT,
	Download_count INT
)

 

Lesson17:

-- Add a column named Aspect_ratio with a FLOAT data type to store the aspect-ratio each movie was released in. ✓
ALTER TABLE `Movies`
ADD COLUMN `Aspect_ratio` FLOAT DEFAULT 2.39

-- Add another column named Language with a TEXT data type to store the language that the movie was released in. Ensure that the default for this language is English. ✓
ALTER TABLE `Movies`
ADD COLUMN `Language` TEXT DEFAULT "English";

  

Lesson18:

-- https://sqlbolt.com/lesson/dropping_tables

-- We've sadly reached the end of our lessons, lets clean up by removing the Movies table ✓
DROP TABLE `MOVIES`;

-- And drop the BoxOffice table as well ✓
DROP TABLE `BOXOFFICE`;

  

 

标签:训练,--,com,movies,SQLBlot,SQL,WHERE,Find,SELECT
来源: https://www.cnblogs.com/mindzone/p/16305876.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有