Файл: Базы данных Учебное пособие.pdf

Добавлен: 28.11.2018

Просмотров: 7749

Скачиваний: 53

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

56 

После оператора SELECT можно использовать не только имена столбцов, 

но  и  выражения,  составленные  с  помощью  арифметических  операторов,  имен 
столбцов и констант. 
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

 · · · · · · · · · · · · · · · · · · · · · · ·  

 

 

Пример 3.2

 

 · · · · · · · · · · · · · · · · · · · · · · ·   

Вывод  списка  студентов  и  размера  их  стипендий  за  год,  реализуемый  с 

помощью  запроса  SELECT  ФИО,  Стипендия*12  as  “Стипендия  за 
год” FROM Студент, приведен в таблице 3.4. 

Таблица 3.4 – Список фамилий и стипендий за год 

ФИО 

Стипендия за год, руб. 

Иванов Сергей Петрович 

18 000 

Петров Иван Сергеевич 

6 000 

Алексеев Семен Олегович 

18 000 

Белов Петр Иванович 

30 000 

Сидорова Анна Игоревна 

12 000 

Егорова Ирина Петровна 

– 

Широков Иван Дмитриевич 

24 000 

Используя  ключевое  слово AS,  выражению  в SELECT  можно  присвоить 

псевдоним. Псевдоним используется в качестве имени столбца в данном запросе. 
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

В предложении  WHERE  могут  использоваться  следующие  операторы 

сравнения: 

1.  Простые операторы сравнения: 

•  = равно; 

•  <> не равно; 

•  > больше; 

•  >= больше или равно; 

•  < меньше; 

•  <= меньше или равно. 

 

 


background image

57 

2.  Логические операторы сравнения: 

•  AND  –  логический  оператор  И.  Он  используется,  когда  необходи-

мо,  чтобы  в  выборку  попали  записи,  для  которых  одновременно 
выполняются два условия. 

•  OR  –  логический  оператор  ИЛИ.  Он  используется,  когда  необхо-

димо,  чтобы  в  выборку  попали  записи,  для  которых  выполняется 
как минимум одно из двух условий. 

•  NOT – логический оператор НЕ. Он используется для того, чтобы 

инвертировать результат какого-либо условия. 

3.  Специальные операторы сравнения SQL: 

•  BETWEEN…AND… – используется для поиска значений попадающих 

в заданный интервал. 

•  LIKE – позволяет производить поиск по символьному шаблону.  

•  IN (список) – используется для поиска значений, совпадающих 

с каким-либо значением из списка. 

•  IS NULL – используется для поиска пустых значений. 

 · · · · · · · · · · · · · · · · · · · · · · ·  

 

 

Пример 3.3

 

 · · · · · · · · · · · · · · · · · · · · · · ·   

Вывод списка студентов из группы 116 с размером стипендии более 1000, 

реализуемый с помощью запроса SELECT * FROM Студент WHERE Груп-
па=116 AND Стипендия>1000, приведен в таблице 3.5. 

Таблица 3.5 – Список студентов группы 116 и стипендией более 1000 руб. 

Номер 

ФИО 

Дата  

рождения 

Группа 

Стипендия, 

руб. 

Иванов Сергей Петрович 

14.05.1988 

116 

1500 

Белов Петр Иванович 

01.11.1988 

116 

2500 

В данном примере использовалась комбинация простых операторов = и > 

и логического оператора AND. 
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   
 

 


background image

58 

 · · · · · · · · · · · · · · · · · · · · · · ·  

 

 

Пример 3.4

 

 · · · · · · · · · · · · · · · · · · · · · · ·   

Вывод ФИО студентов из групп 116 и 598, который можно реализовать с 

помощью  запроса  SELECT  ФИО  FROM  Студент  WHERE  Группа  IN 
(116,598), приведен в таблице 3.6. 

Таблица 3.6 – Список ФИО из групп 116, 598 

ФИО 

Иванов Сергей Петрович 
Петров Иван Сергеевич 
Белов Петр Иванович 
Сидорова Анна Игоревна 

В данном примере использовался специальный оператор IN, хотя во мно-

гих ситуациях он может быть заменён комбинацией простых и логических опе-
раторов.  Например,  результатом  запроса  SELECT  ФИО  FROM  Студент 
WHERE Группа=116 OR Группа=598 будет также таблица 3.6. 
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

 · · · · · · · · · · · · · · · · · · · · · · ·  

 

 

Пример 3.5

 

 · · · · · · · · · · · · · · · · · · · · · · ·   

Вывод  отсортированного  по  номеру  группы  списка  фамилий  и  номеров 

групп  студентов,  реализуемый  с  помощью  запроса  SELECT  ФИО,  Группа 
FROM Студент ORDER BY Группа ASC, приведен в таблице 3.7. 

Таблица 3.7 – Отсортированный список ФИО и номеров групп 

ФИО 

Группа 

Иванов Сергей Петрович 

116 

Белов Петр Иванович 

116 

Сидорова Анна Игоревна 

116 

Алексеев Семен Олегович 

445 

Егорова Ирина Петровна 

445 

Широков Иван Дмитриевич 

445 

Петров Иван Сергеевич 

598 


background image

59 

Сортировать  результат  можно  также  по  нескольким  столбцам.  Столбцы 

указываются в предложении ORDER BY через запятые. Если необходимо сор-
тировать данные по возрастанию, то после названия столбца указывается опе-
ратор ASC или ничего не указывается. В случае, когда сортировка идет по убы-
ванию, в обязательном порядке необходимо задать ключевое слово DESC после 
имени столбца. 
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

3.5 Операторы DML 

3.5.1 INSERT 

Для вставки строк в таблицу базы данных используется команда INSERT.  
Синтаксис команды INSERT выглядит следующим образом: 
INSERT INTO таблица  
[(НазваниеСтолбца1, НазваниеСтолбца2, …)] 
VALUES (Значение1,Значение2, …); 
Ключевыми операторами здесь являются INSERT INTO и VALUES. По-

сле  первого  из  них  необходимо  указать  таблицу,  в  которую  будут  добавлены 
данные, а после оператора VALUES в скобках через запятую указываются дан-
ные, которые необходимо добавить. 

 · · · · · · · · · · · · · · · · · · · · · · ·  

 

 

Пример 3.6

 

 · · · · · · · · · · · · · · · · · · · · · · ·   

Добавление  в  таблицу  «Студент»  новой  записи  будет  реализовано  с  по-

мощью запроса INSERT INTO Студент (Номер, ФИО, «Дата рожде-
ния»,  Группа,  Стипендия)  values  (1,  “Тимофеев  Н.И.”, 
«23.05.1987», 116, 2000);.  

В том случае, если в запросе на добавление данных участвуют все поля, 

то список полей можно не размещать в запросе. В этом случае он примет вид: 
INSERT  INTO  Студент  values  (1,  “Тимофеев  Николай  Игоре-
вич”, «23.05.1987», 116, 2000);. 
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

3.5.2 UPDATE 

Для изменения значений в строках таблиц базы данных используется ко-

манда UPDATE.  


background image

60 

Синтаксис команды UPDATE выглядит следующим образом: 
UPDATE таблица 
SET НазваниеСтолбцаN = ВыражениеN  

[, НазваниеСтолбцаM = ВыражениеM, …] 

[WHERE условие]; 
Ключевых оператора здесь два: UPDATE и SET. После оператора UPDATE 

указывается  таблица,  в  которой  необходимо  произвести  изменения,  а  после 
оператора SET указываются непосредственно операции по изменению данных. 
Оператор  WHERE  является  необязательным,  т. е.  при  его  отсутствии  команда 
UPDATE произведет изменения во всех записях таблицы, а при его наличии – 
только в тех, которые указаны в условии. 

 · · · · · · · · · · · · · · · · · · · · · · ·  

 

 

Пример 3.7

 

 · · · · · · · · · · · · · · · · · · · · · · ·   

Необходимо  назначить  стипендию  1 500 руб.  студенту  Петрову  Ивану 

Сергеевичу  из  группы 598.  Подобный запрос будет  выглядеть  следующим  об-
разом: 

UPDATE Студент SET Стипендия = 1500 WHERE ФИО = “Пет-

ров Иван Сергеевич” AND Группа = 598; 
 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

 · · · · · · · · · · · · · · · · · · · · · · ·  

 

 

Пример 3.8

 

 · · · · · · · · · · · · · · · · · · · · · · ·   

Необходимо увеличить на 30% стипендию всем студентам. Подобный за-

прос будет выглядеть следующим образом: 

UPDATE Студент SET Стипендия = Стипендия*1,3; 

 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   

3.5.3 DELETE 

Для  удаления  строк  из  таблиц  базы  данных  используется  команда  DE-

LETE.  

Синтаксис команды DELETE выглядит следующим образом: 
DELETE FROM таблица 
[WHERE условие]; 
Ключевых оператора здесь только два: DELETE и FROM. Любой запрос на 

выборку данных из таблиц должен состоять как минимум из 2 данных операто-