|
Программирование >> Формирование связанных подзапросов
Манипулирование данными 3.1. Команды манипулирования данными В SQL для выполнения операций ввода даннгх в таблицу, их изменения и удаления предназначены три команды языка манипулирования данными (DML). Это команды INSERT (вставить), UPDATE (обновить), DELETE (удалить). Команда INSERT осуществляет вставку в таблицу новой строки. В простейшем случае она имеет вид: INSERT INTO <имя таблицы> VALUES (<значение>, <значение>,); При такой записи указаннхе в скобках после ключевого слова VALUES значения вводятся в поля добавленной в таблицу новой строки в том порядке, в котором соответствующие столбцы указаны при создании таблицы, то есть в операторе CREATE TABLE. Например, ввод новой строки в таблицу STUDENT может быть осуществлен следующим образом: INSERT INTO STUDENT VALUES (101,Иванов,Александр, 200, 3,Москва1, 6/10/1979, 15); Чтобы такая команда могла бгть вхполнена, таблица с указанным в ней именем (STUDENT) должна быть предварительно определена (создана) командой CREATE TABLE. Если в какое-либо поле необходимо вставить NULL-значение, то оно вводится как обычное значение: INSERT INTO STUDENT VALUES (101, ано, NULL, 200, 3, ftcicEe,/0/979, 15); В случаях, когда необходимо ввести значения полей в порядке, отличном от порядка столбцов, заданного командой CREATE TABLE, или требуется ввести значения не во все столбцы, следует использовать следующую форму команды INSERT: 3.1. Команды манипулирования данными 79 INSERT INTO STUDENT (STUDENT ID, CITY, SURNAME, NAME) VALUES (101, Москва, Иванов, Саша); Столбцам, наименования которхх не указаны в приведенном в скобках списке, автоматически присваивается значение по умолчанию, если оно назначено при описании таблицы (команда CREATE TABLE), либо значение NULL. С помощью команды INSERT можно извлечь значение из одной таблицы и разместить его в другой, например, запросом следующего вида: INSERT INTO STUDENT1 SELECT * FROM STUDENT WHERE CITY = Москва; При этом таблица STUDENTI должна бгть предварительно создана командой CREATE TABLE (раздел 4.1) и иметь структуру, идентичную таблице STUDENT. Удаление строк из таблицы осуществляется с помощью команды DELETE. Следующее выражение удаляет все строки таблицы EXAM MARKSI . DELETE FROM EXAM MARKS1; В результате таблица становится пустой (после этого она может быть удалена командой DROP TABLE). Для удаления из таблицы сразу нескольких строк, удовлетворяющих некоторому условию, можно воспользоваться предложением WHERE, например: DELETE FROM EXAM MARKS1 WHERE STUDENT ID = 103; Можно удалить группу строк: DELETE FROM STUDENTI WHERE CITY = скв; Команда UPDATE позволяет изменять, то есть обновлять значения некоторых или всех полей в существующей строке или строках таблицы. Например, чтобы для всех университетов, све- дения о которых находятся в таблице UNIVERSITYI, изменить рейтинг на значение 200, можно использовать конструкцию: UPDATE UNIVERSITYI SET RATING = 200; Для указания конкретнхх строк таблицы, значения полей которхх должны бгть изменены, в команде UPDATE можно использовать предикат, указхваемый в предложении WHERE. UPDATE UNIVERSITYI SET RATING = 200 WHERE CITY = Москва; В результате выполнения этого запроса будет изменен рейтинг только у университетов, расположеннхх в Москве. Команда UPDATE позволяет изменять не только один, но и множество столбцов. Для указания конкретных столбцов, значения которхх должны бгть модифицированы, используется предложение SET. Например, наименование предмета обучения Математика (для него SUBJ ID = 43) должно быть заменено на название Высшая математика, при этом идентификационнхй номер необходимо сохранить, но в соответствующие поля строки таблицы ввести новые данные об этом предмете обучения. Запрос будет выглядеть следующим образом: UPDATE SUBJECT1 SET SUBJ NAME = Высшая математика, HOUR = 36, SEMESTER = 1 where SUBJ ID = 43; В предложении SET команды UPDATE можно использовать скалярные выражения, указывающие способ изменения значений поля, в которые могут входить значения изменяемого и других полей. UPDATE UNIVERSITYI SET RATING = RATING*2; Например, для увеличения в таблице STUDENTi значения поля STIPEND в два раза для студентов из Москвы можно использовать запрос
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |