ПредишенСледващото

До този момент, ние молим за таблица с данни и изпълнява команди за извличане на данните, като се има предвид, че тези таблици вече са създадени от някой - това за нас. Това наистина е най-реалистично ситуацията, при малък брой хора, създаване на масата, които след това се използва от други хора. Нашата цел е да покрие първата информация по-широко, а след това преминете към по-тесни въпроси.

В тази глава ще разгледаме създаване, промяна и изтриване на таблици. Всичко това се отнася и за самите таблици, а не данните, съдържащи се в него. Ще или не ще да извършите тези операции сами по себе си, но тяхното концептуално разбиране ще се увеличи вашето разбиране на езика SQL и естеството на масата, който използвате. Тази глава ни представя района, известен като SQL - DDL (Data Definition Language), където се създават обекти SQL бази данни.

Тази глава също така показва друг изглед на обекта на SQL данни - индекс. Индексите са използвани, за да се направи търсене по-ефективно, а понякога и да се направи стойностите се различават един от друг. Те обикновено работят спокойно за вас, но ако се опитате да го сложи в една маса, и те ще бъдат отхвърлени, поради тяхната неуникална, това ще означава, че от другия ред има една и съща стойност за тази област, както и че тази област има уникален индекс или ограничение който предписва уникален. Дискусия на горното, да продължи да глава 18.

TEAM на таблиците

Маси са създадени с Създаване на таблица. Тази команда създава една празна маса - маса без линии. Стойностите са въведени с помощта на INSERT ГСД (виж гл. 15). Създаване на таблица команда се определя основно от тяхната маса, описание на набор от имена на колони, определени в определен ред. Тя също така определя типовете данни и размерите на колоните. Всяка таблица трябва да има поне една колона. Както беше обсъдено в глава 2. Видовете данни се различават значително от програма за програма. За съвместимост със стандарта, всички те трябва да, най-малко, да се поддържа стандартен тип ANSI. Той е описан в допълнение Б.

Тъй пространства се използват за отделни части на SQL команди, те не могат да бъдат част от името на таблицата (или друг обект, такъв като индекс). Долна черта (_) - обикновено се използва за отделни думи в имената на масите.

Стойността зависи от размера на типа аргумент данни. Ако не укажете, системата ви автоматично ще се присвоява стойност на себе си. За числови стойности, това е - най-добрият начин, защото в този случай, всички от вашата подова настилка от този тип ще има същия размер, който ви освобождава от своите основни проблеми, свързани със съвместимостта (виж глава 14.). Освен това, аргументът на размер, за да се използва с някои числени серии, не е прост въпрос. Ако трябва да се съхранява на голям брой, със сигурност се нуждаят от гаранция, че на пода е достатъчно голям, за да ги настанят.

Един тип данни, за които по принцип трябва да укажете размера - ЧАР. размера на аргумента - цяло число, което определя максималния брой на символите, които могат да се настанят област. В действителност, броят на полетата на знака може да е нула (ако областта - NULL) на този номер. По подразбиране, размера на аргумента е 1, което означава, че полето може да съдържа само една буква. Това, разбира се, не е точно това, което искате.

Таблица собственост на потребителя, който ги е създал, и имената на всички маси, собственост на потребителя да се различават един от друг, както и имената на всички графи в таблицата. Отделни маси могат да използват едни и същи имена на колони, дори и ако те принадлежат към един и същи потребител. Един пример за това - град в таблицата със трапезни клиентите и доставчиците. Клиентите не са собственици на масите могат да се отнасят до тези таблици с помощта на името на собственика на масата, последвана от една точка; например таблицата на служителите е създадена, ще се нарече Смит Smith.Employees когато тя спомена някой друг потребител (ние разбираме, че Смит - това идентификатор разрешителни (ID) (ID) информира потребителя (Вашия е позволено ID -. това е вашето него в SQL Това заключение. обсъдено в глава 2, и ще бъде продължена в глава 22).

Тази команда ще създаде таблица Продавачите: Редът на колони на таблицата се определя от реда, по който те се появяват. Те колона не трябва да се споделя с нов ред (което се прави, за четимост), но разделени със запетая.

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

Когато създавате индекс на терена, вашата база данни съхранява съответния ред на стойностите на това поле в зоната на паметта. Да предположим, че нашата маса Клиентите има хиляди записи и искате да се намери клиент с номер = 2999. Тъй като струни няма да се разпорежда, вашата програма ще сканира цялата таблица, ред по ред, като се проверяват всеки път, когато стойността на равенството между половете cnum стойност от 2999. Въпреки това, ако имаше индекс в cnum област. програмата може да достигне 2999 броя на индекса, както и да предостави информация за това как да се намерят най-подходящия ред на таблицата.

Докато индексът значително подобрява ефективността на използване индекс заявка забавя операции DML модификация (например INSERT и изтриване), и индексът заема памет. Ето защо, всеки път, когато създадете таблица, трябва да решите дали да го индекс. Индекси могат да бъдат съставени от няколко полета. Ако не е посочен повече от едно поле за един индекс, вторият е разпоредена в рамките на първия, третия във втория, и така нататък. Ако сте имали първия и последния ден, за да ги в две различни области на масата, бихте могли да създадете индекс, който щеше да рационализира предходното поле в следващия. Това може да се осъществи независимо от използвания метод в последователност колони на таблицата.

Синтаксисът за създаване на индекс - обикновено следното (имайте предвид, че това не е ANSI стандарт): маса, разбира се, вече трябва да е създаден и те трябва да съдържа колоната. Те индекс не може да се използва за нещо друго в базата данни (за всички). След създаването на индекса ще бъде невидим за потребителя. SQL решава кога е необходимо да се отнесе до него и го прави автоматично. Ако, например, масата на клиента обикновено се нарича в продавачите искания на собствените си клиенти, че би било разумно да се създаде индекс в таблицата с snum клиенти. Сега, на продавача, който трябва да бъде в състояние да намери тази таблица собствените си клиентела много бързо.

Уникална индекс

Индексът в предишния пример, за щастие, не предписва уникален, въпреки нашите наблюдения, че това е една от целите на индекса. Продавачът може да има произволен брой клиенти. Все пак, това няма да се случи, ако ние използваме ключовата дума преди ключовата дума уникален индекс. Snum поле като първичен ключ ще бъде първият кандидат за уникален индекс: ЗАБЕЛЕЖКА: Тази команда ще бъде отхвърлена, ако вече имате еднаква стойност в cnum област. Най-добрият начин да се справят с индекси е да ги създаде, веднага след като е създаден на масата, и преди да е от въведените стойности. Също така имайте предвид, че за уникален индекс на повече от един етаж, тя е - комбинация от стойности, всяка от които може да не са уникални. В предишния пример - индиректен начин да получите cnum теренна работа като първичен ключ на таблицата с клиентите. Данни на Guide-Bulgaria.com въздействие върху първични ключове и други по-директно. Ще обсъдим задълбочено този въпрос в глави 18 и 19.

Изтриването на вашия индекс

Главната особеност е, че индексът за тях - така че може да се отстрани. Обикновено потребители не знаят за съществуването на индекса. SQL автоматично определя дали потребителят има право да използва индекса, и ако е така, това, което ви позволява да го използвате. Все пак, ако искате да изтриете индекса, ще трябва да го знаят за тях. Този синтаксис се използва за премахване на индекса:

Маса за смяна, след като бе създаден

TABLE Командата ALTER не е част от стандарта ANSI; но тя - е широко достъпна и е доста смислена форма, въпреки че неговите възможности са малко по-ограничени. Той се използва за промяна на определението на съществуваща таблица. Обикновено тя добавя колони на таблицата. Понякога тя може да премахнете графи или да променяте размера им, както и в някои програми за добавяне или премахване на ограниченията (обсъдени в глава 18). Типично синтаксис за да добавите графа на масата. Колоната ще бъде добавена към стойността NULL за всички редове от таблицата. Новият колоната става последната колона на таблицата в ред. Всъщност, можете да добавите няколко нови колони, разделени със запетаи, в един и същи отбор. Възможно е да изтриете или промените колони. Най-често, промяна в колоната може да е просто увеличаване на техния размер или добавяне (премахване) ограничения. Вашата система трябва да гарантира, че всички промени не са в противоречие със съществуващите данни - например, когато се опитате да добавите ограничение до колоната, която вече е направена разлика в нарушение на това ограничение ще бъде отхвърлена. Най-добре е да го проверите повторно. Най-малко погледнете документацията на вашата система, за да видите, ако той гарантира, че това е причината. Поради комплексния характер на таблицата командата ALTER, вие все още трябва да погледнем в тази част от системната документация, която се отнася до конкретни случаи.

Ако системата ви не поддържа ALTER масата. или ако искате да се избегне да го използвате, можете просто да създадете нова таблица, с необходимите промени, за да създавате и използвате INSERT с SELECT команда * заявка за пренаписване на данните в него от старата таблица. На потребителите, които са получили достъп до старата таблица (виж гл. 22), следва да се предоставя достъп до новата таблица.

отдалечена маса

Трябва да сте собственик (т.е. да бъде създател) на масата, за да може да го премахнете. Така че не се притеснявайте, че може случайно унищожаване на данните си, за SQL ще изисква от вас да първата таблица е празна преди да го премахнете от базата данни. Таблица с редове, разположени в него не може да се отстрани. Вижте Глава 15 за подробности относно това как да изтриете редове от таблица. Синтаксисът за премахване на вашата маса, освен ако не е празна, както следва: При прилагане на тази команда, тя вече не е призната от масата и там е отбор, който може да се даде на този обект. Трябва да се уверите, че масата не е посочен като външен ключ в друга таблица (външни ключове са разгледани в глава 19), както и че не се използва в дефиницията на изглед (глава 20).

Тази команда всъщност не е част от стандартния ANSI, но тя се поддържа от общ и полезна. За щастие, той е по-прост и по тази причина по-последователно, отколкото ALTER масата. ANSI просто няма начин да се определи унищожени или грешни таблици.

Сега вече сте перфектен насочване въз основа на определенията на данни. Можете да създавате, променяте и изтривате таблици. Докато само първата от тези функции - на SQL част на официален стандарт, а други ще се променят с течение на времето, особено - Промяна на таблица. DROP TABLE ви позволява да се отървете от таблици, които са безполезни. Той унищожава само празна маса, и по тази причина не унищожи данни.

Вече знаете за индекси, както и как да създадете и изтриете. SQL не ви дава много контрол върху тях, както и осъзнаването, че използвате доста успешно определя колко бързо трябва да изпълняват различни команди. Индекси - това е един от инструментите, които ви дават възможност да работи директно върху изпълнението на вашите команди в SQL. Ние разгледахме тук индексите да ги разграничава от ограниченията, с които те не могат да бъдат объркани. Ограничения - това е темата на ръководителя 18 и глава 19.

С SQL

1. Напишете Създаване на таблица изявления, които биха довели нашата маса на клиенти. 2. Напишете командата, която ще даде възможност на потребителя бързо да извличам поръчките, групирани по дата на таблицата с поръчки. 3. Ако вече е създаден Поръчки на масата, как можете да направите onum поле, за да бъде уникален (ако приемем, че всички стойности на тока са уникални). 4. Създаване на индекс, който ще разреши всеки продавач за бързо намиране на заповедите му, групирани по дата. 5. Да приемем, че всеки продавач има само един клиент с тази оценка, напишете командата, която ще го разархивирайте. (Вж. Приложение А за отговор).

Подкрепете проекта - споделете линка, благодаря!