108 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			108 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: SQL Syntax | |||
|  | localeTitle: Синтаксис SQL | |||
|  | --- | |||
|  | ## Синтаксис SQL
 | |||
|  | 
 | |||
|  | ### Введение
 | |||
|  | 
 | |||
|  | В этом руководстве представлено базовое, высокоуровневое описание синтаксиса для операторов SQL. | |||
|  | 
 | |||
|  | SQL - это международный стандарт (ISO), но вы найдете много различий между реализациями. В этом руководстве в качестве примера используется MySQL. Если вы используете один из многих других реляционных менеджеров баз данных (СУБД), вам нужно будет проверить руководство для этой СУБД, если это необходимо. | |||
|  | 
 | |||
|  | ### Что мы рассмотрим
 | |||
|  | 
 | |||
|  | *   Используйте (устанавливает, какую базу данных будет использовать оператор) | |||
|  | *   Выделение и из предложений | |||
|  | *   Где пункт (и / или, IN, Between, LIKE) | |||
|  | *   Заказ по (ASC, DESC) | |||
|  | *   Группировка и наличие | |||
|  | 
 | |||
|  | ### Как использовать это
 | |||
|  | 
 | |||
|  | Это используется для выбора базы данных, содержащей таблицы для ваших операторов SQL: | |||
|  | 
 | |||
|  | ```sql | |||
|  | use fcc_sql_guides_database; -- select the guide sample database  | |||
|  | ``` | |||
|  | 
 | |||
|  | ### Выделение и из предложений
 | |||
|  | 
 | |||
|  | Часть выбора обычно используется для определения столбцов данных, которые вы хотите отображать в результатах. Существуют также варианты, которые вы можете использовать для отображения данных, которые не являются столбцами таблицы. | |||
|  | 
 | |||
|  | В этом примере показаны два столбца, выбранных из таблицы «ученик» и двух вычисленных столбцов. Первый из вычисленных столбцов - это бессмысленное число, а другое - системная дата. | |||
|  | 
 | |||
|  | ```sql | |||
|  |     select studentID, FullName, 3+2 as five, now() as currentDate  | |||
|  |     from student;  | |||
|  | ``` | |||
|  | 
 | |||
|  |  | |||
|  | 
 | |||
|  | ### Где пункт (и / или, IN, Between и LIKE)
 | |||
|  | 
 | |||
|  | Предложение WHERE используется для ограничения количества возвращаемых строк. | |||
|  | 
 | |||
|  | В этом случае все пять из них будут использованы, это несколько смешное предложение Where. | |||
|  | 
 | |||
|  | Сравните этот результат с приведенной выше операцией SQL, чтобы следовать этой логике. | |||
|  | 
 | |||
|  | Строки будут представлены следующим образом: | |||
|  | 
 | |||
|  | *   Имеют идентификаторы учащихся от 1 до 5 (включительно) | |||
|  | *   или studentID = 8 | |||
|  | *   или иметь «Maxmimo» в названии | |||
|  | 
 | |||
|  | Следующий пример аналогичен, но он далее указывает, что если у любого из учеников есть определенные баллы SAT (1000, 1400), они не будут представлены: | |||
|  | 
 | |||
|  | ```sql | |||
|  |     select studentID, FullName, sat_score, recordUpdated  | |||
|  |     from student  | |||
|  |     where (  | |||
|  |         studentID between 1 and 5  | |||
|  |         or studentID = 8  | |||
|  |         or FullName like '%Maximo%'  | |||
|  |         )  | |||
|  |         and sat_score NOT in (1000, 1400);  | |||
|  | ``` | |||
|  | 
 | |||
|  |  | |||
|  | 
 | |||
|  | ### Заказ по (ASC, DESC)
 | |||
|  | 
 | |||
|  | Order By дает нам способ сортировки результирующего набора одним или несколькими элементами в секции SELECT. Ниже приведен список, указанный выше, но отсортированный по имени полного имени студентов. Порядок сортировки по умолчанию возрастает (ASC), но для сортировки в обратном порядке (по убыванию) вы используете DESC, как в примере ниже: | |||
|  | 
 | |||
|  | ```sql | |||
|  |     select studentID, FullName, sat_score  | |||
|  |     from student  | |||
|  |     where (studentID between 1 and 5 -- inclusive  | |||
|  |         or studentID = 8  | |||
|  |         or FullName like '%Maximo%')  | |||
|  |         and sat_score NOT in (1000, 1400)  | |||
|  |     order by FullName DESC;  | |||
|  | ``` | |||
|  | 
 | |||
|  |  | |||
|  | 
 | |||
|  | ### Группировка и наличие
 | |||
|  | 
 | |||
|  | Group By дает нам способ комбинировать строки и агрегированные данные. Предложение «Бытие» похоже на вышеприведенное предложение Where, за исключением того, что оно действует на сгруппированные данные. | |||
|  | 
 | |||
|  | Эти данные взяты из данных о взносах кампании, которые мы использовали в некоторых из этих руководств. | |||
|  | 
 | |||
|  | Этот SQL-запрос отвечает на вопрос: «Какие кандидаты получили наибольшее количество взносов (не $ amount, а count (\*)) в 2016 году, а только те, у кого было более 80 вкладов?» | |||
|  | 
 | |||
|  | Заказ этого набора данных в порядке убывания (DESC) помещает кандидатов с наибольшим количеством вкладов в верхней части списка. | |||
|  | 
 | |||
|  | ```sql | |||
|  |     select Candidate, Election_year, sum(Total_$), count(*)  | |||
|  |     from combined_party_data  | |||
|  |     where Election_year = 2016  | |||
|  |     group by Candidate, Election_year  | |||
|  |     having count(*) > 80  | |||
|  |     order by count(*) DESC;  | |||
|  | ``` | |||
|  | 
 | |||
|  |  | |||
|  | 
 | |||
|  | _Как и для всех этих SQL-вещей, MUCH MORE им больше, чем в этом вводном руководстве. Надеюсь, это, по крайней мере, даст вам достаточно, чтобы начать. Пожалуйста, ознакомьтесь с руководством для своего менеджера баз данных и получайте удовольствие от различных вариантов._ |