ОСНОВЫ SQL
Запросы на создание
Создание базы данных
Для создания базы данных используется SQL-запрос, содержащий команду CREATE DATABASE ;. Замените названием вашей базы данных. Оно не может содержать пробелы.
Запрос:
CREATE DATABASE us_states;
Выбор базы данных
Когда база данных создана, нужно ее выбрать, чтобы начать редактирование. Введите команду USE us_states;. Вы увидите сообщение Database changed, которое уведомляет, что сейчас активной базой данных является us_states.
Создание таблицы
Для создания таблицы используется SQL-запрос. В нем указывается какая таблица создается, из каких атрибутов(полей) она состоит и какой тип данных имеет каждое поле, при необходимости указывается описание полей (ключевое поле и т.д.).
Структура запроса на создание таблицы:
- ключевые слова : CREATE TABLE
- имя создаваемой таблицы;
- открывающая круглая скобка «(»;
- название поля и его описание, которое включает тип поля и другие необязательные характеристики;
- запятая;
- название поля и его описание;
- ...
- закрывающая скобка «)».
Создадим таблицу genre следующей структуры:
Пример:
Поле
Тип, описание
genre_id
name_genre
INTEGER AUTO_INCREMENT PRIMARY KEY
VARCHAR(30)
Запрос:
CREATE TABLE genre(
genre_id INTEGER AUTO_INCREMENT PRIMARY KEY ,
name_genre VARCHAR ( 30 )
);
!
Созданная таблица - пустая.
Рекомендации по записи SQL запроса:
- Ключевые слова: SQL не является регистрозависимым языком (CREATE и create - одно и тоже ключевое слово).
- Ключевые слова SQL и типы данных рекомендуется записывать прописными (большими) буквами.
- Имена таблиц и полей - строчными (маленькими) буквами.
- SQL-запрос можно писать на нескольких строках.
- В конце SQL-запроса ставится точка с запятой (хотя если Вы пишете один запрос, это необязательно).
6
Вставка записи в таблицу
Для занесения новой записи в таблицу используется SQL запрос, в котором указывается в какую таблицу, в какие поля заносить новые значения.
Пример.
В таблицу , состоящую из двух столбцов добавим новую строку, при этом в поле1 заносится значение1 , в поле2 - значение2 .
INSERT INTO таблица(поле1, поле2)
VALUES (значение1, значение2);
6
!
В результате выполнения запроса новая запись заносится в конец обновляемой таблицы.
Вставка записи в таблицу
При составлении списка полей и списка значений необходимо учитывать следующее:
- количество полей и количество значений в списках должны совпадать;
- должно существовать прямое соответствие между позицией одного и того же элемента в обоих списках, поэтому первый элемент списка значений должен относиться к первому столбцу в списке столбцов, второй – ко второму столбцу и т.д.;
- типы данных элементов в списке значений должны быть совместимы с типами данных соответствующих столбцов таблицы ( целое число можно занести в поле типа DECIMAL, обратная операция - недопустима);
- новые значения нельзя добавлять в поля, описанные как PRIMARY KEY AUTO_INCREMENT;
8
Пример 1:
Вставим новую запись в таблицу genre:
genre_id
name_genre
INTEGER AUTO_INCREMENT PRIMARY KEY
VARCHAR(30)
1
Роман
Запрос:
INSERT INTO genre (name_genre)
VALUES ('Роман');
8
Вставим новую запись в таблицу book:
Пример 2:
book_id
title
INTEGER AUTO_INCREMENT PRIMARY KEY
VARCHAR(50)
1
author
Мастер и Маргарита
VARCHAR(30)
price
Булгаков М.А.
DECIMAL(8,2)
amount
670.99
INT
3
Запрос:
INSERT INTO book (title, author, price, amount )
VALUES ('Мастер и Маргарита', 'Булгаков М.А.', 670.99, 3);
Вставим новые записи в таблицу book:
Пример 3:
book_id
title
INTEGER AUTO_INCREMENT PRIMARY KEY
VARCHAR(50)
1
author
2
Мастер и Маргарита
price
VARCHAR(30)
3
Белая гвардия
Булгаков М.А.
DECIMAL(8,2)
amount
Булгаков М.А.
INT
Идиот
670.99
Достоевский Ф.М.
3
540.50
460.00
5
10
Запрос:
INSERT INTO book (title, author, price, amount )
VALUES ('Белая гвардия', 'Булгаков М.А.', 540.50, 5),
('Идиот', 'Достоевский Ф.М.', 460.00, 10),
('Братья Карамазовы', 'Достоевский Ф.М.', 799.01, 2);
Добавление поля в таблицу
Изменение структуры таблицы, добавлением в неё нового поля:
Запрос:
ALTER TABLE Имя_таблицы ADD COLUMN Имя_нового_поля Тип_поля ;