Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус
Шрифт:
Интервал:
Закладка:
Помимо выполнения сразу всех команд сценария в диалоговом окне Query одну или несколько строк с командами SQL можно выполнять, выделяя нужные строки и нажимая клавишу <F5> или щелкая на кнопке Execute Query. Это позволяет повторно выполнять части команд, возможно, даже после их модификации.
Просмотр всех объектов базы данных с помощью хранимой процедуры sp_help
SQL Server позволяет просмотреть все объекты, доступные в любой базе данных. Это можно сделать с помощью хранимой процедуры (stored procedure) – небольшого кода, хранящегося и выполняемого на сервере.
Просмотреть все объекты базы данных можно с помощью хранимой процедуры sp_help. Для этого необходимо ввести ее и выполнить как обычный SQL-запрос в окне программы Query Analyzer.
Для просмотра всех объектов базы данных с помощью хранимой процедуры sp_help выполните действия, приведенные ниже.
1. Очистите диалоговое окно запроса Query, нажав комбинацию клавиш <Ctrl+Shift+Del>.
2. Введите в нем следующую команду:
sp_help
3. Выполните введенную команду. SQL Server сгенерирует список доступных объектов базы данных, как показано на рис. 3.15.
РИС. 3.15. Результат выполнения хранимой процедуры sp_help для базы данных pubs
НА ЗАМЕТКУВы можете создавать собственные хранимые процедуры. Этот процесс описан в разделе о создании и выполнении хранимых процедур далее в этой главе. Кроме пользовательских хранимых процедур используемой базы данных, существуют и системные хранимые процедуры, которые доступны для любой базы данных на SQL Server. Примеры использования системных хранимых процедур приведены далее в главе.
Использование существующей базы данных
Для работы с определенной базой данных в программе Query Analyzer можно использовать команду USE. После выбора с ее помощью соответствующей базы данных все вводимые SQL-команды будут выполняться для этой выбранной базы данных. Обратите особое внимание на необходимость применения команды USE, поскольку существует ряд команд, которые имеют один и тот же синтаксис при использовании с разными базами данных. Выполнение такой команды "не с той базой данных" может привести к неприятным последствиям.
НА ЗАМЕТКУВо избежание случайного ошибочного выполнения команд по отношению к "не базе данных" нужно явно указать используемую по умолчанию базу данных вместо используемой по умолчанию основной базы данных master (т.е. в ней сохраняются только данные конфигурации сервера). Для каждой учетной записи можно указать свою используемую по умолчанию базу данных во время создания учетной записи или впоследствии с помощью способа, описанного далее в главе.
Например, для активизации базы данных novelty вместо основной базы данных master выполните перечисленные ниже действия.
1. Введите в окне Query Analyzer команду USE novelty. Если база данных novelty существует, то SQL Server вернет следующее сообщение:
The command(s) completed successfully.
Что в переводе означает:
Команды успешно выполнены.
2. Если же базы данных novelty на этом сервере нет, то появится сообщение
Server: 911, Level 16, State 1, Line 1
Could not locate entry in sysdatabases for database 'novelty'. No entry found with that name. Make sure that the name is entered correctly.
Что в переводе означает следующее:
Сервер: Сообщение Уровень 16, Состояние 1, Строка 1
Не могу обнаружить системную базу данных 'novelty'. Нет никаких регистрационных записей с этим именем. Убедитесь в том, что введено правильное имя базы данных.
Если вы забыли имя базы данных, то запустите программу SQL Server Enterprise Manager и найдите интересующую вас базу данных. Для просмотра объектов базы данных можно также воспользоваться хранимой процедурой sp_helpdb.
Создание команд SQL в программе Query Analyzer
С помощью программы Query Analyzer можно создавать практически любые команды SQL, причем этот способ обладает многими преимуществами по сравнению со всеми другими способами создания команд SQL. Учтите, что синтаксис некоторых команд SQL может оказаться гораздо сложнее, чем простое использование графических элементов управления в программе SQL Server Enterprise Manager, особенно при использовании редко выполняемых команд, например для создания баз данных. В этом смысле программа Query Analyzer обладает несомненным преимуществом интерактивного создания команд SQL и мгновенно реагирует на создаваемые команды. Query Analyzer обладает некоторыми другими функциональными возможностями, которых нет программе SQL Server Enterprise Manager, например способностью запускать запросы и хранимые процедуры.
В главе 2, "Запросы и команды на языке SQL", рассматриваются некоторые наиболее часто используемые команды SQL. Большая часть этого материала относится также к выполнению запросов и хранимых процедур для SQL Server.
Использование представлений для управления доступом к данным
Представление (view) — это, по сути, определение запроса, хранящегося в базе данных. Оно подобно определению запроса в базах данных Microsoft Jet, однако отличается местом хранения: располагается в базе данных и предоставляет приложению-клиенту доступ к данным.
Представление можно использовать в том случае, если необходимо предоставить пользователю доступ к данным, но нежелательно, чтобы он мог обращаться непосредственно к данным в таблице. Представления можно рассматривать как виртуальные таблицы, которые могут использоваться точно так же, как и другие реальные таблицы базы данных. Фактически для приложения-клиента представление выглядит как обычная таблица, а кроме того, дает ему ряд преимуществ.
Например, если пользователь получает доступ к данным с помощью представления, а не посредством прямого обращения к таблице, это открывает ему следующие возможности:
• изменять структуру таблицы, не меняя ассоциированного с ней представления;
• ограничивать количество строк и столбцов, возвращаемых представлением;
• обеспечивать простой доступ к данным, возвращаемым из нескольких таблиц, с помощью объединений в представлении.
Для того чтобы полностью использовать все преимущества представлений, необходимо разработать стратегию безопасности базы данных. Это позволяет применить специализированные разрешения для представлений, а не таблиц, что упрощает выдачу и отмену разрешений для разных типов пользователей. Эти и другие вопросы обеспечения безопасности обсуждаются далее в главе.
Создание представлений с помощью программы SQL Server Enterprise Manager
Представления, как и большинство других объектов базы данных, можно создавать с помощью программ SQL Server Enterprise Manager или SQL Query Analyzer. Программа SQL Server Enterprise Manager обладает мощными и выразительными графическими инструментами, а программа SQL Query Analyzer- интерактивными инструментами для создания и выполнения команд SQL, а также тестирования созданных представлений.
Для создания представления с помощью программы SQL Server Enterprise Manager выполните приведенные ниже действия.
1. В диалоговом окне Server Manager щелкните правой кнопкой мыши на папке Views в той базе данных, в которой необходимо создать представление. В этом примере используется база данных pubs.
2. Из контекстного меню выберите команду New View (Создать представление), и на экране появится окно конструктора представлений программы, как показано на рис. 3.16.
РИС. 3.16. Создание нового представления в окне программы SQL Server Enterprise Manager
НА ЗАМЕТКУПри первом открытии диалогового окна Design View в его заголовке будут слова New View, а не Design View.
СОВЕТЭти графические инструменты создания представлений можно использовать для создания запросов. Для этого щелкните правой кнопкой мыши на таблице базы данных и выберите из контекстного меню команду Open Table→Query (Открыть таблицу→Запрос). Созданный запрос нельзя сохранить, потому что отдельный запрос не является объектом базы данных SQL Server. Однако конструктор базы данных полезен для создания и тестирования хранимых процедур и извлечения отдельного набора данных.
3. Для открытия диалогового окна Add Table (Добавить таблицу) щелкните на кнопке Add Table с изображением плюса и таблицы или щелкните правой кнопкой мыши на пустом поле со схемой представления и выберите в контекстном меню команду Add Table.
4. Выберите таблицу jobs и щелкните на кнопке Add (или дважды щелкните на таблице jobs) для включения таблицы jobs в представление.
5. Выберите таблицу employee и щелкните на кнопке Add (или дважды щелкните на таблице employee) для включения таблицы employee в представление.
6. Щелкните на кнопке Close, чтобы закрыть диалоговое окно Add Table.