Създаване на бази данни и таблици в SQL

Създаване на база данни

Готови ли сте да започнете да създавате бази данни и таблици с езика за структурирани заявки ? В тази статия разглеждаме процеса на ръчно създаване на таблици с командите CREATE DATABASE и CREATE TABLE. Ако сте нови за SQL, може да поискате първо да прегледате нашата статия за SQL Basics .

Бизнес изисквания

Преди да седнем на клавиатурата, трябва да гарантираме, че имаме достатъчно разбиране за изискванията на клиента. Какъв е най-добрият начин да получите това прозрение? Разговаряйки с клиента, разбира се! След като седнахме с директора на XYZ за човешки ресурси, научихме, че те са фирма за продажби на приспособления и се интересуват преди всичко от проследяването на информацията за техния персонал по продажбите.

XYZ Corporation разделя продажбите си в източните и западните региони, всеки от които е разделен на много територии, обхванати от отделни търговски представителства. Отдел "Човешки ресурси" би искал да проследи територията, обхваната от всеки служител, както и информацията за заплатите и надзорната структура на всеки служител. За да отговорим на тези изисквания, създадохме база данни, състояща се от три таблици, показани в диаграмата "Единица-връзка" на тази страница.

Избор на платформа за бази данни

Решихме да използваме система за управление на бази данни (или DBMS), която е изградена върху SQL (Structured Query Language). Следователно всички наши команди за създаване на база данни и таблици трябва да бъдат написани със стандартния SQL ANSI.

Като допълнителна полза, използването на съвместим с ANSI SQL ще гарантира, че тези команди ще работят върху всички СУБД, поддържащи стандарта SQL , включително Oracle и Microsoft SQL Server. Ако все още не сте избрали платформа за вашата база данни, опцията " Софтуер за бази данни" ще ви преведе през процеса на подбор.

Създаване на база данни

Нашата първа стъпка е да създадем самата база данни. Много от системите за управление на база данни предлагат серия от опции за персонализиране на параметрите на базата данни на тази стъпка, но нашата база данни позволява само създаване на база данни. Както при всички наши команди, може да поискате да се запознаете с документацията за вашия СУБД, за да определите дали някои разширени параметри, поддържани от вашата специфична система, отговарят на вашите нужди. Да използваме командата CREATE DATABASE за да настроим нашата база данни:

Създайте персонал на DATABASE

Обърнете специално внимание на използваната в горния пример капитализация. Това е често срещана практика сред SQL програмистите да използват всички главни букви за SQL ключови думи като "CREATE" и "DATABASE", докато използват всички малки букви за дефинирани от потребителя имена като името на "персонала". Тези конвенции осигуряват лесна четливост.

Продължете да четете този урок, докато създаваме таблици за нашата база данни.

Научете повече

Ако искате да научите повече за езика за структурирани заявки , прочетете Въведение в SQL или се регистрирайте за нашия безплатен курс за обучение по електронна поща SQL.

Сега, когато проектирахме и създадохме нашата база данни, ние сме готови да създадем трите таблици, използвани за съхраняване на данните за персонала на XYZ Corporation. Ще внедрим таблиците, които сме проектирали в предишната част на този урок.

Създаване на първата ни таблица

Нашата първа таблица се състои от лични данни за всеки служител на нашата компания. Трябва да включим името на всеки служител, заплата, ИД и мениджър. Добра практическа практика е да разделите последните и първите имена в отделни полета, за да опростите търсенето и сортирането на данни в бъдеще. Също така ще следим мениджъра на всеки служител, като добавим препратка към идентификационния номер на служителя на мениджъра във всеки запис на служител. Нека първо да разгледаме желаната таблица на служителите.

Атрибутът ReportsTo съхранява идентификационния номер на мениджъра за всеки служител. От показаните пробни записи можем да определим, че Сю Скампи е мениджър на Том Кендъл и Джон Смит. Няма обаче информация в базата данни за мениджъра на Sue, както е посочено от записа NULL в реда си.

Сега можем да използваме SQL за създаване на таблицата в нашата база данни за персонала. Преди да направим това, нека се уверим, че сме в правилната база данни, като издадем команда USE:

Персонал на USE;

Като алтернатива, "персонала на DATABASE"; команда ще изпълнява същата функция. Сега можем да разгледаме командата SQL, използвана за създаване на нашата таблица на служителите:

CREATE TABLE служители (employeeid INTEGER NOT NULL, фамилия VARCHAR (25) NOT NULL, първо име VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Както при горния пример, имайте предвид, че конвенцията за програмиране диктува, че използваме всички главни букви за SQL ключови думи и малки букви за колони и таблици с потребителски имена. Командата по-горе може да изглежда объркваща отначало, но всъщност има просто структура зад нея. Ето един общ поглед, който може да изчисти нещата:

CREATE TABLE table_name (име на атрибут опции на типовете данни, ..., опции за имена на атрибути);

Атрибути и типове данни

В предишния пример името на таблицата е служител и ние включваме четири атрибута: employeeid, lastname, firstname и reportsto. Типът данни посочва вида информация, която желаем да съхраняваме във всяко поле. Идентификационният номер на служителя е просто число, затова ще използваме типа данни INTEGER както за полетата на служителя, така и за полето за отчети. Имената на служителите ще бъдат символни низове с променлива дължина и не очакваме никой служител да има име или фамилия по-дълъг от 25 знака. Затова ще използваме вида VARCHAR (25) за тези полета.

NULL Стойности

Можем също да посочим NULL или NOT NULL в полето за опции на израза CREATE. Това просто казва на базата данни дали NULL (или празни) стойности са разрешени за този атрибут при добавяне на редове към базата данни. В нашия пример отделът по човешките ресурси изисква за всеки служител да се съхранява идентификационен номер на служител и пълно име. Въпреки това, не всеки служител има мениджър - главният изпълнителен директор се отчита пред никого! - затова разрешаваме NULL записи в това поле. Обърнете внимание, че NULL е стойността по подразбиране и пропускането на тази опция ще позволи имплицитно да позволи NULL стойности за даден атрибут.

Изграждане на останалите таблици

Сега да разгледаме масата на териториите. От бърз поглед върху тези данни изглежда, че трябва да съхраним цяло число и две струни с променлива дължина. Както при нашия предишен пример, не очакваме идентификационният номер на региона да консумира повече от 25 знака. Някои от нашите територии обаче имат по-дълги имена, така че разширяваме допустимата дължина на този атрибут до 40 знака. Да разгледаме съответния SQL:

CREATE TABLE територии (territoryid INTEGER NOT NULL, territory Описание VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Накрая ще използваме таблицата Employee Territories, за да съхраним връзките между служителите и териториите. Подробна информация за всеки служител и територия се съхранява в предишните две таблици. Следователно в тази таблица трябва само да съхраним двете идентификационни номера с цели числа. Ако трябва да разширим тази информация, можем да използваме JOIN в нашите команди за избор на данни, за да получим информация от множество таблици. Този метод за съхранение на данни намалява резервирането в нашата база данни и гарантира оптимално използване на пространството на нашите устройства за съхранение. Ние ще покрием задълбочено командата JOIN в бъдещ урок. Ето SQL кода за изпълнение на финалната маса:

CREATE TABLE работни места (employeeid INTEGER NOT NULL, territoryid INTEGER NOT NULL);

Механизмът SQL осигурява промяна в структурата на база данни след създаване

Ако днес сте особено удивителни, може да сте забелязали, че "случайно" пропуснахме едно от изискванията за проектиране при внедряването на таблиците на базата данни. Директорът по човешките ресурси на XYZ Corporation поиска от базата данни да се проследи информацията за заплатата на служителите и ние пренебрегнахме това в таблиците на базата данни, които създадохме.

Въпреки това, всичко не е загубено. Можем да използваме командата ALTER TABLE, за да добавим този атрибут към съществуващата ни база данни. Искаме да запазим заплатата като целочислена стойност. Синтаксисът е доста подобен на командата CREATE TABLE, тук е:

ALTER TABLE служители ADD заплата INTEGER NULL;

Забележете, че сме задали, че стойностите за NULL са позволени за този атрибут. В повечето случаи няма възможност за добавяне на колона към съществуваща таблица. Това се дължи на факта, че таблицата вече съдържа редове без запис за този атрибут. Следователно СУБД автоматично вмъква стойност NULL, за да запълни празното пространство.

И това обгръща нашия поглед към SQL база данни и процеса на създаване на таблици. Често проверявайте за нови вноски в нашата серия настойнически за SQL. Ако искате да бъдете напомнени по имейл, когато се добавят нови статии към сайта "За бази данни", не забравяйте да се абонирате за нашия бюлетин!