MySQL: Язык SQL

Saturday, 26 December 2009 | Автор: programmer

Попробую в этой статье дать базовые знания постоения SQL запросов при помощи команд

  • SELECT
  • UPDATE
  • DELETE
  • INSERT
Все примеры будут составлены с использование базы и таблицы, которые мы создавали в предыдущей статье. Все SQL-запросы также будем пытаться выполнять через phpMyAdmin.

INSERT

Команда INSERT дает возможно добавлять данные в существующие таблицы.

1. INSERT INTO table VALUES (value1, value2, ..., valueN) [, (value1, value2, ..., valueN)];

2. INSERT INTO table (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN) [, (value1, value2, ..., valueN)];

3. INSERT INTO table SET column1=value1, column2=value2, ..., columnN=valueN;

4. INSERT INTO table (column1, column2, ..., columnN) SELECT column1, column2, ..., columnN FROM table;

 

Как Вы видите существует несколько способов использования команды INSERT при добавлении данных в таблицы. Рассмотрим каждый из них.

В первом варианте мы добавляем данные в таблицу table и после VALUES в скобках через запятую указываем все значения соответствующих полей таблицы в соответствии с их типами. Также при этом синтаксисе Вы можете добавить сразу несколько записей в таблицу. Это не очень хороший способ, т.к. приходится указывать значения всех полей, а ведь некоторый мы хотим, чтобы принимали по умолчанию. В данном случае нам приходится указывать значение поля ID.

INSERT INTO books VALUES (2, "Хроники Эхо", "Макс Фрай"), (3, "Маруся", "Издательство Этногенез");

 

Второй способ самый распростаненный и самый правильный на мой взгляд. После наименование таблицы в скобках мы перечисляем поля, которые будем добавлять.

INSERT INTO books (name, autor) VALUES ("Я помню чудное мгновенье...", "А.С.Пушкин");

 

Третий способ немного похож на второй, но в запросе указываются ключевые пары "наименование поля"=>"Значение" и поход на команду UPDATE, которую мы рассмотрим ниже.

INSERT INTO books SET name="Баллада", autor="М.Ю.Лермонтов";

 

Последний синтаксис команды INSERT предоставляет нам возможность копирования данных из одной таблицы в другую. Для этого примера создадим еще одну таблицу, копию таблицы books и скопируем в нее все книги А.С.Пушкина

CREATE TABLE `test`.`books_copy` (

`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`name` char( 255 ) NOT NULL ,
`autor` char( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )

) ENGINE = MYISAM;

INSERT INTO books_copy (name, autor) SELECT name, autor from books where autor='А.С.Пушкин';

 

Если Вы посмотрите содержимое таблицы books_copy, то увидите в ней две записи по книгам А.С.Пушкина.

SELECT

Команда SELECT предназначена для выбора данных из одной или нескольких таблиц и имеет следующий вид:

SELECT column1, ..., columnN [FROM table WHERE definition] [ORDER BY column_name ASC|DESC, ...] [LIMIT offset, count]

 

column1, ..., columnN - имена выбираемых столбцов (полей). Если Вы хотите выбрать все поля таблицы, то можете просто указать знак "*"

table - наименование таблицы, из которой будут выбираться данные

definition - условия выбора данных из таблицы

column_name - наименование поля, по которому необходимо вести сортировку, ASC - сортировка по возрастанию, DESC - сортировка по убыванию

offset, count - эти два параметра сообщают SQL, что необходимо вывести count строк начиная со смещения offset

 

SELECT * from books;

Результат выбора всех полей таблицы и всех строк:





 

 

 

 

 

 

 

 

 

SELECT name from books where autor='А.С.Пушкин';

Результат выбора наименований произведений А.С.Пушкина:



 

 

 

 

 

SELECT name, autor from books order by name asc limit 3, 2;

Отсортируем результат по полю наименования произведения по возврастанию и возьмем 2 записи начиная с третьей




 

 

 

 

 

UPDATE

Команда UPDATE обновляет столбцы таблицы в соответствии с их новоыми значениями в строках.

UPDATE table SET column1=value1, column2=value2, ..., columnN=valueN [WHERE definition] [LIMIT count]

 

В выражении SET указывается, какие столбцы необходимо модифицировать и какие значения им надо присвоить. В выражении WHERE указывается условие, если WHERE не указан, то изменение UPDATE применяется ко всем строкам таблицы. Оператором LIMIT Вы можете ограничить количество изменяемых записей.

 

Для примера изменим значение автора и произведения для ID=3:

UPDATE books SET name='Петр I', autor='Алексей Толстой' WHERE id=3;

 

Теперь у нас для записи с ID=3 будет произведение Алексея Толстого "Петр I".

 

DELETE

Команда DELETE удаляет из существующей таблицы записи, удовлетвряющие условиям в блоке WHERE.

DELETE FROM table [WHERE definition]

 

Если оператор WHERE не указан, то удаляются все записи из таблицы table. В качестве примера удалим запись с ID=3:

DELETE FROM books WHERE id=3;

 

Послесловие

Это основные 4 SQL-команды с которыми Вам придется работать. Конечно у SELECT'а наиболее сложный синтаксис, но в будущем мы рассмотрим и его. А пока экспериментируйте, пытайтесь создавать свои запросы.


 
Tweet


Категория(и): MySQL

Комментарии


Saturday, 26 December 2009 | 09:34:30 | Автор: anton
Спасибо за статью
Tuesday, 27 April 2010 | 15:49:50 | Автор: meriguan

То, что я искал

<a href="http://phpprogs.ru/" target="_blank" alt="Я изучаю PHP на сайте phpprogs.ru"><img src="http://phpprogs.ru/php_action/banner101.gi

Добавить комментарий
Чтобы оставить комментарий, Вам необходимо зарегистрироваться или авторизироваться