CREATE TABLE table_name
В даному випадку table_name повинно бути унікальним, щоб не виникало помилок. Поля призначаються всередині круглих дужок () після імені таблиці.
CREATE TABLE table_name ( arg )
Наприклад,
Таблиця під назвою Planets наділена такими полями, як ID і OpeningYear, які приймають лише числові значення. PlanetName - рядок на 10 символів. Radius і SunSeason можуть бути числами з плаваючою точкою. HavingRings є логічної змінної і приймає значення true або false.
CREATE VIEW створює представляение. Це така віртуальна таблиця, яка містить інформацію, взяту з інших таблиць. При їх зміні в родительных таблицях, у поданні вони теж змінюються. Маніпулювання даними не відрізняється від того, як це відбувається з табличними даними.
Створення бази даних в SQL CREATE DATABASE base_name.
Оператор визначення даних мови SQL Server - CREATE DATABASE. Використовується для створення бази даних. Він є універсальним і призначений для багатьох СУБД. А не тільки SQL. В POSTGRESQL CREATE DATABASE також створює нову базу даних. Повний синтаксис виглядає так:
З допомогою оператора CREATE DATABASE створюється база даних з ім'ям db_name. Ім'я повинно бути унікальним, тому іншої бази даних з такою ж назвою не повинно існувати, інакше виникає помилка виконання команди.
Можна призначити пароль за допомогою команди SQL CREATE DATABASE User Password. Але є ще варіант.
За допомогою SQL CREATE DATABASE Character set utf8 призначається кодування.
При створенні бази даних в MS SQL CREATE DATABASE вказується ім'я. Воно повинно відповідати правилам ідентифікаторів. Ось основні з них.
Назва може містити один символ SQL CREATE DATABASE t.
Ім'я містить не більше 120 символів. Якщо не зазначено, що формується шляхом додавання суфікса до database_name. Таким чином, довжина обмежується 123 символами, щоб формується назва не перевищило встановлені 128 знаків.
Застосовується в SQL Server версії 2012. Відповідає за автономність бази даних. Має два значення:
Незалежна база даних вирішує проблему втрати такої інформації, як логін, пароль при пересуванні бази між серверами. У свою чергу автономна база зберігає необхідну для роботи інформацію. Повністю незалежна від налаштувань SQL сервера, не зав'язана на зовнішніх залежностях. За замовчуванням має значення NONE. Це означає, що база не є автономною.
Перед тим як призначити CONTAINMENT = PARTIAL, необхідно дозволити використання незалежних баз на рівні сервера.
On вказує, що дискові файли для зберігання розділів визначаються явно. Застосовується виключно у зв'язці зі списком елементів .
PRIMARY визначає первинний файл. Якщо не вказано, то в якості первинного використовується перший файл списку в інструкції CREATE DATABASE.
LOG ON вказує, що файли журналів визначаються явно.
COLLATE collation_name відповідає за сортування бази даних. Якщо не вказано, то параметри сортування задаються за умовчанням для екземпляра SQL Server. Не може вказуватися з пропозиціями FOR ATTACH і FOR ATTACH_REBUILD_LOG. Сортування незалежних баз даних відрізняється.
WITH options:
Призначається для керування властивостями файлу. Logical_file_name є логічним ім'ям, застосовується при зверненні до файлу. Повинно бути унікальним, відповідати правилам для ідентифікаторів.
FILENAME = {'os_file_name' | 'filestream_path'}
В даному випадку змінної filename присвоюється ім'я операційної системи або шлях до файлу. Size відповідає за початковий розмір, а maxsize - максимальний.
У новостворену базу необхідно додати деяку інформацію. Приклад SQL CREATE DATABASE:
Тут задіяні найважливіші вирази мови SQL. На першому рядку адміністратор створює базу даних під назвою mydb. Вона призначається основною з допомогою команди USE mydb.
USE db1;
SELECT COUNT(*) FROM mytable; # selects from db1.mytable
USE db2;
SELECT COUNT(*) FROM mytable;
У цьому виразі спочатку db1 стає основною, але потім db2.
Після цього створюється таблиця mytable з числовим полем PRIMARY KEY і рядком на 20 символів name. Щоб створити таблицю, яка буде містити значення іншої таблиці застосовується зв'язка операторів AS/SELECT/FROM.
CREATE TABLE new_table_name AS
SELECT column1 column2
FROM existing_table_name
WHERE ;
Тут видно, що створюється таблиця під ім'ям new_table_name, перед тим як вставити дані з інших таблиць повинні бути виділені стовпці командою SELECT. Тут вибирається column1 і column2. Визначається батьківська таблиця, з якої відбувається імпорт інформації.
FROM existing_table_name
Після створення і додавання деяких даних, можна перевірити всі існуючі бази командою SHOW DATABASES.
Щоб вставити в таблицю нові значення, використовується команда INSERT INTO, після слова INTO розташовується ім'я оброблюваної таблиці. Після оператора можуть знаходитися значення пріоритетів: LOW_PRIORITY, DELAYED, HIGH_PRIORITY або IGNORE.
Щоб визначити додаються змінні, пишеться команда VALUES, а в круглих дужках зв'язка значень ( 1 Will ), ( 2 Marry ) і ( 3 Dean ). Якщо передбачається додавання одного значення замість ключового слова VALUES застосовується VALUE. Дозволяється використовувати оператор SET, його іноді простіше використовувати, адже не потрібно запам'ятовувати порядок стовпців. Значення призначаються у формі col = expr.
Потім за допомогою команди SELECT вибираються дані для подальшої маніпуляції їх значеннями. Обираються такі поля, як id, name з таблиці mytable, id присвоюється значення 1. Щоб змінити або оновити існуючі дані, використовується UPDATE, змінної name задається значення Willy.
Далі, вибираються дані з таблиці і видаляються. Щоб повністю знищити існуючу таблицю, використовуйте DROP DATABASE tablename. Але видаляються тільки ті, для яких відкритий доступ.
В даному прикладі створюється база Sales, де перший файл saledat.mdf стає первинним, оскільки не використовується ключове слово PRIMARY. Значення SIZE і MAXSIZE вказані без суфіксів MB або KB, за умовчанням виділяється пам'ять в мегабайтах. SIZE - 10 MB, MAXSIZE - 15 MB.
Якщо потрібно вказати декілька файлів даних, кожна з них береться в круглі дужки, перераховується через кому. Наприклад, так:
Таким чином, створені три файли з максимальним розміром 200 Мб.
Якщо є кілька файлів і їх потрібно групувати, це реалізується за допомогою оператора FILEGROUP group_name.
В даному випадку є три групи SalesGroup1 SalesGroup2. Вони містять по два файлу, кожен з них має максимальний розмір 50 Мб. Окремо створений файл журналу Sales_log. Два - SPri1_dat і SPri2_dat не відносяться ні до однієї з груп, вони мають розмір 10 Мб, але під їх вміст виділено 50 Мб.
У поточному прикладі створюється база даних FileStreamDB. У ній визначається файлова група рядків, дві файлові FILESTREAM. Кожна з них містить тільки один файл.
USE master;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1 CHARINDEX('master.mdf', LOWER(physical_name)) - 1)
FROM master.sys.master_files
WHERE database_id = 1 AND file_id = 1);
-- Execute the CREATE DATABASE statement.
EXECUTE ('CREATE DATABASE FileStreamDB
ON PRIMARY
(
NAME = FileStreamDB_data
,FILENAME = "' + @data_path + 'FileStreamDB_data.mdf"
,SIZE = 10MB
,MAXSIZE = 50MB
,FILEGROWTH = 15%
),
FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT
(
NAME = FSPhotos
,FILENAME = "C:MyFSfolderPhotos"
-- SIZE and FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
, MAXSIZE = 5000 MB
),
(
NAME = FSPhotos2
, FILENAME = "D:MyFSfolderPhotos"
, MAXSIZE = 10000 MB
),
FILEGROUP FileStreamResumes CONTAINS FILESTREAM
(
NAME = FileStreamResumes
,FILENAME = "C:MyFSfolderResumes"
)
LOG ON
(
NAME = FileStream_log
,FILENAME = "' + @data_path + 'FileStreamDB_log.ldf"
,SIZE = 5MB
,MAXSIZE = 25MB
,FILEGROWTH = 5MB
)'
);
GO
Декларується мінлива @data_path - рядок, з виділеним місцем на 256 символів.
SET @data_path = (SELECT SUBSTRING(physical_name, 1 CHARINDEX('master.mdf', LOWER(physical_name)) - 1)