Опубликован: 05.08.2007 | Доступ: свободный | Студентов: 2200 / 83 | Оценка: 4.47 / 4.09 | Длительность: 20:11:00
ISBN: 978-5-9556-0097-0
Лекция 1:

Элементы работы с базами данных

Лекция 1: 123456 || Лекция 2 >

Перенос файла Microsoft SQL на другой компьютер

В большинстве случаев вам придется разрабатывать приложения, использующие в качестве базы данных Microsoft SQL Server. Наиболее рациональным решением является разработка базы данных в формате Microsoft SQL на рабочем компьютере с установленной локальной версией Microsoft SQL Server. При сдаче проекта заказчику возникает необходимость переноса базы данных с локального компьютера. Как мы уже отмечали, файлы баз данных по умолчанию размещаются в каталоге C:\Program Files\Microsoft SQL Server\MSSQL\Data. Для переноса на другой компьютер нам потребуется скопировать два файла - саму базу данных BDTur_firmSQL.mdf и файл отчетов о транзакциях5Транзакция - серия запросов к базе, манипулирующая данными. Транзакцию, в отличие от обычного запроса, можно принять (и тогда вся серия запросов вступит в силу) или отклонить. Далее мы рассмотрим подробно это понятие. BDTur_firmSQL.ldf. Однако при попытке их простого копирования появляется ошибка при копировании - подобно системным файлам, они недоступны из операционной системы. Можно, конечно, скопировать нужные файлы из-под DOS, но к счастью, программа SQL Server Enterprise Manager предоставляет удобный интерфейс для этой задачи. Выделяем BDTur_firmSQL в окне программы и в контекстном меню выбираем "Все задачи \ Detach Database (Отсоединить базу)" (рис. 1.30).

Отсоединение выбранной базы данных от сервера

Рис. 1.30. Отсоединение выбранной базы данных от сервера

Появляется диалоговое окно "Detach Database BDTur_firmSQL" в котором выводится количество текущих соединений к данной базе. Подтверждаем отсоединение, нажимая кнопку "ОК", - и база отсоединена. Теперь можно скопировать нужные файлы непосредственно.

После переноса файлов на другой компьютер желательно их расположить в папке по умолчанию. Для присоединения базы запускаем SQL Server Enterprise Manager на компьютере клиента, выделяем папку "Databases" и в контекстном меню выбираем "Все задачи \ Attach Database (Присоединить базу данных)" (рис. 1.31).

 Присоединение базы данных

Рис. 1.31. Присоединение базы данных

В появившемся окне указываем расположение файла базы данных BDTur_firmSQL.mdf - файл отчетов присоединится автоматически, если он находится в той же самой директории, - и нажимаем "ОК". Присоединившаяся база данных немедленно отображается в папке "Databases".

В программном обеспечении к курсу вы найдете файлы, готовые для присоединения (Code\Glava1\ BDTur_firmSQL.mdf и BDTur_firmSQL.ldf).

Элементы языка SQL

Термин SQL6Здесь мы познакомимся только лишь с некоторыми понятиями языка SQL. Для полного изучения этого языка обращайтесь к специализированным руководствам. символизирует собой Структурированный Язык Запросов. Это язык, который дает нам возможность работать с данными в реляционных базах данных.

Мир баз данных становится все более и более единым, что привело к необходимости создания стандартного языка, который мог бы использоваться для функционирования в большом количестве различных видов компьютерных сред. Стандартный язык позволит пользователям, знающим один набор команд, применять их, чтобы создавать, отыскивать, изменять и передавать информацию независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции или на сервере.

Элегантность и независимость от специфики компьютерных технологий, а также его поддержка лидерами промышленности в области технологии реляционных баз данных, сделали SQL, и, вероятно, в течение обозримого будущего оставят его, основным стандартным языком. По этой причине любой, кто хочет работать с современными базами данных, должен знать SQL.

Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов), а также ISO (Международной организацией по стандартизации). Однако большинство коммерческих программ баз данных расширяют SQL без уведомления ANSI, добавляя разные особенности в этот язык, которые, как они считают, будут полезны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами сами по себе в силу полезности своих качеств.

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

Несмотря на большое количество разновидностей этого языка, существующих в настоящее время, логика его работы проста. Достаточно освоить основные команды хотя бы в одной из его версий, чтобы впоследствии без труда разобраться в любой другой его реализации.

Microsoft Query Analyzer, входящий в комплект Microsoft SQL Server 2000, - отличный инструмент для изучения языка SQL. Если у вас установлен этот пакет, то можно приступать к работе. Запускаем Query Analyzer и в появившемся окне указываем следующие параметры (рис. 1.32).

 Задание параметров подключения

Рис. 1.32. Задание параметров подключения

Мы задействуем подключение к серверу, находящемуся на нашем компьютере, - поэтому указываем имя сервера (local) (можно также использовать знак точки - ( . )). В других случаях - для подключения по локальной сети, например, - используйте кнопку обзора для поиска нужного сервера. Установка галочки "Запускать SQL сервер в случае его остановки (Start SQL Server if it is stopped)" позволяет поддерживать бесперебойную связь с сервером. Параметр "Connect using" задает аутентификацию при подключении к серверу - при выбранном значении "Windows authentification", нет надобности вводить имя пользователя и пароль.

Если вы все сделали правильно, то появляется главное окно программы, содержащее чистый бланк для записи SQL-запросов. Добавим окно, в котором мы будем просматривать содержимое базы данных: пункт меню Tools / Object Browser / (Show/hide) или клавиша F8. Нам также потребуется окно для отображения результатов запросов - Window / /Show Results Pane (Ctrl+R). В результате получим следующее (рис. 1.33).

Главное окно программы

увеличить изображение
Рис. 1.33. Главное окно программы

Первое, что мы видим в окне Object Browser, - имя компьютера и связанного с ним сервера. На рисунке это 7EA2B2F6068D473. Это имя формируется, когда мы устанавливаем операционную систему Windows. Далее располагается древовидная структура - содержимое пакета SQL Server 2000, состоящего из баз данных master, model, msdb, NorthwindCS и tempdb. В отличие от других баз данных, обеспечивающих работу самой программы, NorthwindCS является специальной учебной базой. С ней мы и будем работать. На панели инструментов из выпадающего списка выбираем базу, для подключения -. Можно этого не делать, но тогда в окне бланка необходимо будет каждый раз указывать строку - use NorthwindCS; Будем полагать в дальнейшем, что на панели инструментов определена база данных NorthwindCS;.

Итак, напишем первый запрос7Вы можете также писать запросы, используя заглавные буквы, - SQL нечувствителен к регистру. и нажмем клавишу F5 (пункт меню Query - Execute):

select * from Customers;

В результате возвращаются все записи из таблицы Customers базы данных NorthwindCS. Для просмотра содержимого базы данных используем Object Browser, щелкая на знак (+) возле соответствующего объекта. Переключившись на вкладку, видим сообщение, означающее, что была извлечена 91 запись:

(91 row(s) affected)

Главное окно программы принимает вид (рис. 1.34)

 Запрос извлек таблицу Customers

Рис. 1.34. Запрос извлек таблицу Customers

Вы можете менять вид данных, отображаемых на панели результатов: пункт меню Query / Results in Text (Ctrl+T) - результат в виде текста, Results in Grid (Ctrl+D) - в виде таблицы (по умолчанию), Results to File (Ctrl+Shift+F) - сохранение результата в виде файла в собственном формате программы - *.rpt.

Таблица Customers состоит из следующих полей (рис. 1.35):

 Содержание таблицы Customers

Рис. 1.35. Содержание таблицы Customers

Для извлечения не всей таблицы, а столбцов СustomerID и Address, напишем запрос:

select CustomerID, Address from Customers;

Результатом будет (рис. 1.36)

 Извлечение столбцов CustomerID и Address

Рис. 1.36. Извлечение столбцов CustomerID и Address

Если мы сделаем ошибку и укажем поле, которого нет в таблице Customers, например AddressID, в окне результатов на вкладке Messages появится соответствующее предупреждение:

Server: Msg 207, Level 16, State 1, Line 3
Invalid column name 'AddressID'.

Для вывода определенного количества записей используем запрос (рис. 1.37)

select top 5 CustomerID from Customers;
 Извлечение нескольких записей

Рис. 1.37. Извлечение нескольких записей

Извлекаются первые пять записей поля CustomerID, расположенные в самой таблице Customers в алфавитном порядке, - этот запрос не производит сортировки!

Вводя оператор percent, получаем указанный процент записей от общего числа:

select top 5 percent CustomerID from Customers;

В данном случае результат будет в точности таким же, как и при использовании запроса без оператора percent. В чем же дело? Общее число записей поля CustomerID таблицы Customers - 91 (в этом нетрудно убедиться, введя запрос select * from Customers; и переключившись на вкладку, увидим сообщение: (91 row(s) affected) ). Простой подсчет показывает, что пять процентов от 91 равняется 4,55; Query Analyzer округляет это число до пяти и возвращает результат.

Для вывода записей, отвечающих заданному условию, используем оператор where:

select * from Products where UnitPrice > 100;

Этот запрос возвращает все записи из таблицы Products в которых Столбец (поле) UnitPrice имеет значение, большее 100 (рис. 1.38):

 Отбор записей со всеми полями по заданному значению

Рис. 1.38. Отбор записей со всеми полями по заданному значению

Можно группировать операторы так:

select ProductName,UnitPrice from Products where UnitPrice > 100;

Здесь извлекаются поля ProductName и UnitPrice из таблицы Products где поле UnitPrice > 100 (рис. 1.39):

 Отбор записей с несколькими полями по заданному значению

Рис. 1.39. Отбор записей с несколькими полями по заданному значению

Оператор where поддерживает работу со знаками <, >, >=, <=.

Точную выборку осуществляет оператор in, в следующем примере извлекаются лишь те записи, в которых значение поля UnitPrice в точности равно либо 10, либо 15, либо 23 (рис. 1.40):

select ProductName,UnitPrice from Products where UnitPrice in (10,15,23);
 Отбор записей по точному совпадению значений поля UnitPrice

Рис. 1.40. Отбор записей по точному совпадению значений поля UnitPrice

Выборка для значений, лежащих в указанном интервале, осуществляется оператором between первое _значение and второе_значение (рис. 1.41):

select ProductName,UnitPrice from Products where UnitPrice between 10 and 13;
 Отбор записей по значениям в указанном интервале

Рис. 1.41. Отбор записей по значениям в указанном интервале
Лекция 1: 123456 || Лекция 2 >