КОнтакты, предложения, отзывы

.rar или .zip
Вложение
Онлайн-чат
На этом сайте, вы найдёте полезную информацию, практические советы в области веб-программирования, веб-дизайна и веб-разработок в целом. Мы с удовольствием поделимся с вами реальными примерами и решениями задач, связанных с jQuery , JavaScript , PHP и MySQL , версткой сайтов , поможем разобраться новичкам с современными технологиями, такими как Ajax , HTML5 , CSS3 и многими другими.

SQL::начало

"Рабочая лошадка" SELECT

Полная его форма выглядит следующим образом: Команда SELECT используется для извлечения данных из таблицы. Ее основной синтаксис имеет следующий вид:
SELECT  что-нибудь FROM  имя_таблицы 
Этим что-нибудь может быть символ звездочки (*), означающий «каждый столбец», вместо него можно указать какие-нибудь конкретные столбцы:
SELECT id, name, email FROM friends 

SELECT COUNT

Другим вариантом параметра что-нибудь является функция COUNT, которая может быть использована множеством способов. Подсчёт количества всех строк:
SELECT COUNT(*) FROM  friends

SELECT DISTINCT

Этот спецификатор (и его синоним DISTINCTROW) позволяет исключать множество записей, имеющих одинаковые данные.
SELECT DISTINCT friend FROM friends

WHERE

Ключевое слово WHERE позволяет сузить диапазон действия запроса, возвращая только те данные, в отношении которых конкретное выражение возвращает истинное значение. За счет использования оператора равенства = код в примере возвращает только те строки, в которых значение столбца friend в точности соответствует строке Denis.
SELECT DISTINCT `ip`, `friend` FROM `friends` WHERE `friend`='Denis'
Полезные операции сравнения, кроме самых простых математических, используемые в конструкциях WHERE: Во избежание ошибки использования зарезервированных слов имена базданных, таблиц и полей лучше заключать в обратные кавычки (буква Ё!!!). Можно указывать и в полном виде, тогда поле `friend` будет выглядеть `friends`.`friend` или `bd_name`.`friends`.`friend`. Я здесь точку с запятой в конце запросов опускаю, так как скорее всего они будут осуществляться через пхп с оператором mysqli_query():
 mysqli_query ($bd, "SELECT `id`, `name`, `email` FROM `friends`");

LIKE

Ищет в строке результата соответствие шаблону. В примере показаны три разных запроса, один из которых предназначен для начала строки, другой — для конца, а третий — для любого места в строке.
SELECT `ip`, `friend` FROM `friends` WHERE `friend` LIKE 'Den%'
SELECT `ip`, `friend` FROM `friends` WHERE `friend` LIKE '%Den'
SELECT `ip`, `friend` FROM `friends` WHERE `friend` LIKE '%Den%'
Символ % будет также соответствовать пустому месту в той позиции, которую он занимает.

LIMIT

Спецификатор LIMIT позволяет выбрать количество выводимых в запросе строк и место, с которого таблица начнет их возвращать. Когда передается один параметр, он указывает MySQL начать действие спецификатора с верхней части результатов и вернуть только то количество строк, которое задано этим параметром. Если передать спецификатору два параметра, то первый укажет смещение относительно начала результатов, которое MySQL должна учесть при их отображении, а второй укажет, сколько строк нужно вывести. Можно представить, что первый параметр сообщает: «Нужно пропустить это количество результатов, ведя счет сверху».
SELECT `ip`, `friend` FROM `friends` LIMIT  3:
SELECT `ip`, `friend` FROM `friends`  LIMIT  1, 2;
SELECT `ip`, `friend` FROM `friends`  LIMIT 3, 1 

MATCH...AGAINST

Конструкция MATCH.. .AGAINST может быть применена к столбцу, для которого был создан индекс FULLTEXT. В отличие от использования конструкций WHERE. . .= или WHERE.. .LIKE, конструкция MATCH...AGAINST позволяет вводить в поисковый запрос несколько слов и проверять на их наличие все слова в столбцах, имеющих индекс FULLTEXT. Индексы FULLTEXT нечувствительны к регистру букв, поэтому неважно, какой именно регистр используется в ваших запросах. Предположим, что вы добавили индекс FULLTEXT к столбцам friend и email и ввели два запроса, показанные в примере. Первый из них требует вернуть любой из этих столбцов, в котором содержится слово and. Поскольку and является стоповым словом, MySQL его проигнорирует, и запрос всегда будет возвращать пустой набор независимо от того, что хранится в столбцах. Второй запрос требует вернуть любые строки, содержащие в любом месте и в любом порядке оба слова: Denis и Oksana.
SELECT `friend`, `email` FROM `friends` WHERE MATCH(`friend`) AGAINST('and')
SELECT `friend`, `email` FROM `friends` WHERE MATCH(`friend`)
 AGAINST('Denis Oksana')

MATCH...AGAINST...IN BOOLEAN MODE

Булев режим позволяет также ставить впереди искомых слов знак + или - чтобы показать, что они должны быть включены или исключены. Если обычный булев режим требует «искать присутствие любого из этих слов», то знак «плюс» означает, что «это слово обязательно должно присутствовать, иначе строку возвращать не нужно». Знак «минус» означает, что «этого слова быть не должно, если оно присутствует, то строку возвращать не нужно».
SELECT `friend`, `email` FROM `friends` WHERE MATCH(`friend`)
 AGAINST('+Denis' IN BOOLEAN MODE)
SELECT `friend`, `email` FROM `friends` WHERE MATCH(`friend`)
 AGAINST('+Denis -Sasha' IN BOOLEAN MODE)
 SELECT `friend`, `email` FROM `friends`
WHERE MATCH(`friend`)
 AGAINST('"Denis and Oksana"' IN BOOLEAN MODE)
В третьем запросе есть кое-что интересное: частью искомой строки является стоповое слово and, но оно все же используется в поиске, поскольку двойные кавычки отменяют учет стоповых слов.

INSERT

Для добавления записей служит оператор insert :
INSERT INTO Имя_таблицы [(Список полей)] VALUES (Список констант);,/pre>например:
INSERT INTO friends VALUES (0, 'Denis', 'denis@host.ru', 'some comment');
Поскольку поле id является счетчиком (имеет свойство AUTO_INCREMENT), то вместо значения можно просто указать 0 или NULL. Список полей мы не указывали, чтобы упростить запрос. Но можно указать поля явно (причем порядок полей может быть не такой, какой был указан при создании таблицы):
INSERT INTO friends (comment, email, name)
VALUES ('some comment', 'denis@host.ru', 'Denis');
Главное, чтобы указанные значения соответствовали полям.

UPDATE

Обновление записей осуществляется оператором update, синтаксис которого cледующий: Самая простая его форма выглядит так:
UPDATE таблица SET список_полей_и_значений WHERE условие
Список полей и значений задается так: поле = значение. Например:
UPDATE friends
SET name='Igor', email='777@host.ru' WHERE id=l
Данный запрос найдет запись, для которой поле id равно единице, и изменит значения ее полей name и email. Поле comment останется без изменений, как и поле id.
2015.06.22 195

Программист звонит в библиотеку. - Здравствуйте, Катю можно? - Она в архиве. - Разархивируйте ее пожалуйста. Она мне срочно нужна!
Войдите или Зарегистрируйтесь чтобы оставить комментарий

Комментарии


    Яндекс.Метрика Яндекс.Метрика