Существует так много различных видов SQL-продуктов, что вы можете просто бросить рукава и начать работу, не заботясь обо всем остальном. Но если вы захотите использовать ASP и SQL одновременно, у вас может закружиться голова.
MySQL, SQL Server и mSQL — отличные инструменты SQL, но, к сожалению, их нельзя использовать для создания практичных операторов SQL в среде ASP. Однако вы можете использовать свои собственные знания Access и соответствующие навыки Access в сочетании с нашими советами и рекомендациями. Я уверен, что вы сможете успешно добавить SQL на свою веб-страницу ASP.
1. Оператор ВЫБОРВ мире SQL самой простой операцией является оператор SELECT. При использовании SQL непосредственно в инструменте базы данных многие люди знакомы со следующими операциями:
ВЫБЕРИТЕ что
ИЗ какой таблицы
ГДЕ критерии
Выполнение приведенного выше оператора создает запрос, в котором сохраняются его результаты.
В файлах страниц ASP вы также можете использовать приведенный выше общий синтаксис, но ситуация немного другая. При программировании в ASP содержимое оператора SELECT должно быть присвоено переменной в виде строки:
SQL = "ВЫБЕРИТЕ, что ИЗ какой таблицы ГДЕ критерии"
Хорошо, теперь, когда вы понимаете, как SQL «говорит» под ASP, вы можете использовать тот же метод, если он соответствует вашим потребностям, традиционные режимы запросов SQL и условные запросы могут пригодиться.
Например, предположим, что в вашей базе данных есть таблица данных с именем «Продукты», и теперь вы хотите получить все записи из этой таблицы. Затем вы пишете следующий код:
SQL = «ВЫБРАТЬ * ИЗ продуктов»
Приведенный выше код — функция оператора SQL заключается в получении всех данных в таблице — после выполнения все записи в таблице данных будут выбраны. Однако если вы хотите получить из таблицы только определенный столбец, например p_name. Тогда вы не сможете использовать подстановочный знак *. Вам придется ввести имя определенного столбца. Код выглядит следующим образом:
SQL = «ВЫБРАТЬ p_name ИЗ продуктов»
После выполнения приведенного выше запроса будет выбрано все содержимое столбца p_name в таблице Products.
2. Используйте предложение WHERE для установки условий запроса.Иногда получение всех записей базы данных может удовлетворить ваши требования, но в большинстве случаев нам обычно нужно получить только часть записей. Как нам следует спроектировать запрос в этом случае? Конечно, это потребует еще немного размышлений, не говоря уже о том, что эта статья намеренно не хочет, чтобы вы использовали этот дрянной набор записей.
Например, если вы планируете получать только записи p_name, а имена этих записей должны начинаться с буквы w, то вы будете использовать следующее предложение WHERE:
SQL ="ВЫБЕРИТЕ имя_p_name ИЗ продуктов, где имя_p_имя НРАВИТСЯ 'W%'"
За ключевым словом WHERE следуют условия, используемые для фильтрации данных. С помощью этих условий будут запрашиваться только данные, соответствующие определенным критериям. В приведенном выше примере результаты запроса получат только записи p_name, имена которых начинаются с w.
В приведенном выше примере символ процента (%) означает, что запрос должен вернуть все записи, начинающиеся с буквы w и за которыми следуют любые данные или даже их отсутствие. Таким образом, при выполнении приведенного выше запроса запад и ива будут выбраны из таблицы «Продукты» и сохранены в запросе.
Как видите, тщательно спроектировав оператор SELECT, вы можете ограничить объем информации, возвращаемой в наборе записей, и еще немного размышлений всегда удовлетворит ваши требования.
Это только начало освоения использования SQL. Чтобы помочь вам постепенно освоить сложное использование операторов SELECT, давайте рассмотрим ключевые стандартные термины: операторы сравнения. Эти вещи часто используются, когда вы создаете собственную строку SELECT для получения определенных данных.
Основы предложения WHERE
При создании предложения WHERE проще всего использовать стандартные символы сравнения: <, <=, >, >=, <> и =. Очевидно, вы быстро поймете смысл и конкретные результаты следующего кода:
ВЫБЕРИТЕ * ИЗ ПРОДУКТОВ ГДЕ p_price >= 199,95
ВЫБРАТЬ * ИЗ ПРОДУКТОВ ГДЕ p_price <> 19,95
ВЫБЕРИТЕ * ИЗ ПРОДУКТОВ ГДЕ p_version = '4'
Примечание. Здесь вы заметите, что цифра 4 в последнем примере предложения заключена в одинарные кавычки. Причина в том, что «4» в этом примере — это текстовый, а не числовой тип. Поскольку вы заключаете инструкцию SELECT в кавычки, чтобы присвоить ее как значение переменной, вы также можете использовать кавычки внутри инструкции.
оператор сравнения
Операторы сравнения указывают диапазон содержимого данных, которые необходимо извлечь из таблицы. Вы можете использовать их для создания фильтров, позволяющих сузить набор записей только до той информации, которая вам нужна для конкретной задачи.
3. НРАВИТСЯ, НЕ НРАВИТСЯ и МЕЖДУВы видели использование LIKE в приведенном выше примере удаления записей, начинающихся с w. Предикат LIKE — очень полезный символ. Однако во многих случаях его использование может дать вам слишком много данных, поэтому лучше всего подумать о том, какие данные вы хотите получить, прежде чем использовать их. Предположим, вы хотите извлечь 5-значный номер SKU, который начинается с 1 и заканчивается на 5, тогда вы можете использовать подчеркивание (_) вместо символа %:
SQL = "SELECT * FROM Products WHERE p_sku LIKE '1___5'"
Подчеркивание представляет любой символ. Поэтому, если вы введете «1 _ _ _ 5», ваш поиск будет ограничен 5 цифрами, соответствующими конкретному шаблону.
Если вы хотите сделать обратное, найдите все записи SKU, которые не соответствуют шаблону «1_ _ _ 5». Тогда вам нужно всего лишь добавить NOT перед LIKE в приведенном выше примере оператора.
МЕЖДУ
Предположим, вы хотите получить данные в пределах определенного диапазона и заранее знаете начальную и конечную точку диапазона, тогда вы также можете использовать оценочное слово МЕЖДУ. Теперь предположим, что вы хотите выбрать записи в диапазоне от 1 до 10 в данной таблице. Вы можете использовать МЕЖДУ следующим образом:
…ГДЕ ИДЕНТИФИКАТОР МЕЖДУ 1 ДО 10
Или вы можете использовать слова для математических суждений, с которыми вы уже знакомы:
…ГДЕ ID >= 1 И ID >= 10
4. Заявление профсоюзаОператоры SQL, о которых мы говорили до сих пор, относительно просты. Если их можно запросить через стандартный цикл набора записей, то эти операторы также могут отвечать некоторым более сложным требованиям. Однако почему вам нужно придерживаться базового уровня и просто пробовать? Вы можете добавить другие символы, такие как И, ИЛИ и НЕ, чтобы выполнить более мощные функции.
В качестве примера возьмем следующий оператор SQL:
SQL = «ВЫБЕРИТЕ c_firstname, c_lastname, c_email ОТ клиентов, ГДЕ c_email ЕСТЬ»
НЕ NULL И c_purchase = '1' ИЛИ c_purchase = '2' И c_lastname LIKE
'А%'"
Основываясь на ваших текущих знаниях SQL, приведенный выше пример несложно объяснить, но приведенный выше оператор не позволяет вам четко увидеть, как условные операторы склеиваются в один оператор SQL.
многострочный оператор
Если оператор SQL труден для понимания, вы можете разложить весь оператор на несколько строк кода, а затем постепенно добавлять каждый компонент оператора запроса на основе существующих переменных и сохранять его в той же переменной:
SQL = "ВЫБЕРИТЕ c_имя, c_фамилия, c_адрес электронной почты, c_телефон"
SQL = SQL & «ОТ клиентов»
SQL = SQL & «ГДЕ c_firstname LIKE 'A%' и c_emailaddress NOT NULL»
SQL = SQL & " ORDER BY c_lastname, c_firstname"
В последнем предложении переменная SQL содержит следующий полный оператор SELECT:
«ВЫБЕРИТЕ c_firstname, c_lastname, c_emailaddress, c_phone FROM клиентов
ГДЕ c_firstname КАК 'A%' и c_emailaddress НЕТ НУЛЬНОГО ЗАКАЗА ПО c_lastname,
c_firstname"
После того, как все предложение разбито на части, как показано выше, его, очевидно, гораздо легче читать! При отладке вы можете ввести еще несколько символов, чтобы сделать программу более читабельной. Но вы должны помнить, что вам нужно добавлять пробелы перед закрывающими кавычками или после открытия кавычек, чтобы гарантировать, что вы не соедините несколько слов вместе при объединении строк.
5. Начать выполнение
После изучения структуры и назначения оператора SELECT пришло время научиться его использовать. В зависимости от имеющегося в вашем распоряжении инструмента базы данных это может означать нажатие кнопки с надписью «Go». На веб-странице ASP операторы SQL могут выполняться немедленно или вызываться как хранимые процедуры.
После создания оператора SQL вам все равно потребуется доступ к результатам его запроса. Очевидно, что ключевым моментом здесь является набор записей ASP. При использовании набора записей, отличного от SQL, код создания набора записей обычно выглядит следующим образом:
Тусклый объект
Установите objRec = Server.CreateObject («ADODB.Recordset»)
objRec.Open «клиенты», objConn, 0, 1, 2
Если вы знакомы с ASP, приведенный выше код будет вам знаком. Вы должны знать, что «клиенты» означают имя таблицы данных в базе данных, которую вы открываете.
Открыть набор записей
Чтобы в полной мере воспользоваться вашими более знакомыми навыками работы с SQL, вам необходимо адаптировать набор записей, наиболее часто используемый на обычных веб-страницах ASP:
Тусклый объект
Установите objRec = Server.CreateObject («ADODB.Recordset»)
objRec.Open SQL, objConn, 0, 1, 2
Единственное изменение здесь — в objRec.Open, после которого имя запрашиваемой таблицы данных заменяется переменной, содержащей оператор SQL.
Одним из преимуществ этого подхода является то, что вы можете указать тип курсора (показан выше как 0, 1, 2).
Выполнить SQL
Вы можете создать набор записей, выполнив оператор SQL с компактной строкой кода. Вот синтаксис:
Тусклый объект
установите objRec = objConn.Execute(SQL)
В приведенном выше примере SQL, который вы видите, — это переменная, в которой вы храните свой собственный оператор SQL SELECT. Эта строка кода «запускает» оператор SQL (или запрашивает базу данных), выбирает данные и сохраняет их в наборе записей, в данном случае в переменной objRec. Основным недостатком этого подхода является то, что вы не можете выбрать тип курсора, который хотите использовать. Напротив, наборы записей всегда открываются курсором вперед.
Из-за курсоров вам может потребоваться ознакомиться с двумя методами создания набора записей. Непосредственное выполнение запроса экономит время, затрачиваемое на ввод символов, но тогда вам придется использовать курсор по умолчанию, что может привести к проблемам, которые часто не работают должным образом. Независимо от того, какой метод вы используете, самая большая разница между ними — простота кода. Независимо от того, какие поля вы получаете, какие у вас стандарты или как вы храните данные, набор записей в стиле SQL будет намного меньше по размеру, чем стандартный набор записей, открытый в ASP, не говоря уже о простоте в использовании. В конце концов, фильтруя данные, вы исключаете трудоемкие проверки «если-то» и возможные циклы.
Написать тестовый SQL
Вот одна хитрость. Многие профессиональные программисты ASP привыкли «писать» свои собственные операторы SQL при тестировании веб-страниц. Это может помочь вам отладить код, поскольку вы увидите, как строка передается на сервер для выполнения. И все, что вам нужно сделать, это добавить Response.WriteyourVariable для отображения соответствующей информации на экране. Вам следует включить эту информацию при отправке вопроса, связанного с SQL, в дискуссионную группу ASP.
6. Запрос хранилищаЕсли ваш запрос относительно прост, каждый раз создавать оператор SQL с нуля не требуется. Однако ситуация иная, если каждый раз начинать с нуля. Это приведет к множеству ошибок при разработке. Поэтому, как только SQL будет работать бесперебойно, вам лучше сохранить их и вызывать при необходимости. Таким образом, даже для простого запроса вы можете использовать сохраненный оператор запроса в любое время.
Предположим, вам нужно составлять еженедельный отчет для своей команды, указывая на текущие проблемы поддержки бизнеса. Эти данные необходимо выбирать из вашей базы данных, а записи необходимо выбирать по дате и сортировать по принятой категории проблем поддержки. ваша команда. Если вы разработали этот запрос, зачем вам переписывать его каждую неделю? Вместо создания запроса на HTML-странице вам следует использовать инструмент базы данных, чтобы создать запрос и сохранить его.
Затем вы можете использовать атрибут ActiveCommand, чтобы вставить запрос на страницу ASP. Первые пару раз вам может показаться, что это неинтересно, но на самом деле это всего лишь несколько строк кода:
Установите objSQ = Server.CreateObject («ADODB.Command»)
objSQ.ActiveConnection = "имябазы данных"
objSQ.CommandText = "имя_хранимого_запроса"
objSQ.CommandType = adCmdStoredProc
установите objRec = objSQ.Execute
Обратите внимание: использование adCmdStoredProc означает, что вы включили на страницу файл adovbs.inc. Этот файл определяет константы доступа, к которым вы можете получить доступ по имени, а не по номеру. Просто добавьте файл на страницу (<!--#INCLUDE -->), а затем можно использовать имя, например adCmdStoredProc. Таким образом, вам будет легче понять, что означает сохраненный выше запрос, когда вы увидите его снова в будущем.