Опубликован: 11.09.2006 | Доступ: свободный | Студентов: 7648 / 473 | Оценка: 4.26 / 3.45 | Длительность: 30:46:00
ISBN: 978-5-9556-0080-2
Лекция 4:

Работа с данными

Создание таблицы с помощью запросов

Вплоть до этого места мы выполняли команды по извлечению таблиц и данных из таблиц, полагая, что сами таблицы были созданы кем-то до нас. Это, действительно, наиболее реальная ситуация, когда небольшое количество людей создают таблицы, которые затем используются другими людьми. Тем не менее особая область SQL, называемая DDL (Язык Определения Данных), специально работает с созданием объектов данных.

Таблицы создаются командой create table. Эта команда создает пустую таблицу — таблицу без строк. Команда create table в основном определяет имя таблицы в виде описания набора имен столбцов, указанных в определенном порядке. Она также определяет типы данных и размеры столбцов. Каждая таблица должна иметь по крайней мере один столбец.

Синтаксис команды create table : 2Перед выполнением этого запроса убедитесь в том, что вы работаете с базой данных NorthwindCS. Или используйте команду use NorthwindCS .

create table ClientInfo
(
FirstName varchar(20),
LastName varchar(20),
Address varchar(20),
Phone varchar(15)
);

После выполнения этого запроса в окне Messages появляется сообщение:

The command(s) completed successfully.

Перезапустите Query Analyzer. В базе данных NorthwindCS появилась созданная нами таблица (рис. 4.16):

Созданная таблица находится в базе NorthwindCS

Рис. 4.16. Созданная таблица находится в базе NorthwindCS

Итак, мы создали таблицу, состоящую из четырех полей, типа varchar, причем для трех полей было зарезервировано 20 байт, а для одного — 15. Значение полей на заполнены — на это указывает величина Null.

Вы можете удалить созданную таблицу непосредственно в интерфейсе Query Analyzer, щелкнув правой кнопкой и выбрав Delete.

Команды изменения языка DML

Значения могут быть помещены и удалены из полей, тремя командами языка DML (Язык Манипулирования Данными):

  • insert (вставить);
  • update (изменить);
  • delete (удалить).

Команда insert имеет свои особенности:

  • При указании значений конкретных полей вместо использования каких-либо значений можно применять ключевое слово DEFAULT.
  • Вставка пустой строки приводит к добавлению пробела ' ', а не значения NULL.
  • Строки и даты задаются в апострофах.
  • Не задавайте данные для столбца, имеющего свойство IDENTITY.
  • Можно задать NULL явно, можно задать DEFAULT.

Примеры:

insert into ClientInfo
(FirstName, LastName, Address, Phone)
values('Petr','Petrov','Chehova 13','1234567');

Однократное выполнение этого запроса (нажатие клавиши F5 один раз) приводит к добавлению одной записи. Добавляем еще несколько записей, изменяя значения value:

insert into ClientInfo
(FirstName, LastName, Address, Phone)
values('Ivan',Ivanov,'Naberejnaya 13','1234568');

insert into ClientInfo
(FirstName, LastName, Address, Phone)
values(null,'Sidorov','Naberejnaya 25','1234569');

Извлечем все записи созданной таблицы (рис. 4.17):

select * from ClientInfo;
Все записи таблицы ClientInfo

Рис. 4.17. Все записи таблицы ClientInfo

Убедимся в том, что третья запись поля FirstName действительно содержит неопределенное значение null (а не строку NULL), c помощью следующего запроса (рис. 4.18):

select * from ClientInfo where FirstName is null;
Таблица ClientInfo действительно содержит запись со значением поля First Name "NULL"

Рис. 4.18. Таблица ClientInfo действительно содержит запись со значением поля First Name "NULL"

Команда update позволяет изменять заданные значения записей:

update ClientInfo set  FirstName  = 'Andrey' where FirstName  = 'Petr';

В этом случае в первой записи поля FirstName значение Petr изменится на Andrey (рис. 4.19):

Изменение одной записи

Рис. 4.19. Изменение одной записи

Если не указывать значение, которое необходимо изменить, команда update затронет все записи (рис. 4.20).

update ClientInfo set  FirstName  = 'Andrey';
Изменение всех  записей

Рис. 4.20. Изменение всех записей

Команда delete позволяет изменять заданные значения записей:

delete from ClientInfo where LastName like 'Petrov';

Результатом этого запроса будет удаление первой записи из таблицы ClientInfo.

delete from ClientInfo;

Этот запрос удаляет все записи из таблицы, но не удаляет саму таблицу (рис. 4.21):

Все записи удалены, но сама таблица осталась!

Рис. 4.21. Все записи удалены, но сама таблица осталась!

Запросы с командами insert, update и delete могут содержать в себе все прочие конструкции языка SQL.

Елена Дьяконова
Елена Дьяконова

При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: 

Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll

Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан.

Затем:

Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll

Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз.

Александр Сороколет
Александр Сороколет

Свойство WindowState формы blank Maximized. Не открывается почемуто на всё окно, а вот если последующую форму бланк открыть уже на макс открывается :-/