Команда insert – вставка данных в БД

С помощью команды INSERT можно добавлять новую информацию в таблицу. Синтаксис такой:

 

//ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ поле1=значение1, поле2=значение2, поле3=значение3 INSERT INTO имя_таблицы SET поле1=значение1, поле2=значение2, поле3=значение3...;

 

Давайте добавим нового студента Иванова, в возрасте 17 лет, со стипендией 1000 руб:

 

<?php //ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ фамилия='Иванов', возраст=17, стипендия=1000 $query = "INSERT INTO students SET fam='Иванов', age=17, stip=1000"; mysql_query($query); /*       Обратите внимание на то, что строку 'Иванов' мы взяли в кавычки.       Также обратите внимание на то, что поле id мы не указываем -        база данных сама поставит в него нужное значение.       Результат запроса не записывается в переменную */?>

Результат данного действия можно смотреть в phpMyAdmin.

 

Чтобы увидеть результат запроса и на странице index.php, выполните сначала этот запрос, а затем отберите данные из БД и отобразите их на странице, т.е. код будет иметь вид:

 

<?php$host = 'localhost'; $user = 'root'; $password = ''; $db_name = 'test'; mysql_connect($host, $user, $password);mysql_select_db($db_name);mysql_query("SET NAMES 'cp1251'");$table = 'students'; //составляем первый запрос на добавление студента //с фамилией Иванов, в возрасте 17 лет и со стипендией 1000 руб//в таблицу students$query = "INSERT INTO". $table. "SET fam='Иванов', age=17, stip=1000";//выполняем этот запросmysql_query($query);//оставляем второй запрос на отбор всех записей из таблицы students$query = "SELECT * FROM ". $table;//результат запроса записываем в переменную$result= mysql_query($query); echo '<table align="center" border="1">';echo '<tr>';echo '<th>Номер</th>';echo '<th>Фамилия</th>';echo '<th>Возраст</th>';echo '<th>Стипендия</th>';echo '</tr>';while($row = mysql_fetch_assoc($result)){ echo '<tr align="center">'; echo '<td>'.$row['id'].'</td>'; echo '<td>'.$row['fam'].'</td>'; echo '<td>'.$row['age'].'</td>'; echo '<td>'.$row['stip'].'</td>'; echo '</tr>';}echo '</table>';?>

 

Что будет, если не указать значение какого-либо столбца?

<?php //ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ фамилия='Петров', стипендия=2000 $query = "INSERT INTO students SET name='Петров', stip=1000"; //Мы не выставили поле "возраст", хотя оно есть в таблице! mysql_query($query);?>

Ошибки в данном случае не будет. База данных просто поставит значение по умолчанию для данной колонки. В нашем случае это будет ноль. Проверьте это!

Другой синтаксис INSERT

INSERT имеет альтернативный синтаксис:

<?php //ВСТАВИТЬ В имя_таблицы (поле1, поле2...) ЗНАЧЕНИЯ (значение1, значение2...) $query = "INSERT INTO students (поле1, поле2...) VALUES (значение1, значение2...)"; mysql_query($query);?>

 

Давайте добавим нового студента Кравцова, в возрасте 20 лет, со стипендией 2000 руб с помощью альтернативного синтаксиса:

<?php //ВСТАВИТЬ В students (name, age, stip) ЗНАЧЕНИЯ ('Кравцов', 20, 2000)" $query = "INSERT INTO students (name, age, stip) VALUES ('Кравцов', 20, 2000)"; mysql_query($query);?>

Массовая вставка через INSERT

С помощью INSERT можно вставлять не одну запись, а несколько. Синтаксис такой:

<?php /* ВСТАВИТЬ В имя_таблицы (поле1, поле2...) ЗНАЧЕНИЯ (значение1, значение2...), (значение1, значение2...)... */ $query = "INSERT INTO имя_таблицы (поле1, поле2...) VALUES (значение1, значение2...), (значение1, значение2...)..."; mysql_query($query);?>

 

Давайте добавим одновременно двух новых студентов: Сидорова, в возрасте 18 лет, со стипендией 1400 руб, Васильева, в возрасте 19 лет, со стипендией 1500 руб:

<?php /*       ВСТАВИТЬ В students (name, age, stip) ЗНАЧЕНИЯ ('Сидоров', 18, 1400), ('Васильев', 19, 1500) */ $query = "INSERT INTO students (name, age, stip) VALUES ('Сидоров', 18, 1400), ('Васильев', 19, 1500)"; mysql_query($query);?>

Команда DELETE – удаление записей

С помощью команды DELETE можно удалять записи из таблицы. Ее синтаксис очень похож на команду SELECT:

<?php //УДАЛИТЬ ИЗ имя_таблицы ГДЕ условие_такое_то "DELETE FROM имя_таблицы WHERE условие_по_которому_следует_удалять_строки";?>

Давайте удалим запись с id=6:

<?php //УДАЛИТЬ ИЗ students ГДЕ id=6 $query = "DELETE FROM students WHERE id=6"; /*       Обратите внимание на то,       что после удаления id=6 в таблице не будет вообще. */ mysql_query($query);?>

ORDER BY - сортировка

С помощью команды ORDER BY можно сортировать строки результата.

Выберем из нашей таблицы students всех студентов и отсортируем их по возрасту:

<?php //В $result строки будут отсортированы по возрасту от меньшего к большему: $query = "SELECT * FROM students ORDER BY age"; mysql_query($query);?>

Если мы хотим обратный порядок сортировки, то следует написать:

<?php //В $result строки будут отсортированы по возрасту от большего к меньшего: $query = "SELECT * FROM students ORDER BY age DESC";?>

LIMIT – ограничение количества

С помощью команды LIMIT мы можем ограничить количество строк в результате.

В следующем примере ограничим количество строк до двух:

<?php //В $result будет только две первых строки: $query = "SELECT * FROM students LIMIT 2";?>

 

С помощью LIMIT можно выбрать несколько строк из середины результата!

В примере ниже мы выберем со второй строки, 5 штук:

<?php //В $result будут строки со второй (в запросе с первой), пять штук: $query = "SELECT * FROM students LIMIT 1,5";?>

LIMIT и ORDER вместе:

<?php //В $result будут строки со вторую, 5 штук, отсортированные по убыванию id $query = "SELECT * FROM students ORDER BY id DESC LIMIT 1,5";?>

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: