(
ТауарVARCHAR (20) NOT NULL,
Баға INTEGER NOT NULL,
PRIMARYKEY(
Тауар))
Бағынысты САТЫЛЫМ кестесінде Өріс өрісі үшін негізгі кілт және
Өрістер кестесіне сілтеме тұтастығын қамтамасыз ету үшін Элемент
өрісі үшін сыртқы болады. Негізгі кестедегі байланыс өрісі
көрсетілмегендіктен, кестенің негізгі кілті байланыс үшін
пайдаланылады:
CREATE TABLE
ПРОДАЖИ (НөмірINTEGER
NOT NULL PRIMARY KEY,
Күні DATE,
Тауар VARCHAR (2 0) NOT NULL,
FOREIGN KEY (
Тауар) REFERENCES ТАУАРЛАР)
Негізгі және бағынышты кестелердің ортақ өрістерін анықтау дәл
сәйкес болуы керек. Егер рәміздердің сұрыптау тәртібінде
айырмашылықтар бар болса, байланыс бағандары іс жүзінде бірдей
болмайды, бұл сілтеме тұтастығының бұзылуына әкеледі.
ТАУАРЛАРДЫҢ кестелері мен САТЫЛЫМ арасында байланыс
орнатудың тағы бір мысалы.
Бағынысты кесте бастапқы кілтде мән өзгертілгенде және негізгі
жазбадағы жазбаны жойғанда, сервердің әрекеттерін көрсетеді:
CREATE TABLE
САТЫЛЫМ (НомерINTEGER
NOT NULL PRIMARY KEY,
Күні DATE,
ТауарVARCHAR (2 0) NOT NULL,
CONSTRAINT FK1 FOREIGN KEY (
Тауар) REFERENCES
ТОВАРЫON UPDATE NO ACTION ON DELETE NO ACTION)
Енді ТАУАРЛАР кестесінде осы өнім сатылымы үшін САТЫЛЫМ
кестесінде жазбалар бар болса, Таутар бағанындағы жоюдың немесе
өзгертудің құлдырауы болады. Бұл мысалда сілтеме тұтастығына FK1
атауы берілді.
Деректермен толтырылған кестелер құрылымын өзгерту ең жиі
дерекқордың ерекше жағдайына немесе кестеде бар деректердің
жоғалуына әкелетін ең қауіпті әрекеттердің бірі болып табылады.
Қолданыстағы кестелердің құрылымын өзгерту үшін ALTERTABLE
операторын пайдаланыңыз, оның оңайлатылған синтаксисі төменде
келтірілген:
243
ALTERTABLE<
кесте атауы>
{ [ADD<
баған атауы><деректер түрі> [
NULL| NOTNULL] ]
| [DROP [COLUMN] <
баған атауы>]}
Бір мәлімдемеде кестедегі өзгерістердің ерікті санын орындай
аласыз.
Бар кестені өзгертуге арналған әртүрлі операциялар бір-бірінен
үтірлермен бөлінеді. ALTER TABLE операторы рұқсат береді:
■
Жаңа баған анықтамасын қосу;
■
Кестедегі бағанды өшіру;
■
кестенің немесе бір бағаның тұтастығы атрибуттарын жою;
■
жаңа тұтастық атрибуттарын қосу.
Егер бағанның сипаттамаларын өзгерту, сондай-ақ бағанды жою,
мүмкін болмаса, сәтсіз болуы мүмкін:
■
баған PRIMARY KEY немесе UNIQUE атрибуттарын алады, бірақ
бағандағы ескі мәндер бірегей деректерге қойылатын талаптарды
бұзады;
■
Кестелер арасындағы сілтеме тұтастығын бұзуға алып келген негізгі
немесе шетелдік кілтдің бөлігі ретінде енгізілген қашықтағы баған;
■
бағанда кесте деңгейінде тұтастық шектеулер тағайындалды;
■
баға есептік бағандарда іздеу, триггерлер және өрнектердегі басқа
дерекқор компоненттерінде пайдаланылады. Осылайша, егер қажет
болса, атрибуттарды өзгерту
■
бағанды немесе бағанды жою жағдайында алдымен кесте мен
дерекқордың салдарын өзгерту немесе жою сияқты өзгерістерді
неге әкелуі мүмкін екенін мұқият талдау қажет. Жаңа бағанды қосу:
ALTER TABLE <
кесте атауы>ADD <баған анықтамасы>
Жаңа бүтіндік шегін қосу:
ALTER TABLE <
кесте атауы>ADD [CONSTRAINT <шектеу атауы^
<
бүтіндік анықтамасы>
Бағанды өшіру:
ALTER TABLE <
кесте атауы>DROP <баған атауы>[...,...] бүтіндігін
шектеуді өшіру:
ALTER TABLE <
кесте атауы>DROP <шектеу атауы>
244
Кесте оператор тарапынан жойылады:
DROP TABLE <
кесте атауы>
Мысалы, бағанды келесі пәрмені бар кестеге қосуға болады:
ALTER TABLE KLIENT ADD ADRES VARCHAR(50)
Кестеге тұтастық шектеу қосу (бастапқы кілт) пәрмен арқылы
орындалады:
ALTER TABLE KLIENT
ADD CONSTRAINT PK_ KLIENT
PRIMARY KEY (ID)
Кестені өшіру мысалы:
DROP TABLE KLIENT
Өшіру негізгі кестелер үшін бұғатталуы мүмкін, оларға бағынатын
кестелерде (қазіргі уақытта жойылмайды) осы кестелердің шетелдік
кілтіне сілтемелер бар. Шындығында, негізгі кестені жою сілтеме
тұтастығын бұзады. Сондықтан, барлық бағынды кестелердегі сілтеме
тұтастығы шектеулерін алып тастаңыз немесе қажет болса алдымен
бағынысты кестелерді жойыңыз, содан кейін негізгі кестені жойыңыз.
12.3.
ДЕРЕКТЕРДІ ТАҢДАУ. SELECT ОПЕРАТОРЫ
SELECT
мәлімдемесі DML сұрау тілінің DML бөлімшесіне сілтеме
жасайды. Бұл ең күрделі және қуатты SQL операторларының бірі. Бұл
оператор өте күрделі және дамыған құрылымға ие. Дерекқорлармен
қандай да бір түрде байланысқан кез келген маманға белгілі болуы
керек. Сондықтан осы оқу құралы оған үлкен көңіл бөледі.
12.1-
суретте келесі талқылауға мысал ретінде пайдаланылатын
дерекқор үлгісі көрсетілген.
Тауарлар кестесі үстелдермен байланысты, содан кейін тауарлық
өріс бірден-көпге дейін. Осыған ұқсас, Клиенттер кестесі Клиент өрісіне
арналған біріктірілген байланыспен Сатылым кестесіне байланысты.
Сұранысты орындау нәтижелерін неғұрлым нақты көрсету үшін біз
аяқталған кестелерді мысал ретінде пайдаланамыз (12.2-сурет).
245
Достарыңызбен бөлісу: |