sql лекц 43 стр 1. Подготовка к изучению. Программы для работы
Скачать 0.66 Mb.
|
Запросы SELECTИтак, у нас есть база данных и программа для работы с ней. Давайте же, не мешкая, выполним наш первый запрос на языке SQL. Запустите программу SQLite Database Browser и откройте нашу первую учебную базу данных. Перейдите на вкладку Execute SQL, введите в текстовом поле такой запрос select * from Tasks и нажмите кнопку или клавишу F5. Программа выведет на экран результат выполнения запроса. Поздравляю! Вы выполнили свой первый запрос SELECT — самый популярный вид запроса, ради которого и были придуманы базы данных. Запросы SELECT предна- значены для получения данных, которые хранятся в базе. Давайте разберёмся, что же мы запросили. Наш запрос можно представить в таком обобщённом виде: SELECT {список полей} FROM {имя таблицы} Фигурные скобки здесь показывают, что их содержимое (вместе со скобками) должно быть заменено на конкретные элементы базы данных — в нашем случае это список полей таблицы и её имя. Мы на протяжении всего курса будем использовать такую форму записи. Слова SELECT (выбрать) и FROM (из) — это элементы языка SQL, так называемые ключевые слова. В нашем запросе вместо списка полей стоит символ звёздочки. Это тоже элемент языка SQL. Звёздочка в этой позиции означает, что мы хотим получить данные из всех полей таблицы. В этом случае нам даже не нужно знать, из каких полей состоит таблица. Язык SQL разрабатывался таким образом, чтобы быть похожим на естественный ан- глийский язык, поэтому наш запрос похож на фразу английского языка «выбрать всё из таблицы Tasks». Язык SQL нечувствителен к регистру букв. Мы могли бы написать слово SELECT так: select, Select или даже SeLeCt. В дальнейшем при описании правил составления запросов мы будем использовать верхний регистр (заглавные буквы), чтобы визуаль- но выделять ключевые слова, а в примерах запросов — нижний регистр (строчные буквы), потому что так их легче читать и вводить. Вы уже поняли, как можно получить данные из других таблиц. Введите и выполните такие запросы, чтобы получить содержимое таблиц Tasklists и Categories: select * from Tasklists select * from Categories Выбор нужных полейЕсли нам нужно получить значения не всех, а только одного поля, то в запрос нужно подставить его имя вместо звёздочки. Следующий запрос вернёт нам перечень всех списков задач. select Tasklist from Tasklists Если нужно получить значения нескольких полей, то они разделяются запятой. Сле- дующий запрос вернёт нам заголовки всех задач с их описанием. select Task, Description from Tasks Выбор нужных записейЗапросы, с которыми мы познакомились, просты, но не очень полезны. Довольно редко нам приходится просматривать все записи таблицы подряд. Гораздо чаще нуж- но отобрать только часть записей по какому–то признаку. Например, если мы работа- ем со списками задач, то хотелось бы просмотреть только те задачи, которые отно - сятся к нужному списку. Конечно, язык SQL предоставляет нам такую возможность. Следующий запрос вер- нёт нам заголовки и описания задач, которые относятся только к списку с номером 1. select Task, Description from Tasks where Tasklist_ID=1 Мы видим, что в этом запросе появилась новая конструкция, начинающаяся с ключе- вого слова WHERE (где). Обобщённо запрос можно представить так: SELECT {список полей} FROM {имя таблицы} WHERE {условие отбора} В качестве условия отбора записей использовано выражение: Tasklist_ID=1 Это условие, как вы, наверное, уже догадались, указывает на то, что нужно отобрать только те записи, в которых значение поля Tasklist_ID имеет значение 1. Но что это за список задач с номером 1? Не должны же мы запоминать номера всех списков задач! Конечно, не должны — для этого у нас есть база данных. Мы можем обратиться к ней с запросом, чтобы она подсказала нам, о каком списке идёт речь: select Tasklist from Tasklists where Tasklist_ID=1 В дальнейшем мы узнаем, как избежать запоминания и ввода номеров записей, а ис- пользовать вместо этого более привычные и легко запоминаемые текстовые назва- ния. А пока выполните упражнения со второй учебной базой данных, чтобы закре- пить пройденное. |