Тыюу жана кыскартуунун ортосундагы айырма

Тыюу жана кыскартуунун ортосундагы айырма
Тыюу жана кыскартуунун ортосундагы айырма

Video: Тыюу жана кыскартуунун ортосундагы айырма

Video: Тыюу жана кыскартуунун ортосундагы айырма
Video: Олуячылык жана сынчылык касиет тууралуу маек / Мелис Мураталиев 2024, Июль
Anonim

Тыюу жана кыскартуу

Тыюу жана Кесүү - бул эки SQL (Структураланган суроо тили) билдирүүлөрү, алар Берилиштер базасын башкаруу тутумдарында колдонулат, мында биз маалымат базасынан маалымат жазууларын алып салгыбыз келет. Drop жана Truncate операторлору экөө тең таблицадагы маалыматтарды жана тиешелүү SQL билдирүүсүн алып салышат. Жок кылуу операциясы бул учурда натыйжалуу болбойт, анткени ал таштоо жана кыскартууга караганда көбүрөөк сактагычты колдонот.

Эгерде биз берилиштер базасындагы таблицаны анын бардык маалыматтары менен бирге жокко чыгаргыбыз келсе, SQL Drop операторунун жардамы менен муну оңой аткарууга мүмкүндүк берет. Drop командасы DDL (Data Definition Language) буйругу болуп саналат жана ал учурдагы маалымат базасын, таблицаны, индексти же көрүнүштү жок кылуу үчүн колдонулушу мүмкүн. Ал таблицадагы бүт маалыматты, ошондой эле маалымат базасынан таблицанын структурасын жок кылат. Ошондой эле, биз таблицадагы бардык маалыматтардан жөнөкөй, бирок таблицасыз кутулууну каалайбыз жана мындай сценарийде SQLде Truncate операторун колдоно алабыз. Кыскартуу да DDL буйругу болуп саналат жана ал таблицадагы бардык саптарды жок кылат, бирок келечекте колдонуу үчүн таблица аныктамасын сактайт.

Тыруу буйругу

Мурда айтылгандай, Drop буйругу таблицанын аныктамасын жана анын бардык маалыматтарын, бүтүндүк чектөөлөрүн, индекстерди, триггерлерди жана ошол таблицада түзүлгөн кирүү артыкчылыктарын алып салат. Ошентип, ал бар объектти толугу менен маалымат базасынан алып салат жана башка таблицалар менен болгон мамилелер да буйрукту аткаргандан кийин жараксыз болуп калат. Ошондой эле ал маалымат сөздүгүнөн таблица жөнүндө бардык маалыматты жок кылат. Төмөндө Drop билдирүүсүн таблицада колдонуунун типтүү синтаксиси келтирилген.

ТҮШТҮҮ ТАБЛИЦИ

Жогорудагы Drop буйругунун үлгүсүндөгү маалымат базасынан алып салгыбыз келген таблица атын жөн гана алмаштырышыбыз керек.

Төмөнкү билдирүүнү чет өлкөлүк ачкыч чектөөсү менен мурунтан эле шилтемеленген таблицаны жок кылуу үчүн колдонуу мүмкүн эмес экенин белгилей кетүү маанилүү. Андай учурда, шилтеме берүүчү тышкы ачкыч чектөөсү, же ошол белгилүү таблица адегенде алынып салынышы керек. Ошондой эле, Drop билдирүүсүн маалымат базасындагы тутум таблицаларында колдонууга болбойт.

Тыюу буйругу автоматтык түрдө аткарылуучу билдирүү болгондуктан, бир жолу иштетилген операцияны артка жылдыруу мүмкүн эмес жана эч кандай триггерлер иштебейт. Таблица түшүп калганда, таблицага бардык шилтемелер жараксыз болуп калат, ошондуктан, эгерде биз таблицаны кайра колдонгубуз келсе, аны бардык бүтүндүк чектөөлөрү жана кирүү артыкчылыктары менен кайра түзүү керек. Башка таблицаларга болгон бардык байланыштар дагы кайра жайгаштырылышы керек.

Кыскартуу буйругу

Кыскартуу буйругу DDL буйругу болуп саналат жана ал эч кандай колдонуучу белгилеген шарттарсыз таблицадагы бардык саптарды алып салат жана таблица колдонгон мейкиндикти бошотот, бирок таблица структурасы анын мамычалары, индекстери жана чектөөлөрү менен ошол эле бойдон калат. Кыскартуу таблицанын маалыматтарын сактоо үчүн колдонулган маалымат барактарын бөлүштүрүү аркылуу таблицадагы маалыматтарды жок кылат жана транзакциялар журналында ушул барактарды бөлүштүрүү гана сакталат. Ошентип, ал Delete сыяктуу башка тиешелүү SQL буйруктарына салыштырмалуу транзакция журналынын ресурстарын жана система ресурстарын азыраак колдонот. Ошентип, Truncate башкаларга караганда бир аз тезирээк билдирүү. Төмөндө Кыскартуу буйругунун типтүү синтаксиси келтирилген.

ТАБЛИЦАНЫ КЫСКЫРУУ

Биз жогорудагы синтаксисте дайындарды толугу менен алып салгыбыз келген таблица атын алмаштырышыбыз керек.

Кыскартууну чет өлкөлүк ачкыч чектөөсү менен шилтемеленген таблицада колдонуу мүмкүн эмес. Ал аракет кылганга чейин автоматтык түрдө милдеттенмени колдонот жана андан кийин дагы бир милдеттенмени колдонот, андыктан транзакцияны артка кайтаруу мүмкүн эмес жана эч кандай триггерлер иштебейт. Эгерде биз таблицаны кайра колдонгубуз келсе, маалымат базасындагы бар таблица аныктамасына гана кирүү керек.

Тыюу менен кыскартуунун ортосунда кандай айырма бар?

Түшүртүү жана Кыскартуу буйруктары экөө тең DDL буйруктары, ошондой эле автоматтык түрдө аткаруу билдирүүлөрү, андыктан бул буйруктар аркылуу аткарылган транзакцияларды артка кайтарууга болбойт.

Тыюу жана Кыюу ортосундагы негизги айырмачылык, Drop буйругу таблицадагы бардык маалыматтарды гана жок кылат, ошондой эле бардык шилтемелер менен таблица түзүмүн биротоло жок кылат, ал эми Кесүү буйругу баарын гана жок кылат. таблицадагы саптар жана ал таблица структурасын жана анын шилтемелерин сактайт.

Эгер таблица түшүрүлсө, башка таблицалар менен болгон мамилелер жараксыз болуп, бүтүндүк чектөөлөрү жана кирүү артыкчылыктары да алынып салынат. Ошентип, эгер таблицаны кайра колдонуу талап кылынса, анда ал мамилелер, бүтүндүк чектөөлөрү, ошондой эле мүмкүндүк алуу артыкчылыктары менен кайра түзүлүшү керек. Бирок эгер таблица кыскартылса, таблицанын түзүмү жана анын чектөөлөрү келечекте колдонуу үчүн кала берет, андыктан жогорудагы рекреациялардын бири дагы кайра колдонуу үчүн талап кылынбайт.

Бул буйруктар колдонулганда, аларды колдонуудан этият болушубуз керек. Ошондой эле, биз бул буйруктардын табиятын, алар кантип иштешин жакшыраак түшүнүшүбүз керек, ошондой эле маанилүү нерселердин жетишсиздигин алдын алуу үчүн аларды колдонуудан мурун кылдат пландаштыруу керек. Акыр-аягы, бул эки буйрукту тең маалымат базаларын тез жана оңой тазалоо үчүн колдонсо болот, азыраак ресурстар керектелет.

Сунушталууда: