Язык SQLЯ предлагаю вам совершить небольшой экскурс в язык запросов SQL.Это необходимо по двум причинам. Во-первых, не хочу, чтобы вы смотрели на SQL-фрагменты последующих скриптов как парнокопытные животные на только что построенное заградительное сооружение. А во-вторых, мне хочется донести до вас красоту этого языка, скрытую в его простоте и "человечности". Что такое база данных? Это хранилище информации. Структурированное хранилище. В базе данных можно хранить любой тип информации: от цифр до видеороликов. А все запросы к базе данных можно разделить на три основные группы: Как создаются таблицы мы уже видели. На этом этапе я останавливаться не буду, ибо тут ничего интересного нет. Как и стандартного. В разных БД создание таблиц, функций и индексации может производиться по-разному. Это не так важно. Мы остановимся на двух других группах. Добавление, изменение, удаление информации производится почти человеческим языком. Поэтому все команды SQL так легко запомнить. Предположим, у нас есть таблица books (книги), в которой мы храним информацию о своей домашней библиотеке. Для этого мы создали таблицу books в следующем виде: create table books( где book_id -- порядковый номер книги (создает автоматически, при добавлении новой записи в таблицу, путем прибавления единицы к внутреннему счетчику), book_name -- автор и название книги, book_date -- дата (и время) приобретения книги. А book_comm -- свободный комментарий до двухсот символов. Например, мы можем в это поле записывать имя человека, взявшего у нас книгу, или интересную подробность, связанную с ее приобретением. Давайте перейдем непосредственно к добавлению информации. По-хорошему, надо было создать как минимум две таблицы: для книг и для авторов. И связать их внешним ключом для целостности. Но сейчас наша задача состоит в ином, поэтому простите мне мой топорный подход. Нам надо добавить в нашу электронную библиотеку книгу "Алексей Толстой. 'Золотой ключик или приключения Буратино'". Как бы мы это сделали, если бы база данных управлялась человеческим голосом? Наверное, что-то вроде: "добавить в таблицу КНИГИ название и дату покупки: А. Толстой. 'Золотой ключик...', 27-е августа 2001 года". Вот мы так и запишем, а SQL с удовольствием нас поймет. Только по-английски. insert into books(book_name, book_date) values("А.Толстой. 'Золотой ключик или приключения Буратино'","2001-08-27 00:00:00"); Вот так. Почти по-человечески. Следующей книгой для контраста добавим "А.Платонов. 'Котлован'", неизвестно когда подаренную нам любимым преподавателем. insert into books (book_name, book_comm) values("А.Платонов. 'Котлован'", "Подарена Пустоваловым Петром Семеновичем"); Ну и еще одну... insert into books(book_name) values('Поваренная книга'); Вот так. Теперь у нас в базе есть аж три книги. Попробуем в этом убедиться? Как мы попросим нашу базу выбрать нам все, что в ней есть, без каких-либо условий? По-русски это бы могло звучать так: "Выбери все из таблицы книг". Так и напишем (звездочкой в SQL обозначается любой набор параметров, символов и прочего, как почти во всем компьютерном): select * from books; И получаем список наших книг. Я не буду приводить тут полностью ответ MySQL, т.к. слишком широкая табличка получилась. Мы сейчас это подправим. Попросим выбрать только названия книг: select book_name from books; +------------------------------------------------------+ Понятно, не так ли? А теперь присовокупим их порядковые номера: select book_id, book_name from books; +---------+------------------------------------------------------+ Вот так просто. Теперь давайте попросим нашу понятливую БД выдать нам книгу под номером 2: select book_id, book_name from books where book_id=2; +---------+----------------------+ Ты смотри, нашел! А если мы хотим все книги от номера 2 и больше? select book_id, book_name from books where book_id>1; +---------+------------------------+ Нате! Ну хорошо, давайте зададим в запросе что-нибудь похитрее. Например, нам нужна книга, которую мы купили на днях, но не помним про нее буквально ничего. Для этого так и попросим: select book_id, book_name from books where book_date between subdate(now(), interval 3 day) and now(); Поясню. Зарезервированное слово between используется тут дословно -- "между". Функция now() дает текущую дату и время. Функция subdate уменьшает указанную дату на указанный период времени. Т.е. по-русски наш запрос звучал: "выбрать номер книги и название из базы книги, где дата книги находится между датой трехдневной давности и текущей датой". И что же нам выдала база? select book_id, book_name from books where book_date between subdate(now(), interval 3 day) and now(); +---------+------------------------------------------------------+ Как в сказке! Еще один примерчик хочу продемонстрировать. Попробуйте понять его сами, без подсказок. select book_name from books where book_name like "%Толстой%"; +------------------------------------------------------+ Источник: kurepin.ru |
КОНТАКТЫ
г. Екатеринбург info@vismech.ru |
текущее: НОВОСТИ 05.12.2013 - Уход за флэш-накопителем 05.12.2013 - Компьютер самопроизвольно выключается 05.12.2013 - Почему не запускается компьютер? 27.11.2013 - Canon Legria HF R406 - Описание видеокамеры 27.11.2013 - TravelMate P645 новый лэптоп бизнес-класса от Acer |