SQL-оператор створення таблиці - із прикладом синтаксису

SQL - одна з найнадійніших та найпростіших мов запитів. Він забезпечує чіткий синтаксис, який легко читається, не абстрагуючи надто багато значення функціоналу.

Якщо вам потрібна історія мови, а також цікаві факти, ознайомтесь із вступною частиною моєї статті «Заява про оновлення SQL».  

У цій статті ми розглянемо важливі частини створення таблиці в SQL. Мені вподобаний "смак" SQL - це SQL Server, але інформація про створення таблиці є досить повсюдною у всіх варіаціях SQL.  

Якщо ви ніколи не використовували SQL або не знаєте, що таке таблиця, не бійтеся! Коротко (і в цілому) таблиця - це об’єкт бази даних, який вміщує або містить усі дані в межах цієї частини бази даних. Він зберігає ці дані в іменованих стовпцях і пронумерованих рядках, що не є незнайомим, якщо ви коли-небудь використовували будь-яку програму електронних таблиць. Кожен рядок представляє цілий запис бази даних.

Якби дані були у формі ящиків, то таблиця була б розділом складських полиць, в яких ми зберігаємо ці ящики.

Я значно спрощую пояснення, і в таблицях SQL є набагато більше, але це виходить за рамки цієї статті. Якщо ви прагнете отримати більш глибоке пояснення таблиць, я закликаю вас заглибитися в документацію Microsoft Database Design.

Перш ніж ми навчимося створювати таблицю, важливо дізнатися, які типи даних можуть зберігати ці стовпці та рядки.

Типи даних

Таблиці SQL можуть містити текст, цифри, комбінацію тексту та цифр, а також зображення та посилання.

Створюючи нашу таблицю, ми визначаємо тип даних, які будуть містити її рядки та стовпці. Ось загальна класифікація даних:

  • Приблизна цифра
  • Струни
  • Дата, час
  • Рядки символів Unicode
  • Точна цифра
  • Інший

Нижче я перелічу деякі найбільш часто використовувані типи даних, але якщо ви хочете отримати більше інформації про всі типи даних, я запрошую вас ознайомитися з цією вичерпною статтею про кожен тип від Microsoft.

Ось найбільш часто використовувані типи даних з мого досвіду, без певного порядку:

  • char (size) - рядок фіксованої довжини, який може містити літери, цифри, спеціальні символи
  • varchar (size) - рядок змінної довжини, який може містити літери, цифри та спеціальні символи
  • boolean - Нуль (або значення, що дорівнюють 0) хибне, ненульове - істинне
  • int ( розмір необов’язковий ) - число довжиною до 10 символів, приймає негативні та додатні числа
  • bigint ( розмір необов’язковий ) - число довжиною до 19 символів, приймає негативні та позитивні нумератори
  • float (size, d) - число із загальним розміром числа, представленим розміром та кількістю символів після десяткового числа, представленого d
  • дата - дата у форматі РРРР-ММ-ДД
  • дата-час - час у форматі РРР-ММ-ДД год: мм: сс
  • time - час у форматі hh: mm: ss

Добре, тепер, коли ми знаємо, які типи даних можуть містити рядки та стовпці, давайте займемось цікавими частинами!

Створення таблиці

Перш ніж ми почнемо, важливо зазначити, що я буду наводити всі свої приклади незалежно від будь-якої програми.

Однак, якщо ви хочете почати писати запити, і ви не впевнені, з чого почати, загляньте до SQL Server Management Studio. Це безкоштовна, надійна програма, яка широко використовується та підтримується у спільноті.

Крім того, є кілька варіантів, включаючи DB Fiddle, які дозволяють створювати схеми та писати запити прямо у вашому браузері.  

Почнемо з простого твердження для створення базової таблиці:

CREATE TABLE table_name ( column1_name datatype, column2_name datatype, column3_name datatype, column4_name datatype, column5_name datatype,)

Існують інші параметри, які ми можемо додати після datatypeзбільшення стовпців:

  • NOT NULL- передача цього параметра гарантує, що стовпець не може містити NULLзначення
  • UNIQUE - передача цього параметра перешкоджатиме стовпчику зберігати одне і те ж значення більше одного разу
  • UNIQUE KEY- передача цього параметра позначить цей стовпець як унікальний ідентифікатор. По суті, це поєднання попередніх двох параметрів.

Зараз ми збираємося створити таблицю (з назвою doggo_info, яка повинна відповідати стандартам ідентифікаторів баз даних) для зберігання інформації про мешканців Woof Woof Retreat, вигаданого дитячого садка, про якого я тільки що думав :)

CREATE TABLE doggo_info ( ID int UNIQUE KEY, Name varchar(50) NOT NULL, Color varchar(50), Breed varchar(50), Age int, Weight int, Height int, Fav_Food varchar(100), Fav_Toy varchar(100), Dislikes varchar(500), Allergies varchar(500) NOT NULL )

І ось новенька таблиця, яку ми щойно створили:

Ім'яКолірПородаВікВагаВисотаFav_FoodFav_ToyНе подобаєтьсяАлергія

Ви помітите, що наша таблиця повністю порожня, і це тому, що ми ще не додали до неї жодних даних. Це не виходить за рамки цієї статті, але я хотів, щоб ви знали про це.

Створіть таблицю з існуючої таблиці

Також можна створити нову таблицю на основі існуючої таблиці.

Це досить просто і не вимагає набагато більше синтаксису. Нам потрібно вибрати таблицю та стовпці для "копіювання" з:

CREATE TABLE new_table_name AS SELECT column1, column2, column3, column4 (use * to select all columns to be added to the new_table) FROM current_table_name WHERE conditions_exist

Отже, для доцільності, я додав деякі дані до нашої doggo_infoтаблиці, і тепер це виглядає як приклад нижче:

Ім'яКолірПородаВікВагаВисотаFav_FoodFav_ToyНе подобаєтьсяАлергія
ромашкачервонийстандартна такса1146гранульований аромат лососястислий куляптахи, що летять над дворомкоти, ванни, чистота
начальникчорний / засмаглийротвейлер34117буквально що завгодномотузковий буксиртримаючись на диваніслухати, поводитись, не шльопати на все
саммілегкий медзолотистий ретривер94619дріблі з ароматом яловичиниїї ліжкошалених цуценятніхто не відомий

Тепер ми можемо створити іншу таблицю на основі даних, що є в нашій doggo_infoтаблиці, виконавши запит нижче:

CREATE TABLE puppies_only AS SELECT * FROM doggo_info WHERE Age < 4

Ми хочемо створити нову таблицю з усіма стовпцями doggo_infoтаблиці, але лише там, де значення Ageменше 4. Після запуску цього запиту наша нова таблиця буде виглядати так:

Ім'яКолірПородаВікВагаВисотаFav_FoodFav_ToyНе подобаєтьсяАлергія
ромашкачервонийстандартна такса1146гранульований аромат лососястислий куляптахи, що летять над дворомкоти, ванни, чистота
начальникчорний / засмаглийротвейлер34117буквально що завгодномотузковий буксиртримаючись на диваніслухати, поводитись, не шльопати на все

Сподіваюсь, ви зрозумієте, наскільки потужним може бути це твердження. Кілька рядків у нашому запиті ми по суті скопіювали дані з однієї таблиці в іншу, але лише ті рядки, які ми хотіли.  

Це не лише зручний інструмент, який можна мати у своєму поясі інструментів розробника - він заощадить вам незліченну кількість часу, коли вам потрібно переміщати дані по таблицях.

Підведенню

Тепер, коли ви знаєте, як створити (або скопіювати) таблицю в SQL незалежно від ситуації, з якою ви зібралися, ви можете почати заповнювати стовпці та рядки даними для зберігання!

CREATE TABLEЗаява є надзвичайно корисним і потужним. Ви готові почати використовувати його добре.

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

Поки ви там, чому б не підписатись на мій бюлетень? Ви можете зробити це у верхньому правому куті головної сторінки блогу. Я люблю періодично надсилати цікаві статті (мої та інші), ресурси та інструменти для розробників.

Якщо у вас є запитання щодо цієї статті або просто загалом, повідомте мене - прийдіть, привітайтеся у Twitter або будь-якому іншому моєму акаунті в соціальних мережах, який ви знайдете під інформаційним бюлетенем, підписавшись на головній сторінці мого блогу або в моєму профілі тут за адресою fCC :)

Гарного дня! Щасливого навчання та щасливого кодування, друже!