Налаштування обладнання та програмного забезпечення

Додавання даних SQL. Видалення записів з бази даних SQL

Запити на зміну використовуються для додавання (INSERT INTO), видалення (DELETE) та оновлення (UPDATE) записів у таблицях.

Команда INSERT INTO

Команда INSERT INTO може бути використана для додавання одного або кількох записів до кінця таблиці.

Синтаксис команди INSERT INTO має такий вигляд:
INSERT INTO Назва_Таблиці [(Назва_Полів)] VALUES (Значення_даних);

Наприклад, помістимо в таблицю "Групи" запис, що містить дані (1, БФ-16а, 1, 1) відповідні стовпці (КодГрупи, Назва, Курс, Семестр).

Для цього запит у форматі:
INSERT INTO Групи (КодГрупи, Назва, Курс, Семестр) VALUES (1, БФ-16а, 1, 1);
введемо на бланку запиту, виконавши команду "Конструктор запитів" на вкладці "Створення", у режимі "Режим SQL" з меню Вид.

Зберігаємо запит з ім'ям "Добав_1_запису". В результаті в "Області переходів" з'явиться незв'язаний об'єкт - "Добав_1_записи" (Рис.1.).


Мал. 1.

Після збереження запиту необхідно виконати запит, клацнувши на піктограмі «Виконати». В результаті виконання команди «Добав_1_запису» у порожній таблиці з'явиться перший запис (Рис. 2.)



Мал. 2.

Команда UPDATE

Команда UPDATE призначена для зміни вже існуючих записів у стовпцях таблиці, що дозволяє оновлювати значення заданих стовпчиків таблиці.

Синтаксис команди UPDATE має такий вигляд:
UPDATE Назва_Таблиці SET Назва_Стовпця = Нова_Значення WHERE Умова_Відбору;

У пропозиції SET вказуються імена стовпців, дані у яких треба змінити. Оператор WHERE не є обов'язковим, але за його допомогою можна вказати тільки на рядки стовпців (таблиць), які необхідно оновити.

Створимо запит на зміну запису у таблиці "Групи" бази даних sql_training_st.mdb.

Наприклад, змінимо вже існуючий записдля першого ключового поля id у стовпці "Назва" таблиці "Групи".

Запит у форматі:
UPDATE Групи SET Назва = "БФ-16б" WHERE ID = 1;

Зберігаємо запит з ім'ям "Зміна_запису_1". В результаті в області переходів з'явиться об'єкт - Зміна_запису_1 (Рис. 3.).



Мал. 3.

Після збереження запиту необхідно виконати запит, клацнувши на піктограмі «Виконати». В результаті виконання команди «Зміна_запису_1» з'явиться вікно діалогу, в якому необхідно ввести значення ID=1 і натиснути кнопку ОК. Після цих дій у таблиці "Групи" зміниться запис у полі "Назва" з БФ-16а до БФ-16б (Рис. 4.).



Мал. 4.

Команда DELETE

Команда DELETE призначена для видалення записів із таблиці.

Формат запиту на видалення записів:
DELETE FROM Назва_Таблиці WHERE Умова_Відбору;

Створимо запит на зміну запису у таблиці "Групи" бази даних sql_training_st.mdb.

Наприклад, видалимо існуючий запис першого ключового поля id у всіх стовпцях (полях) таблиці "Групи".

Для цього запит у форматі:
DELETE FROM Групи WHERE ID=1;
створюємо на бланку запиту, виконавши команду "Конструктор запитів" на вкладці "Створення" у режимі "Режим SQL" з меню Вид.

Зберігаємо запит на ім'я "Видалення_запису_1". В результаті в області переходів з'явиться об'єкт - Видалення_запису_1 (Рис. 5.).



Мал. 5.

Після збереження запиту необхідно виконати запит, клацнувши на піктограмі «Виконати». В результаті виконання команди «Видалення_запису_1» з'явиться вікно діалогу, в якому необхідно ввести значення ID=1 і натиснути кнопку ОК. Після цього відкриється вікно діалогу "Підтвердіть видалення записів". Після підтвердження таблиці " Групи " буде видалено дані у всіх полях, тобто. видалено запис (Мал. 6.).



Мал. 6.

Слід зазначити, що для видалення даних у конкретних полях таблиці доцільно скористатися командою UPDATE та замінити значення у полях на Null. Якщо необхідно видалити таблицю в цілому, слід використовувати оператор DROP TABLE (синтаксис оператора: DROP TABLE Назва_Таблиці;).

Відновимо перший запис у таблиці "Групи", виконавши команду "Добав_1_запису", в результаті відновимо перший запис (Рис. 7.).



Мал. 7.

Останнє оновлення: 13.07.2017

Для додавання даних застосовується команда INSERT , яка має такий формальний синтаксис:

INSERT ім'я_таблиці [(список_стовпців)] VALUES (значення1, значення2, ... значення N)

Спочатку йде вираз INSERT INTO , потім у дужках можна вказати список стовпців через кому, в які треба додавати дані, і в кінці після слова VALUES дужках перераховують значення, що додаються для стовпців.

Наприклад, нехай раніше було створено таку базу даних:

CREATE DATABASE productsdb; GO USE productsdb; CREATE TABLE Products (Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Manufacturer NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)

Додамо до неї один рядок за допомогою команди INSERT:

INSERT Products VALUES ("iPhone 7", "Apple", 5, 52000)

Після вдалого виконання SQL Server Management Studio у полі повідомлень має з'явитися повідомлення "1 row(s) affected":

Варто враховувати, що значення для стовпців у дужках після ключового слова VALUES передаються по порядку їхнього оголошення. Наприклад, у виразі CREATE TABLE вище можна побачити, що першим стовпцем йде Id. Але оскільки для нього заданий атрибут IDENTITY, значення цього стовпця автоматично генерується, і його можна не вказувати. Другий стовпець представляє ProductName, тому перше значення - рядок iPhone 7 буде передано саме цьому стовпцю. Друге значення - рядок "Apple" буде передано третьому стовпцю Manufacturer і таке інше. Тобто значення передаються стовпцям в такий спосіб:

    ProductName: "iPhone 7"

    Manufacturer: "Apple"

Також при введенні значень можна вказати безпосередні стовпці, які будуть додаватися значення:

INSERT INTO Products (ProductName, Price, Manufacturer) VALUES ("iPhone 6S", 41000, "Apple")

Тут значення вказується лише трьох стовпців. Причому тепер значення передаються в порядку прямування стовпців:

    ProductName: "iPhone 6S"

    Manufacturer: "Apple"

Для вказаних стовпців (в даному випадку ProductCount) буде додаватися значення за замовчуванням, якщо заданий атрибут DEFAULT, або значення NULL. При цьому невказані стовпці повинні допускати значення NULL або мати атрибут DEFAULT.

Також ми можемо додати відразу кілька рядків:

INSERT INTO Products VALUES ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)

В даному випадку до таблиці буде додано три рядки.

Також при додаванні ми можемо вказати, щоб для стовпця використовувалося значення за промовчанням за допомогою ключового слова DEFAULT або NULL:

INSERT INTO Products (ProductName, Manufacturer, ProductCount, Price) VALUES ("Mi6", "Xiaomi", DEFAULT, 28000)

У цьому випадку для стовпця ProductCount буде використано значення за замовчуванням (якщо воно встановлено, якщо його немає – то NULL).

Якщо всі стовпці мають атрибут DEFAULT, який визначає значення за замовчуванням, або допускають значення NULL, то для всіх стовпців можна вставити значення за замовчуванням:

INSERT INTO Products DEFAULT VALUES

Але якщо брати таблицю Products, то подібна команда завершиться помилкою, оскільки кілька полів немає атрибуту DEFAULT і навіть допускають значення NULL.

У цій статті ми розберемо, мабуть, одні з найважливіших SQL-запитів. Це запити на додавання та видалення записів з таблиці бази даних. Оскільки, ДУЖЕ часто доводиться додавати нові записи до таблиці, причому робити це автоматично, то цей матеріал обов'язковий до вивчення.

Для початку SQL-запит на додавання нового запису до таблиці:

INSERT INTO users (login, pass) values("TestUser", "123456")

При додаванні запису спочатку йде команда " INSERT INTO", потім назва таблиці, в яку ми вставляємо запис. Далі йде у круглих дужках назви полів, які ми хочемо заповнити. А потім у круглих дужках після слова valuesпочинаємо перераховувати значення тих полів, які ми вибрали. Після виконання цього запиту в нашій таблиці з'явиться новий запис.

Іноді потрібно оновити запис у таблицідля цього існує наступний SQL-запит:

UPDATE users SET login="TestUser2", pass="1234560" WHERE login="TestUser"

Даний запитє більш складним, тому що він має конструкцію " WHERE", але про неї трохи нижче. Спочатку йде команда" UPDATE", потім ім'я таблиці, а після " SETМи описуємо значення всіх полів, які ми хочемо змінити. Було б все просто, але постає питання: А який саме запис слід оновлювати?". Для цього існує" WHERE". В даному випадку ми оновлюємо запис, поле" login"у якої має значення" TestUserЗверніть увагу, що якщо таких записів буде кілька, то оновляться абсолютно всі! Це дуже важливо розуміти, інакше ви ризикуєте втратити свою таблицю.

Давайте трохи ще поговоримо про " WHEREКрім простих перевірок на рівність існують так само і нерівності, а також логічні операції: ANDі OR.

UPDATE users SET login = "TestUser2", pass="1234560" WHERE id< 15 AND login="TestUser"

Даний SQL-запитоновить ті записи, idяких менше 15 Іполе " login" має значення " TestUser". Сподіваюся, Ви розібралися з конструкцією" WHERE", тому що це дуже важливо. Саме " WHERE"використовується при вибірці записів із таблиць, а це завдання, що найчастіше використовується при роботі з базами даних.

І, насамкінець, простий SQL-запит видалення записів з таблиці:

DELETE FROM users WHERE login="TestUser2"

Після команди " DELETE FROM" йде ім'я таблиці, у якій потрібно видалити записи. Далі описуємо конструкцію " WHERE " . Якщо запис буде відповідати описаним умовам, вона буде видалена. Знову ж таки зверніть увагу, залежно кількості записів, задовольняють умові після " WHERE", може вийти будь-яка їх кількість.

Ця ж стаття присвячена наповненню таблиць БД даними, тобто вивчатимемо SQL-команди для вставки нових записів. Слід сказати, що запис таблицю можна зробити двома способами:

Спосіб №1.
Спробуємо внести запис про нову країну до таблиці countries. Синтаксис додавання буде наступним:
INSERT INTO Назва_таблиці (поле_1, поле_2, …) VALUES (Значення_1, Значення_2, …); Виходячи з нашої структури таблиці, SQL-запит буде таким:
INSERT INTO countries (country_name, acronym_name) VALUES ("Russia", "RU"); Ось так ми внесли до нашої таблиці запис про країну «Росія». Тут має бути все зрозуміло і просто, головне уважно дивитися які поля вказуєте в перших дужках, і в такому порядку прописувати значення по-друге.

Спосіб №2.
Другий спосіб, на мій погляд, трохи простіше, оскільки ви бачите що і якому полю надаєте. Повірте, якщо в таблиці величезна кількість стовпців, то дуже просто переплутати або недоглянути порядок полів у перших і порядок значень у дужках. Синтаксис другого методу такий:
INSERT INTO Назва_таблиці SET поле_1 = Значення_1, поле_2 = Значення_2, … ; Давайте на даному прикладі внесемо якусь інформацію до таблички persons, оскільки там більше полів, і відразу відчуватиметься перевага другого способу:
INSERT INTO persons SET first_name="Ivan", last_name="Dulin", registration_date="2012-06-14", country="1"; Тепер у нашій табличці є такі дані:


Ви, напевно, помітили, що ми не вказали значення для age, а воно виявилося заповненим... Все правильно – для даного поля ми встановлювали значення за замовчуванням як 25. Отже, тепер наш Ivan Dulin значиться в базі з віком 25 років. Можливо, не найвдаліший приклад робити значення за умовчанням для поля віку, але можна такі властивості встановлювати до таких полів, як, наприклад, рейтинг користувача сайту чи кількість переглядів сторінки. Їх спочатку ставиться значення 0.

Слід звернути увагу на формат дати в MySQL: YYYY-MM-DD. Якщо його не дотримуватися, ваші записи просто не будуть внесені в таблицю.

Як бачимо, поле profession заповнене як NULL, це порожнє значення. Для цього поля.

Як додаток, розглянемо таку команду:
LOAD DATA LOCAL INFILE "D:\zapros.txt" INTO TABLE persons; Як ви вважаєте, що ми зараз зробили?! А зробили ми таке: додали дані до таблиці personsз файлу zapros.txt, який знаходиться на диску D. Інформація у файлі повинна бути наступною структурою:


Структура даних файлу повинна відповідати таким вимогам:
  1. Кожен новий запис повинен описуватися з нового рядка
  2. Дані повинні бути вказані для всіх полів. Як ви можете помітити, для поля id ми вказали значення NULL, адже воно у нас є автоінкрементним, так що MySQL сам внесе потрібне значення.
  3. Поля відокремлюються один від одного символом табуляції (клавіша Tab).
  4. Введена інформація повинна відповідати типу даних конкретного поля. Тобто, наприклад, дата у форматі РРРР-ММ-ДД, ціле число для integer і т.д.
Таким чином, ви навчилися вносити нові дані до таблиць своєї БД. Для закріплення вивченого матеріалу внесіть самостійно такі дані:

Таблиця professions:

Таблиця людей:

first_name last_name age registration_date country profession
Leonid Bilak 45 2012-06-20 2 1
Yuri Назаров 22 2012-06-21 3 1
Alla Savenko 25 2012-06-22 2 3
Іріна Nikolaeva 31 2012-06-22 1 3

Обов'язково додайте ці записи, оскільки вони знадобляться для вивчення оператора SELECT (вибору інформації з БД), який ми розглянемо в наступній (четвертій) статті з вивчення SQL-запитів.


Зміст статті
1. Найпростіші MySQL запити
2. Прості SELECT (вибрати) запити
3. Прості INSERT (новий запис) запити
4. Прості UPDATE (перезаписати, дописати) запити
5. Прості DELETE (видалити запис) запити
6. Прості DROP (видалити таблицю) запити
7. Складні MySQL запити
8. MySQL запити та змінні PHP

1. Найпростіші SQL запити

1. Виведе список ВСІХ баз.

SHOW databases;
2. Виведе список ВСІХ таблиць у базі даних base_name.

SHOW tables in base_name;

2. Прості SELECT (вибрати) запити до бази MySQL

SELECT- Запит, який вибирає вже існуючі дані з БД. Можна вибрати певні параметри вибору. Наприклад, суть запиту російською мовою звучить так - ВИБРАТИ такі колонки З такої таблиці ДЕ параметр такої колонки дорівнює значенню.

1. Вибирає ВСІ дані у таблиці tbl_name.

SELECT * FROM tbl_name;
2. Виведе кількість записів у таблиці tbl_name.

SELECT count(*) FROM tbl_name;
3. Вибирає (SELECT) з (FROM) таблиці tbl_name ліміт (LIMIT) 3 записи, починаючи з 2.

SELECT * FROM tbl_name LIMIT 2,3;
4. Вибирає (SELECT) ВСІ (*) записи з (FROM) таблиці tbl_name та сортує їх (ORDER BY) по полю id по порядку.

SELECT * FROM tbl_name ORDER BY id;
5. Вибирає (SELECT) ВСІ записи з (FROM) таблиці tbl_name і сортує їх (ORDER BY) по полю id у ЗВОРОТНОМУ порядку.

SELECT * FROM tbl_name ORDER BY id DESC;
6. Вибирає ( SELECT) ВСІ (*) записи з ( FROM) таблиці usersі сортує їх ( ORDER BY) по полю idу порядку зростання, ліміт ( LIMIT) перші 5 записів.

SELECT * FROM users ORDER BY id LIMIT 5;
7. Вибирає всі записи з таблиці users, де поле fnameвідповідає значенню Gena.

SELECT * FROM users WHERE fname="Gena";
8. Вибирає всі записи з таблиці users, де значення поля fnameпочинається з Ge.

SELECT * FROM users WHERE fname LIKE "Ge%";
9. Вибирає всі записи з таблиці users, де fnameзакінчується на na, і впорядковує записи у порядку зростання значення id.

SELECT * FROM users WHERE fname LIKE "%na" ORDER BY id;
10. Вибирає всі дані із колонок fname, lnameз таблиці users.

SELECT fname, lname FROM users;

11. Допустимо у Вас у таблиці даних користувача є країна. Так от якщо Ви хочете вивести ТІЛЬКИ список значень, що зустрічаються (щоб, наприклад, Росія не виводилося 20 разів, а тільки один), то використовуємо DISTINCT. Виведе, з маси значень, що повторюються Росія, Україна, Білорусь. Таким чином, з таблиці usersколонки countryбудуть виведені ВСІ УНІКАЛЬНІ значення

SELECT DISTINCT country FROM users;
12. Вибирає всі дані рядків з таблиці usersде ageмає значення 18,19 та 21.

SELECT * FROM users WHERE age IN (18,19,21);
13. Вибирає МАКСИМАЛЬНЕ значення ageв таблиці users. Тобто якщо у Вас у таблиці найбільше значення age(з англ. вік) одно 55, то результатом запиту буде 55.

SELECT max(age) FROM users;
14. Вибере дані з таблиці usersпо полях nameі ageДЕ ageнабуває найменшого значення.

SELECT name, min(age) FROM users;
15. Вибере дані з таблиці usersпо полю nameДЕ idНЕ РІВНИЙ 2.

SELECT name FROM users WHERE id!="2";

3. Прості INSERT (новий запис) запити

INSERT– запит, який дозволяє ПЕРШОПОЧАТКОВО вставити запис у БД. Тобто створює НОВИЙ запис (рядок) у БД.

1. Робить новий записв таблиці users, в полі nameвставляє Сергій, а в полі ageвставляє 25. Таким чином, до таблиці дописується новий рядокіз даними значеннями. Якщо колонок більше, то вони залишаться або порожніми, або зі встановленими за замовчуванням значеннями.

INSERT INTO users (name, age) VALUES ("Сергій", "25");

4. Прості UPDATE запити до бази MySQL

UPDATE– запит, який дозволяє ПЕРЕЗАПИСАТИ значення полів або ДОПИСАТИ щось у вже існуючому рядкуу БД. Наприклад, є готовий рядок, але в ньому потрібно перезаписати параметр віку, оскільки він змінився з часом.

1. У таблиці users ageстає 18.

UPDATE users SET age = "18" WHERE id = "3";
2. Все те саме, що й у першому запиті, просто показаний синтаксис запиту, де перезаписуються два і більше поля.
В таблиці usersДЕ id дорівнює 3 значення поля ageстає 18, а countryРосія.

UPDATE users SET age = "18", country = "Росія" WHERE id = "3";

5. Прості DELETE (видалити запис) запити до бази даних MySQL

DELETE– запит, який видаляє рядок із таблиці.

1. Видаляє рядок із таблиці usersДЕ idдорівнює 10.

DELETE FROM users WHERE id = "10";

6. Прості DROP (видалити таблицю) запити до бази даних MySQL

DROP- Запит, який видаляє таблицю.

1. Видаляє повністю таблицю tbl_name.

DROP TABLE tbl_name;

7. Складні запити до бази даних MySQL

Цікаві запити, які можуть стати в нагоді навіть досвідченим користувачам

SELECT id,name,country FROM users,admins WHERE TO_DAYS(NOW()) - TO_DAYS(registration_date)<= 14 AND activation != "0" ORDER BY registration_date DESC;
Даний складний запит ВИБИРАЄ колонки id,name,countryУ ТАБЛИЦЯХ users,adminsДЕ registration_date(дата) не старше 14 днів І activationНЕ ДОРІВНЮЄ 0 , Сортувати за registration_dateу зворотному порядку (нове на початку).

UPDATE users SET age = "18+" WHERE age = (SELECT age FROM users WHERE male = "man");
Вище вказано приклад так званого запиту у запитіу SQL. Оновити вік серед користувачів на 18+, де стать - чоловіча. Подібних варіантів запиту не рекомендую. З власного досвіду скажу, краще створити кілька окремих - вони будуть опрацьовуватися швидше.

8. Запити до бази даних MySQL та PHP

У MySQL запити в PHP сторінці можна вставляти змінні як порівнювані і тп значень. Пара прикладів

1. Вибирає всі записи з таблиці users, де поле fnameвідповідає значенню змінної $name.

SELECT * FROM users WHERE fname="$name";
2. У таблиці usersДЕ id дорівнює 3 значення поля ageзмінюється значення змінної $age.

UPDATE users SET age = "$age" WHERE id = "3";

Увага!Якщо Вам цікавий ще якийсь приклад, то пишіть питання в коментарі!

Сподобалася стаття? Поділіться з друзями!
Чи була ця стаття корисною?
Так
Ні
Дякую за ваш відгук!
Щось пішло не так і Ваш голос не був врахований.
Дякую. Ваше повідомлення відправлено
Знайшли у тексті помилку?
Виділіть її, натисніть Ctrl+Enterі ми все виправимо!