Деректерді айқындап сұрауды пайдалану арқылы кестелерді немесе индекстерді жасау немесе өзгерту

SQL көрінісінде деректерді айқындау сұрауларын жазу арқылы кестелерді, шектеулерді, индекстерді және қатынастарды жасауға және өзгертуге болады.

Бұл мақалада деректерді айқындап сұрауларды және оларды кестелер, индекстер, шектеулер және қатынастар жасау үшін қалай пайдалану керектігін түсіндіреді. Сондай-ақ, бұл мақала деректерді айқындап сұрауды қашан қолдану керектігін шешуге көмектеседі.

Ескерту : Веб-дерекқорда мына іс рәсімдерін пайдалану мүмкін емес.

Бұл мақалада

Шолу

Кестені жасау немесе өзгерту

Индекс жасау

Шектеуді немесе қатынасты жасау

Шолу

Деректерді айқындап сұраудың басқа сұраулардан ерекшелігі деректерді шығарып алмайтындығында болып табылады. Оның орнына деректерді айқындап сұрау дерекқор нысандарын жасау, өзгерту немесе жою үшін деректерді айқындау тілін пайдаланады.

Ескерту : Деректерді айқындау тілі (DDL) SQL тілінің бір бөлігі болып табылады.

Деректерді айқындап сұраулар өте қолайлы бола алады. Дерекқор схемасының бөліктерін жай ғана кейбір сұрауларды іске қосу арқылы тұрақты түрде жоюға және қайта жасауға болады. SQL нұсқауларымен таныс болсаңыз және белгілі бір кестелерді, шектеулерді, индекстерді немесе қатынастарды жоюды және қайта жасауды жоспарласаңыз, деректерді айқындап сұрауды пайдалануға болады.

Ескерту : Дерекқор нысандарын өзгерту үшін деректерді айқындап сұрауларды пайдалану тәуекелді болуы мүмкін, себебі әрекеттер растау тілқатысу терезелері арқылы жүзеге аспайды. Егер қате жіберсеңіз, деректерді жоғалтуыңыз немесе кесте жасақтамасын ұқыпсыздықтан өзгертіп алуыңыз мүмкін. Дерекқорыңыздағы нысандарды өзгерту үшін деректерді айқындап сұрауын пайдаланғанда мұқият болыңыз. Егер пайдаланылатын дерекқорды сақтауға жауапты болмасаңыз, сізге деректерді айқындап сұрауды іске қосардың алдында, дерекқор әкімшісімен ақылдасу керек.

Маңызды : Деректерді айқындап сұрауды іске қосардың алдында барлық кестелердің сақтық көшірмесін жасаңыз.

DDL кілт сөздері

Кілт сөз

Қолданыс

ЖАСАУ

Әлі жоқ индексті немесе кестені жасайды.

ALTER

Бар кестені немесе бағанды өзгертеді.

DROP

Бар кестені, бағанды немесе шектеуді жояды.

ADD

Кестеге баған немесе шектеу қосады.

COLUMN

ADD, ALTER немесе DROP нұсқауларымен пайдаланылады

CONSTRAINT

ADD, ALTER немесе DROP нұсқауларымен пайдаланылады

INDEX

CREATE нұсқауымен бірге пайдаланылады

TABLE

ALTER, CREATE немесе DROP нұсқауымен бірге пайдаланылады

Беттің жоғарғы жағы

Кестені жасау немесе өзгерту

Кестені жасау үшін, CREATE TABLE пәрменін пайдаланасыз. CREATE TABLE пәрменінің төмендегідей синтаксисі болады:

CREATE TABLE кесте_атауы 
(1-өріс түрі [(өлшем)] [NOT NULL] [1-индекс]
[, 2-өріс түрі [(өлшем)] [NOT NULL] [2-индекс]
[, ...][, CONSTRAINT 1-шектеу [, ...]])

CREATE TABLE пәрменінің өзі және кестенің аты CREATE TABLE пәрменінің талап етілетін элементтері болып табылады, бірақ әдетте кестенің кейбір өрістерін немесе басқа жақтарын айқындағыңыз келуі мүмкін. Мына қарапайым мысалға қарайық.

Сіздің қолданыстағы сатып алынатын көліктердің атын, жылын және бағасын сақтау үшін кесте жасауыңыз қажет деп ұйғарайық. Сіздің атына 30 таңбаға дейін, ал жылға 4 таңбаға дейін рұқсат бергіңіз келеді. Кесте жасауға деректерді айқындап сұрауын пайдалану үшін төмендегілерді орындаңыз:

Ескерту : Деректерді айқындап сұраудың іске қосылуы үшін, алдымен дерекқор мазмұнын қосуыңыз керек:

  • Хабарлау тақтасындағы Мазмұнды қосу пәрменін таңдаңыз.

Кесте жасау

  1. Жасау қойындысындағы Макрос және код тобынан Сұрау құрастырушысы параметрін таңдаңыз.

  2. Кестені көрсету тілқатысу терезесін жабыңыз.

  3. Жасақтамақойындысындағы Сұрау түрі тобынан Деректерді анықтау түймешігін басыңыз.

    Құрастыру торы жасырынады, ал SQL көрінісінің нысандық қойындысы көрсетіледі.

  4. Төмендегі SQL нұсқасын енгізіңіз:

    CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

  5. Жасақтама қойындысының Нәтижелер тобында Жегу түймешігін нұқыңыз.

Кестені өзгерту

Кестені өзгерту үшін, ALTER TABLE пәрменін пайдаланасыз. Бағандарды немесе шектеулерді қосу, өзгерту немесе жою үшін, ALTER TABLE пәрменін пайдалануға болады. ALTER TABLE пәрменінің төмендегідей синтаксисі болады:

ALTER TABLE table_name predicate

баяндауыш төмендегілердің кез келгенінің бірі болатын жерде:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Сіздің әр көліктің күйі туралы мәліметті сақтау үшін 10 таңбалы мәтін өрісін қосқыңыз келеді деп ұйғарайық. Төмендегілерді орындай аласыз:

  1. Жасау қойындысындағы Макрос және код тобынан Сұрау құрастырушысы параметрін таңдаңыз.

  2. Кестені көрсету тілқатысу терезесін жабыңыз.

  3. Жасақтамақойындысындағы Сұрау түрі тобынан Деректерді анықтау түймешігін басыңыз.

    Құрастыру торы жасырынады, ал SQL көрінісінің нысандық қойындысы көрсетіледі.

  4. Төмендегі SQL нұсқасын енгізіңіз:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

  5. Жасақтама қойындысының Нәтижелер тобында Жегу түймешігін нұқыңыз.

Беттің жоғарғы жағы

Индекс жасау

Индекс немесе бар кестені жасау үшін, CREATE INDEX пәрменін пайдаланасыз. CREATE INDEX пәрменінің төмендегідей синтаксисі болады:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Ең қажетті элементтері CREATE INDEX пәрмені, индекстің атауы, ON аргументі, индекстелетін өрістері бар кестенің атауы және индекске қосылатын өрістердің тізімі болып табылады.

  • DESC аргументі индекстің индекстелетін өріске арналған негізгі мәндерді іздейтін немесе индекстелген өрісті кему ретімен сұрыптайтын сұрауларды жиі іске қосқан жағдайда қолайлы болатын кему ретімен құрылуына себепші болады. Әдепкі бойынша, индекс өсу ретімен құрылады.

  • WITH PRIMARY аргументі индекстелген өрісті немесе өрістерді кестенің негізгі кілт ретінде бекітеді.

  • WITH DISALLOW NULL аргументі индекстің индекстелген өріске енгізілетін мәнді талап етуіне себепші болады — яғни, бос мәндерге тыйым салынады.

Сізде сатып алғыңыз келетін қолданыстағы көліктердің атын, жылын, бағасын және күйін сақтайтын Көліктер деп аталатын кесте бар деп ұйғарайық. Сондай-ақ, кесте үйкейді және сұрауларға жыл өрісін жиі қосасыз делік. Төмендегі іс рәсімі арқылы сұрауларыңыздың нәтижелерді жылдам беруіне көмектесу үшін Жыл өрісінде индекс жасауыңызға болады:

  1. Жасау қойындысындағы Макрос және код тобынан Сұрау құрастырушысы параметрін таңдаңыз.

  2. Кестені көрсету тілқатысу терезесін жабыңыз.

  3. Жасақтамақойындысындағы Сұрау түрі тобынан Деректерді анықтау түймешігін басыңыз.

    Құрастыру торы жасырынады, ал SQL көрінісінің нысандық қойындысы көрсетіледі.

  4. Төмендегі SQL нұсқасын енгізіңіз:

    CREATE INDEX YearIndex ON Cars (Year)

  5. Жасақтама қойындысының Нәтижелер тобында Жегу түймешігін нұқыңыз.

Беттің жоғарғы жағы

Шектеуді немесе қатынасты жасау

Шектеу мәндер енгізілгенде өріс немесе өріс тіркесімдері кездесетін логикалық шартты құрады. Мысалы, UNIQUE шектеуі шектелген мәннің өріске арналған бар мәнді көшіретін мәнді қабылдауына жол бермейді.

Қатынас — мәннің шектеулі өріске немесе өрістер тіркесіміне енгізілетінін анықтау үшін, басқа кестедегі өрістің немесе өрістер тіркесімінің мәндеріне сілтеме жасайтын шектеу түрі. Шектеудің қатынасын анықтау үшін арнайы кілт сөзді пайдаланбайсыз.

Шектеуді жасау үшін, CREATE TABLE немесе ALTER TABLE пәрменіндегі CONSTRAINT тармағын пайдаланасыз. CONSTRAINT тармағының екі түрі бар: біреуі бір өрісте шектеу жасауға арналған және екіншісі бірнеше өрісте шектеу жасауға арналған.

Бір өрісті шектеулер

Бір өрісті CONSTRAINT тармағы шектелетін және төмендегідей синтаксисі бар өріс анықтамасын бірден орындайды:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Сізде сатып алғыңыз келетін қолданыстағы көліктердің атын, жылын, бағасын және күйін сақтайтын Көліктер деп аталатын кесте бар деп ұйғарайық. Сондай-ақ, көліктің күйіне арналған мәнді енгізуді жиі ұмытасыз және әрдайым осы ақпаратты жазып алғыңыз келеді делік. Төмендегі іс рәсімін пайдалана отырып, бос өріс қалдырмай, Күй өрісінде шектеу жасауыңызға болады:

  1. Жасау қойындысындағы Макрос және код тобынан Сұрау құрастырушысы параметрін таңдаңыз.

  2. Кестені көрсету тілқатысу терезесін жабыңыз.

  3. Жасақтамақойындысындағы Сұрау түрі тобынан Деректерді анықтау түймешігін басыңыз.

    Құрастыру торы жасырынады, ал SQL көрінісінің нысандық қойындысы көрсетіледі.

  4. Төмендегі SQL нұсқасын енгізіңіз:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

  5. Жасақтама қойындысының Нәтижелер тобында Жегу түймешігін нұқыңыз.

Енді кішкене уақыттан кейін бірдей болуға тиісті «Шарт» өрісінде көптеген ұқсас мәндердің бар екенін байқап қалдыңыз деп ұйғарайық. Мысалы, кейбір көліктердің «Шарт» мәні ескі, ал басқаларының мәні нашар болып келеді.

Ескерту : Қалған іс рәсімдерін орындау қажет болса, бұған дейінгі қадамдарда жасалған «Көліктер» кестесіне кейбір жарамсыз деректерді енгізіңіз.

Мәндер сәйкес болуы үшін, оларды тазалағаннан кейін көлік күйлеріне қолданылатын мәндердің барлығын қамтитын «Шарт» деп аталатын өрісі бар «Көлік» атты шарт кестесін жасауға болады:

  1. Жасау қойындысындағы Макрос және код тобынан Сұрау құрастырушысы параметрін таңдаңыз.

  2. Кестені көрсету тілқатысу терезесін жабыңыз.

  3. Жасақтамақойындысындағы Сұрау түрі тобынан Деректерді анықтау түймешігін басыңыз.

    Құрастыру торы жасырынады, ал SQL көрінісінің нысандық қойындысы көрсетіледі.

  4. Төмендегі SQL нұсқасын енгізіңіз:

    CREATE TABLE CarCondition (Condition TEXT(10))

  5. Жасақтама қойындысының Нәтижелер тобында Жегу түймешігін нұқыңыз.

  6. ALTER TABLE нұсқауын пайдаланып кестеге бастапқы кілт жасаңыз:

    ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY

  7. Көліктер кестесінің Күй өрісіндегі мәндерді жаңа Көліктер кестесіне енгізу үшін төмендегі SQL сұрауын SQL көрінісінің нысандық қойындысына теріңіз:

    INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

    Ескерту : Бұл қадамдағы SQL нұсқауы үстеме сауалы болып табылады. Деректерді айқындап сұраудан ерекше қосымша сұрау үтірлі нүктемен аяқталады.

  8. Жасақтама қойындысының Нәтижелер тобында Жегу түймешігін нұқыңыз.

Шектеуді пайдаланып қатынас жасау

Көліктер кестесінің Күй өрісіне енгізілген жаңа мәннің Көлік күйі кестесіндегі Күй өрісінің мәніне сәйкес келтіру үшін төмендегі іс рәсімі арқылы Күй деп аталатын өрісте Көлік күйі мен Көліктер кестелерінің арасында қатынас жасауыңызға болады:

  1. Жасау қойындысындағы Макрос және код тобынан Сұрау құрастырушысы параметрін таңдаңыз.

  2. Кестені көрсету тілқатысу терезесін жабыңыз.

  3. Жасақтама қойындысындағы Сұрау түрі тобынан Деректерді анықтау түймешігін басыңыз.

    Құрастыру торы жасырынады, ал SQL көрінісінің нысандық қойындысы көрсетіледі.

  4. Төмендегі SQL нұсқасын енгізіңіз:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Күйі)

  5. Жасақтама қойындысының Нәтижелер тобында Жегу түймешігін нұқыңыз.

Бірнеше өрісті шектеулер

Бірнеше өрісті CONSTRAINT тармағын өрісті анықтау тармағының сыртында ғана пайдалануға болады және оның синтаксисі төмендегідей болады:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Көліктер кестесі туралы екінші мысалды көрейік. Көліктер кестесіндегі екі жазбада аты, жылы, шарты және бағасы мәндерінің жинағы бірдей еместігін тексергіңіз келеді делік. Төмендегі іс рәсімі арқылы осы өрістерге қолданылатын UNIQUE шектеуін жасауға болады:

  1. Жасау қойындысындағы Макрос және код тобынан Сұрау құрастырушысы параметрін таңдаңыз.

  2. Кестені көрсету тілқатысу терезесін жабыңыз.

  3. Жасақтамақойындысындағы Сұрау түрі тобынан Деректерді анықтау түймешігін басыңыз.

    Құрастыру торы жасырынады, ал SQL көрінісінің нысандық қойындысы көрсетіледі.

  4. Төмендегі SQL мағлұмдамасын енгізіңіз:

    ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (аты, жылы, күйі, бағасы)

  5. Жасақтама қойындысының Нәтижелер тобында Жегу түймешігін нұқыңыз.

Беттің жоғарғы жағы

Дағдыларды жетілдіру
Оқыту курсымен танысыңыз
Жаңа мүмкіндіктерге бірінші болып қол жеткізу
Office Insider бағдарламасына қосылу

Осы ақпарат пайдалы болды ма?

Пікіріңіз үшін рақмет!

Пікіріңізге рақмет! Сізді Office қолдау көрсету қызметіндегі агенттердің бірімен байланыстырған жөн болуы мүмкін.

×