ER диаграмаас хүснэгтэн загварт шилжих

Өгөгдлийн сантай ажиллах нь хүснэгт болон тэдгээрийн агуулагдах өгөгдлийг өөрчлөхтэй шууд холбоотой. Гэхдээ эхлэхээсээ өмнө хүснэгтүүдийг үүсгэх ёстой. Энэ үйл явцыг автоматжуулахын тулд "ХҮСНЭГТ үүсгэх" гэсэн тусгай програм байдаг.

Эхний зүйл!

MS SQL "CREATE TABLE" командыг ашиглан хүснэгт үүсгэх үйл явцыг ойлгохын өмнө функцийг ашиглахаасаа өмнө юу мэдэх хэрэгтэйг анхаарч үзэх нь зүйтэй.

Юуны өмнө та хүснэгтийн нэрийг олох хэрэгтэй - энэ нь мэдээллийн санд байгаа бусадтай харьцуулахад өвөрмөц байх ёстой бөгөөд хэд хэдэн дүрмийг дагаж мөрдөх ёстой. Нэр нь (a-z) үсгээр эхэлж, дараа нь ямар ч үсэг, тоо, доогуур зураас байх ёстой бөгөөд үүссэн хэллэг нь хадгалагдсан үг байж болохгүй. Хүснэгтийн нэрний урт нь 18 тэмдэгтээс хэтрэхгүй байх ёстой.

Нэрийг нь шийдсэний дараа та бүтцийг боловсруулах хэрэгтэй: баганын нэрийг гаргаж, тэдгээрт ашигласан өгөгдлийн төрөл, аль талбарыг бөглөх ёстой талаар бодож үзээрэй. Энд гадаад болон үндсэн түлхүүрүүдийн талбарууд, мөн өгөгдлийн утгын боломжит хязгаарлалтыг нэн даруй тодорхойлох нь зүйтэй.

Хүснэгтийн үлдсэн нюансуудыг маш амархан засч залруулах боломжтой тул хүснэгт үүсгэх үе шатанд тэдгээрийг бүрэн бодож амжаагүй байж магадгүй юм.

Синтакс

Хүснэгтийн бүтцийг боловсруулсны дараа та түүнийг бүтээх ажлыг үргэлжлүүлж болно. Үүнийг "CREATE TABLE" SQL функцийг ашиглан маш энгийнээр хийж болно. Үүнд хэрэглэгч өмнө нь зохион бүтээсэн хүснэгтийн нэр, баганын жагсаалтыг тус бүрийн төрөл, нэрийг зааж өгөх шаардлагатай. Функцийн синтакс нь дараах байдалтай байна.

ХҮСНЭГТ ҮЗҮҮЛЭХ хүснэгтийн нэр
((баганын_нэр өгөгдлийн төрөл …| хүснэгтийн_хязгаарлалт)
[,(баганын_нэр өгөгдлийн төрөл …| хүснэгтийн_хязгаарлалт)]…)

Функцийг бүтээхэд ашигласан аргументууд нь дараахь зүйлийг илэрхийлнэ.

  • хүснэгтийн нэр - хүснэгтийн нэр
  • баганын_нэр - баганын нэр
  • өгөгдлийн төрөл - энэ талбарт ашигласан өгөгдлийн төрөл
  • DEFAULT нь баганад хэрэглэгддэг өгөгдмөл илэрхийлэл юм.

Мөн өөр хоёр функцын аргумент ашиглах боломжтой:

  • баганын_хязгаарлалт - баганын параметрүүд
  • table_constraint - хүснэгтийн параметрүүд

Тэдгээрийн дотор хэрэглэгч ажилд шаардагдах хязгаарлалт эсвэл хүснэгтийг бөглөх нөхцлийг зааж өгч болно.

Хүснэгт үүсгэх онцлог

Функц бүхий асуулга бичихдээ заримдаа талбаруудыг бөглөх дүрмийг тогтоох шаардлагатай байдаг. Үүнийг хийхийн тулд та тодорхой нөхцлүүдийг тодорхойлсон тусгай функцийн шинж чанаруудыг нэмэх хэрэгтэй.

Нүдэнд хоосон утгатай эсэхийг тодорхойлохын тулд баганын нэр, төрлийг зааж өгсний дараа NULL (хоосон утга байж болно) эсвэл NOT NULL (талбарыг бөглөх ёстой) гэсэн түлхүүр үгсийн аль нэгийг оруулах хэрэгтэй.

Хүснэгт үүсгэхдээ ихэнх тохиолдолд хоёр ижил бичлэгтэй байхаас зайлсхийхийн тулд бичлэг бүрийг нэгтгэх хэрэгтэй. Үүнийг хийхийн тулд мөрийн дугаарыг ихэвчлэн ашигладаг. Мөн хэрэглэгчээс мэдэхийг шаардахгүйн тулд сүүлийн дугаарХүснэгтэд байгаа бол "ХҮСНЭГТ ҮЗҮҮЛЭХ" функцэд үндсэн түлхүүр баганыг бичихэд хангалттай. түлхүүр үгХаргалзах талбарын дараа "Үндсэн түлхүүр". Ихэнх тохиолдолд хүснэгтүүд хоорондоо холбогддог үндсэн түлхүүр юм.

Үндсэн түлхүүртэй холбохыг баталгаажуулахын тулд "ГАДААД ТҮЛХҮҮР" гадаад түлхүүрийн шинж чанарыг ашиглана. Энэ шинж чанарыг баганад зааж өгснөөр та энэ талбарт ижил эсвэл өөр хүснэгтийн үндсэн түлхүүр баганад байгаа утгын аль нэгэнд тохирох утгыг агуулж болно. Ингэснээр өгөгдлийн тууштай байдлыг хангах боломжтой.

Тодорхой багц эсвэл тодорхойлолтын эсрэг шалгахын тулд та CHECK шинж чанарыг ашиглах хэрэгтэй. Энэ нь функцын аргументуудын жагсаалтад хамгийн сүүлд бичигдсэн бөгөөд хувийн параметртэй байдаг логик илэрхийлэл. Үүний тусламжтайгаар та боломжит утгуудын жагсаалтыг хязгаарлаж болно, жишээлбэл, "Хүйс" хүснэгтийн талбарт зөвхөн "M" ба "F" үсгүүдийг ашиглана.

Үзүүлсэн функцүүдээс гадна функц нь илүү олон онцлог шинж чанартай байдаг ч практикт тэдгээр нь хамаагүй бага ашиглагддаг.

Жишээ

Функцийн ажиллах зарчмыг бүрэн ойлгохын тулд CREATE TABLE (SQL) хэрхэн ажилладаг талаар практик дээр авч үзэх нь зүйтэй. Доорх жишээ нь зурагт үзүүлсэн хүснэгтийг үүсгэдэг.

Хүснэгт үүсгэх захиалгат
(ID CHAR(10) NULL БИШ Үндсэн түлхүүр,
Захиалгат_нэр CHAR(20),
Захиалгат_хаяг CHAR(30),
Захиалгат_хотын CHAR(20),
Захиалгат_улсын CHAR(20),
ArcDate CHAR(20))

Таны харж байгаагаар параметр боломжит байхгүйНүдний утгыг (NULL) үндсэн утга учир орхиж болно.

Хоосон хүснэгтүүдийг үүсгэсний дараа дараагийн логик алхам бол тэдгээрийг өгөгдлөөр дүүргэж, өгөгдлийг шинэчлэх явдал юм. Transact-SQL-д үүнд зориулсан хэд хэдэн мэдэгдэл байдаг: INSERT - ШИНЭЧЛЭХ.

Гэсэн хэдий ч дизайны хожуу үе шатанд хүснэгтийн схемийг өөрөө өөрчлөх шаардлагатай болдог. Жишээлбэл, баганын үндсэн түлхүүр эсвэл өгөгдлийн төрөл өөрчлөгдсөн бол. CREATE TABLE-ийн тусламжтайгаар хуучин хүснэгтүүдийг устгахгүй, дахин үүсгэхгүйн тулд зөв параметртэй ALTER TABLE хэллэгийг ашигладаг. Эдгээр гурван бүтцийн хэрэглээг доор авч үзнэ.

Хүснэгтүүдийг дүүргэх

Та CREATE TABLE хэллэгийг ашиглан хүснэгтийг өгөгдөлөөр дүүргэж болно, гэхдээ илүү үр дүнтэй арга бол хүснэгт үүсгэхийг салгаж, бөглөх явдал юм, ялангуяа SQL-д анхлан суралцаж буй хүмүүст:

  • харааны хувьд илүү тод;
  • Хүснэгтүүдийг үе шаттайгаар бөглөх нь илүү тохиромжтой.

Дараах хүснэгтийг харахын тулд:

ID. Түрээслэгч

Төрсөн өдөр

Орон сууцны дугаар

Имэйл хаяг

Алексин. V.V.

Горбунов Д.Д.

[имэйлээр хамгаалагдсан]

Симонова К.Р.

Дормитотова К.С.

[имэйлээр хамгаалагдсан]

Та үүнийг ашиглан үүсгэх хэрэгтэй болно Хүснэгт үүсгэх INSERT хэллэгийг ашиглан бөглөнө үү. Дараагийн зааварБидний аль хэдийн үүсгэсэн гэрийн андуудын хүснэгтэд нэг мөр нэмнэ:

Устгах өмнөх хувилбар tables DROP TABLE housemates; -- Хүснэгт үүсгэх. CREATE TABLE housemates(housemeateID int NOT NULL CONSTRAINT primary_id PRIMARY KEY, housemateName nvarchar(30) NOT NULL, BithDate date NOT NULL, apartment number int NOT NULL, Email nvarchar(30)); -- Хүснэгтэд өгөгдөл оруулах ( , , , ,) VALUES (100,"Aleksin V.V.","19721122",11," [имэйлээр хамгаалагдсан]"), (101,"Горбунов Д.Д.","19220525",25," [имэйлээр хамгаалагдсан]"), (102," Симонова К.Р. "," 19560211 ", 13," [имэйлээр хамгаалагдсан]"), (103,"Дормитотова К.С.","19770815",9," [имэйлээр хамгаалагдсан]")

Дээрх жишээн дээр бид INSERT бүтцийн хоёр блокыг ялгах хэрэгтэй:

РУУ- өгөгдөл нэмж оруулсан хүснэгтийг заана

ҮНЭ ЦЭНЭ- мөрийн оролтыг эхлүүлэх.

Блокны параметрүүдэд (хаалтанд). РУУБагануудыг гарч ирэх дарааллаар нь жагсаав. Хүснэгтийг үүсгэх болон бөглөх үед баганын дараалал ижил байвал параметргүй бичлэгийг зөвшөөрнө. Дараах код нь өмнөх кодтой ижил байна:

ҮНЭ ЦЭВЭРТ ОРУУЛАХ (100,"Алексин. В.В.","19721122",11," [имэйлээр хамгаалагдсан]"), (101,"Горбунов Д.Д.","19220525",25," [имэйлээр хамгаалагдсан]"), (102," Симонова К.Р. "," 19560211 ", 13," [имэйлээр хамгаалагдсан]"), (103,"Дормитотова К.С.","19770815",9," [имэйлээр хамгаалагдсан]")

Хэрэв та бөглөх дарааллыг өөрчлөх шаардлагатай бол үүнийг тодорхой зааж өгөх ёстой:

(,,, ,) ҮНЭ ЦЭВЭРТ ОРУУЛАХ ("Alexin. V.V.",101,"19721122"," [имэйлээр хамгаалагдсан]",11), ("Горбунов Д.Д.",102,"19220525"," [имэйлээр хамгаалагдсан]",25), ("Симонова К.Р",103,"19560211"," [имэйлээр хамгаалагдсан]",13) ("Дормитотова К.С.",104,"19770815"," [имэйлээр хамгаалагдсан]",9)

VALUES блок дээр мөр мөрөө эхлүүлэх ажлыг INTO блокийн баганын дарааллаар гүйцэтгэдэг. Мөр дүүргэх нь хаалт доторх нүдний утгуудын жагсаалт юм. Утгуудыг таслалаар тусгаарлаж, мөрүүдийг бие биенээсээ тусгаарласан байна.

Та INSERT бүтцийг зөвхөн өгөгдөл агуулаагүй баганад хэрэглэж болно. Үгүй бол хүсэлтийг гүйцэтгэхэд алдаа гарна.

Хүснэгтийг шинэчилж байна

Хүснэгтэд аль хэдийн оруулсан өгөгдлийг өөрчлөх шаардлагатай бол хүснэгтүүдийг шинэчлэх хэрэгцээ гарч ирдэг. Зааврыг ашиглан гүйцэтгэсэн ШИНЭЧЛЭХ. Хэрэв INSERT нь зөвхөн хоосон хүснэгттэй ажилладаг бол UPDATE нь зөвхөн дүүргэсэн хүснэгтүүдтэй ажилладаг. Хэрэв хүсэлтийг хоосон нүднүүдэд хаягласан бол алдаа гарна.

Дараах код нь шинийг оноох болно Шуудангийн хайрцаг 103 дугаартай байрны оршин суугчид.

Гэрийн найзуудын SET имэйлийг шинэчлэх = " [имэйлээр хамгаалагдсан]" WHERE housemeateID = 103

Блоклох SET- энэ бол өөрчлөлтийн блок юм. Хэрэв та хэд хэдэн нүдний утгыг шинэчлэх шаардлагатай бол тэдгээрийг таслалаар заана.

Гэрийн найзуудын SET имэйлийг шинэчлэх = " [имэйлээр хамгаалагдсан]", housemateName = "Rurik S.S." WHERE housemeateID = 103

Хүснэгт солих

Загварын сүүлийн үе шатанд эсвэл суурийг боловсруулсны дараа ихэвчлэн дараахь хэрэгцээ гарч ирдэг.

  • багана нэмэх эсвэл хасах;
  • баганын төрлийг өөрчлөх;
  • багана эсвэл бүлгийг үндсэн эсвэл гадаад түлхүүрээр тодорхойлох эсвэл эдгээр хязгаарлалтыг арилгах.

Эдгээр бүх үйлдлүүдийн хувьд хүчингүй болгох заавар байдаг. ШИРЭЭ.

Багана нэмэхийн тулд ALTER TABLE мэдэгдлийг ADD заалттай хамт хэрэглэнэ. Өмнөх хэсгээс housemates хүснэгтэд шинэ багана нэмье:

ALTER TABLE housemates ADD PhoneNumber nvarchar(12) NULL;

Та түүнд өгүүлбэр хэрэглэх хэрэгтэй ӨӨРЧЛӨЛТ БАГА ALTER TABLE дотор:

ALTER TABLE housemates ALTER COLUMN PhoneNumber char(25) NOT NULL;

ашиглан баганыг устгана БАГАНА УНАХ ALTER TABLE дотор:

ALTER TABLE housemates DROP COLUMN Утасны дугаар;

Үндсэн эсвэл гадаад түлхүүрийг устгаж, ALTER TABLE ADD CONSTRAINT/DROP CONSTRAINT бүтцийг ашиглан нэмнэ:

HousemeateID баганаас үндсэн түлхүүрийн хязгаарлалтыг арилгах ALTER TABLE housemates DROP CONSTRAINT primary_id; --HousemeateID баганыг үндсэн түлхүүрээр оноох ALTER TABLE housemates ADD CONSTRAINT PK_ID PRIMARY KEY (housemeateID);

Хэрэв та аль хэдийн байгаа хүснэгтэд үндсэн түлхүүр өгөхийг оролдвол асуулгын орчуулагч алдаа гаргах болно. Тиймээс, хэрэв хүснэгтэд аль хэдийн үндсэн түлхүүр байгаа бол та үүнийг устгаж, баганын бүлгийг үндсэн түлхүүр болгон зааж өгөх хэрэгтэй. Жишээлбэл, иймэрхүү:

ALTER TABLE housemates DROP CONSTRAINT PK_ID; ALTER TABLE housemates ADD CONSTRAINT PK_ID,PK_AN PRIMARY KEY (housemeateID, орон сууцны дугаар);

SQL - Хичээл 3. Хүснэгт үүсгэх, мэдээллээр дүүргэх

Тиймээс бид өгөгдлийн төрлүүдтэй танилцсан, одоо бид форумынхаа хүснэгтүүдийг сайжруулах болно. Эхлээд тэдгээрийг харцгаая. Хэрэглэгчдийн хүснэгтээс эхэлье. Бидэнд 4 багана байна:

Id_user нь бүхэл тоонууд бөгөөд төрөл нь int байх болно, үүнийг 10 тэмдэгтээр хязгаарлая - int (10).
name нь varchar string утга учир үүнийг 20 тэмдэгтээр хязгаарлая - varchar(20).
email нь varchar string утга учир үүнийг 50 тэмдэгтээр хязгаарлая - varchar(50).
нууц үг нь varchar мөрийн утга учир бид үүнийг 15 тэмдэгтээр хязгаарлах болно - varchar(15).

Бүх талбарын утгыг оруулах шаардлагатай бөгөөд энэ нь та NOT NULL төрлийг нэмэх шаардлагатай гэсэн үг юм.

Id_user int (10) NULL БИШ
нэр varchar(20) NULL БИШ
email varchar(50) NULL БИШ

Манай мэдээллийн сангийн үзэл баримтлалын загвараас та санаж байгаа эхний багана нь үндсэн түлхүүр юм (өөрөөр хэлбэл түүний утгууд нь өвөрмөц бөгөөд бичлэгийг өвөрмөц байдлаар тодорхойлдог). Өвөрмөц байдлыг бие даан хянах боломжтой боловч энэ нь оновчтой биш юм. Үүний тулд SQL-д тусгай шинж чанар байдаг - AUTO_INCREMENT, өгөгдөл нэмэхийн тулд хүснэгтэд хандахдаа энэ баганын хамгийн их утгыг тооцоолж, үүссэн утгыг 1-ээр нэмэгдүүлж, баганад оруулна. Иймээс энэ баганад автоматаар өвөрмөц тоо үүсдэг тул NOT NULL төрөл нь илүүц болно. Тиймээс, үндсэн түлхүүр бүхий баганад атрибут оноож үзье:


нэр varchar(20) NULL БИШ
email varchar(50) NULL БИШ
нууц үг varchar(15) NULL БИШ

Одоо бид id_user талбар нь үндсэн түлхүүр гэдгийг тодорхойлох хэрэгтэй. Үүнийг хийхийн тулд SQL түлхүүр үгийг ашигладаг АНХДАГЧ ТҮЛХҮҮР(), түлхүүр талбарын нэрийг хаалтанд зааж өгсөн болно. Өөрчлөлт хийцгээе:

Id_user int (10) AUTO_INCREMENT
нэр varchar(20) NULL БИШ
email varchar(50) NULL БИШ
нууц үг varchar(15) NULL БИШ
АНХДАГЧ ТҮЛХҮҮР (хэрэглэгчийн дугаар)

Тиймээс хүснэгт бэлэн болсон бөгөөд эцсийн хувилбар нь дараах байдалтай байна.

Хүснэгтийн хэрэглэгчдийг үүсгэх (
id_user int (10) AUTO_INCREMENT,
нэр varchar(20) NULL БИШ,
email varchar(50) NULL БИШ,
нууц үг varchar(15) NULL БИШ,
АНХДАГЧ ТҮЛХҮҮР (хэрэглэгчийн дугаар)
);

Одоо хоёр дахь хүснэгтийг харцгаая - сэдвүүд. Үүнтэй адилаар бид дараах талбаруудтай байна.



id_author int (10) NULL БИШ
АНХДАГЧ ТҮЛХҮҮР (id_сэдэв)

Гэхдээ манай мэдээллийн сангийн загварт id_author талбар нь гадаад түлхүүр, i.e. Энэ нь зөвхөн хэрэглэгчдийн хүснэгтийн id_user талбарт байгаа утгуудыг агуулж болно. Үүнийг SQL дээр харуулахын тулд түлхүүр үг байдаг ГАДААД ТҮЛХҮҮР(), дараах синтакстай байна:

ГАДААД ТҮЛХҮҮР (гадаад_түлхүүр болох баганын_нэр) АШИГЛАЛТ эцэг эх хүснэгтийн нэр (эцэг эх баганын_нэр);

id_author нь гадаад түлхүүр гэдгийг хэлье:

Id_topic int (10) AUTO_INCREMENT
сэдвийн_нэр varchar(100) NULL БИШ
id_author int (10) NULL БИШ
АНХДАГЧ ТҮЛХҮҮР (id_сэдэв)
ГАДААД ТҮЛХҮҮР (id_author) АШИГЛАСАН хэрэглэгчид (id_user)

Хүснэгт бэлэн болсон бөгөөд эцсийн хувилбар нь дараах байдалтай байна.

Хүснэгтийн сэдвүүдийг үүсгэх (
id_topic int (10) AUTO_INCREMENT,
сэдвийн_нэр varchar(100) NULL БИШ,

АНХНЫ ТҮЛХҮҮР (id_сэдэв),
ГАДААД ТҮЛХҮҮР (id_author) АШИГЛАСАН хэрэглэгчид (id_user)
);

Хамгийн сүүлд үлдсэн хүснэгт бол нийтлэлүүд юм. Энд бүх зүйл төстэй, зөвхөн хоёр гадаад түлхүүр:

Хүснэгтийн нийтлэл үүсгэх (
id_post int (10) AUTO_INCREMENT,
мессежийн текст NULL БИШ,
id_author int (10) NULL БИШ,
id_topic int (10) NULL БИШ,
АНХДАГЧ ТҮЛХҮҮР (id_post),
ГАДААД ТҮЛХҮҮР (id_author) АШИГЛАСАН хэрэглэгчид (id_user),
ГАДААД ТҮЛХҮҮР (id_сэдэв) АШИГЛАЛТЫН сэдвүүд (id_topic)
);

Хүснэгтэд хэд хэдэн гадаад түлхүүр байж болох ч MySQL дээр зөвхөн нэг үндсэн түлхүүр байж болно гэдгийг анхаарна уу. Эхний хичээл дээр бид форумын мэдээллийн санг устгасан тул дахин үүсгэх цаг болжээ.

Эхлүүлье MySQL сервер(Эхлэх - Програмууд - MySQL - MySQL Server 5.1 - MySQL Command Line Client), нууц үгээ оруулаад өгөгдлийн сангийн форум үүсгээд (өгөгдлийн сангийн форум үүсгэх;), ашиглахаар сонгоод (форумыг ашиглах;) манай гурван хүснэгтийг үүсгэ:

Enter товчийг ашиглан нэг командыг хэд хэдэн мөрөнд бичиж болно гэдгийг анхаарна уу (MySQL автоматаар тэмдэгтийг орлуулдаг) шинэ мөр->), зөвхөн тусгаарлагчийн дараа (цэг таслал) Enter товчийг дарснаар асуулга ажиллана.

Хэрэв та ямар нэг буруу зүйл хийсэн бол DROP мэдэгдлийг ашиглан хүснэгт эсвэл мэдээллийн санг бүхэлд нь хаяж болно гэдгийг санаарай. Ямар нэг зүйлийг засах тушаалын мөрмаш тохиромжгүй байдаг тул заримдаа (ялангуяа эхний шатанд) зарим засварлагч, жишээ нь Notepad гэх мэт асуултуудыг бичиж, дараа нь хар цонхонд хуулж буулгахад хялбар байдаг.

Тиймээс, хүснэгтүүд бий болсон, үүнд итгэлтэй байхын тулд багийг санацгаая хүснэгтүүдийг харуулах:

Эцэст нь сүүлийн нийтлэлүүдийн хүснэгтийн бүтцийг харцгаая.

Одоо DEFAULT талбараас бусад бүтцийн бүх талбаруудын утга тодорхой болж байна. Энэ бол анхдагч утгын талбар юм. Бид зарим баганад (эсвэл бүх) өгөгдмөл утгыг зааж өгч болно. Жишээлбэл, хэрэв бид "Гэрлэсэн" гэсэн талбартай байсан бол ENUM ("тийм", "үгүй") гэж бичвэл утгуудын аль нэгийг анхдагч утга болгох нь зүйтэй юм. Синтакс нь:

Гэрлэсэн тоо ("тийм", "үгүй") БИШ NULL анхдагч("тийм")

Тэдгээр. Энэ түлхүүр үг нь өгөгдлийн төрлөөс хойш хоосон зайгаар бичигдэх бөгөөд анхдагч утгыг хаалтанд бичнэ.

Гэхдээ ширээ рүүгээ буцаж орцгооё. Одоо бид хүснэгтэд өгөгдөл оруулах хэрэгтэй. Вэбсайтууд дээр та ихэвчлэн зарим html хэлбэрт мэдээлэл оруулдаг, дараа нь зарим хэл дээрх скрипт (php, java...) энэ өгөгдлийг маягтаас гаргаж аваад мэдээллийн санд оруулна. Тэрээр үүнийг мэдээллийн санд оруулахын тулд SQL асуулга ашиглан хийдэг. Бид PHP дээр скрипт хэрхэн бичихээ хараахан мэдэхгүй байгаа ч одоо өгөгдөл оруулахын тулд SQL асуулгыг хэрхэн илгээх талаар сурах болно.

Энэ зорилгоор операторыг ашигладаг INSERT. Та ашиглаж болох хоёр төрлийн синтакс байдаг. Эхний сонголтыг хүснэгтийн бүх талбарт өгөгдөл оруулахад ашигладаг.

INSERT INTO table_name VALUES ("эхний_баганын_утга","хоёр дахь_баганын_утга", ..., "сүүлийн_баганын_утга");


Хэрэглэгчдийн хүснэгтэд дараах утгуудыг нэмэхийг хичээцгээе.

Хэрэглэгчийн ҮНЭ ЦЭВЭРҮҮДИЙГ ОРУУЛАХ ("1","sergey", " [имэйлээр хамгаалагдсан]", "1111");

Хоёрдахь сонголтыг хүснэгтийн зарим талбарт өгөгдөл оруулахад ашигладаг.

INSERT INTO хүснэгтийн нэр ("баганын_нэр", "баганын_нэр") VALUES ("эхний_баганын_утга","хоёр дахь_баганын_утга");


Манай хэрэглэгчдийн хүснэгтэд бүх талбарыг оруулах шаардлагатай боловч эхний талбарт AUTO_INCREMENT гэсэн түлхүүр үг байгаа (өөрөөр хэлбэл энэ нь автоматаар бөглөгддөг) тул бид энэ баганыг алгасаж болно:

Хэрэглэгчид INSERT INTO (нэр, имэйл, нууц үг) VALUES ("valera", " [имэйлээр хамгаалагдсан]", "2222");

Хэрэв бидэнд NULL төрлийн талбарууд байсан бол i.e. сонголттой бол бид тэдгээрийг үл тоомсорлож болно. Гэхдээ хэрэв та NOT NULL утгатай талбарыг хоосон орхихыг оролдвол сервер алдааны мессежийг харуулах бөгөөд хүсэлтийг биелүүлэхгүй. Нэмж дурдахад сервер нь өгөгдөл оруулахдаа хүснэгт хоорондын хамаарлыг шалгадаг. Тиймээс та холбогдох хүснэгтэд байхгүй гадаад түлхүүр талбарт утгыг нэмэх боломжгүй болно. Та үүнийг үлдсэн хоёр хүснэгтэд өгөгдөл оруулах замаар баталгаажуулах болно.

Гэхдээ эхлээд хэд хэдэн хэрэглэгчийн мэдээллийг оруулъя. Нэгэн зэрэг хэд хэдэн мөр нэмэхийн тулд та таслалаар тусгаарласан утгууд бүхий хаалтуудыг жагсаахад л хангалттай.

Одоо өгөгдлийг хоёр дахь хүснэгтэд оруулъя - сэдвүүд. Бүх зүйл адилхан боловч id_author талбар дахь утгууд нь хэрэглэгчдийн хүснэгтэд байх ёстой гэдгийг санах хэрэгтэй.

Одоо өөр сэдэв нэмэхийг оролдъё, гэхдээ хэрэглэгчдийн хүснэгтэд байхгүй id_author (бид хэрэглэгчдийн хүснэгтэд ердөө 5 хэрэглэгч нэмсэн тул id=6 байхгүй):

Сервер алдаа гаргаж, ийм мөр оруулах боломжгүй гэж хэлсэн гадаад түлхүүр талбар нь холбогдох хэрэглэгчдийн хүснэгтэд байхгүй утгыг агуулна.

Одоо нийтлэлийн хүснэгтэд хэд хэдэн мөр нэмж оруулъя, үүнд бидэнд 2 гадаад түлхүүр байгаа гэдгийг санаарай. Бидний оруулах id_author болон id_topic нь тэдгээртэй холбоотой хүснэгтэд байх ёстой:

Тиймээс бидэнд өгөгдөл агуулсан 3 хүснэгт байна. Хүснэгтэд ямар өгөгдөл хадгалагдаж байгааг хэрхэн харах вэ гэсэн асуулт гарч ирнэ. Үүнийг бид дараагийн хичээл дээр хийх болно.

Хэрэв та SQL асуулгаар буцаасан өгөгдлийн үр дүнг хадгалах шаардлагатай байсан бол энэ нийтлэл танд сонирхолтой байх болно, учир нь бид үүнийг үзэх болно. SELECT мэдэгдэлРУУ, түүний тусламжтайгаар Microsoft SQLСервер, та шинэ хүснэгт үүсгэж, үр дүнгээр дүүргэж болно SQL асуулга.

Мэдээжийн хэрэг бид SELECT INTO мэдэгдлийн тайлбараас эхэлж, дараа нь жишээнүүд рүү шилжих болно.

Transact-SQL дээр SELECT INTO мэдэгдлийг хийнэ үү

СОНГОХ– T-SQL хэл дээрх шинэ хүснэгт үүсгэж, түүнд SQL асуулгын үр дүнгийн мөрүүдийг оруулах заавар. Хүснэгтийн бүтэц, i.e. баганын тоо, нэр, түүнчлэн өгөгдлийн төрөл, хүчингүй болох шинж чанарууд нь баганууд дээр тулгуурлана ( илэрхийллүүд) SELECT мэдэгдлийн эх сурвалж сонгох жагсаалтад заасан. Ихэвчлэн SELECT INTO хэллэгийг хэд хэдэн хүснэгт, харагдац, түүний дотор тооцооллын зарим өгөгдлийг нэг хүснэгтэд нэгтгэхэд ашигладаг.

SELECT INTO хэллэгийг ашиглахын тулд та шинэ хүснэгт үүсгэх мэдээллийн санд CREATE TABLE зөвшөөрөлтэй байх ёстой.

SELECT INTO мэдэгдэл нь хоёр аргументтай:

  • шинэ_хүснэгт - нэр шинэ ширээ;
  • файлын бүлэг - файлын бүлэг. Хэрэв аргумент заагаагүй бол анхдагч файлын бүлгийг ашиглана. Энэ боломж Microsoft SQL Server 2017-с эхлэн ашиглах боломжтой.

SELECT INTO мэдэгдлийн талаархи чухал санаанууд

  • Энэ зааврыг одоогийн сервер дээр хүснэгт үүсгэхэд ашиглаж болно, алсын сервер дээр хүснэгт үүсгэхийг дэмждэггүй;
  • Та шинэ хүснэгтийг одоогийн өгөгдлийн сан болон одоогийн серверээс эсвэл өөр мэдээллийн сан эсвэл алсын серверээс мэдээллээр дүүргэж болно. Жишээлбэл, зааж өгнө үү бүтэн нэрхэлбэрээр мэдээллийн сан өгөгдлийн сангийн_схем.хүснэгтийн нэрэсвэл алсын серверийн хувьд, холбосон_сервер.өгөгдлийн сан.схем.хүснэгтийн_нэр;
  • Шинэ хүснэгтийн таних багана нь дараах тохиолдолд IDENTITY өмчийг өвлөхгүй: мэдэгдэлд нэгдэх (JOIN, UNION), GROUP BY заалт, нэгтгэх функц, мөн түүнчлэн таних багана нь илэрхийллийн хэсэг, алсын мэдээллийн эх сурвалжаас авсан эсвэл сонгох жагсаалтад нэгээс олон удаа гарч ирвэл. Бүгдээрээ ижил төстэй тохиолдлуудтаних багана нь IDENTITY өмчийг өвлөхгүй бөгөөд NOT NULL хэлбэрээр үүсгэгдэнэ;
  • Та SELECT INTO мэдэгдлийг эх хүснэгтийг хуваасан байсан ч хуваах хүснэгт үүсгэх боломжгүй;
  • Та ердийн хүснэгт болон түр хүснэгтийг шинэ хүснэгт болгон зааж өгч болно, гэхдээ та хүснэгтийн хувьсагч эсвэл хүснэгтийн үнэ цэнэтэй параметрийг зааж өгөх боломжгүй;
  • Тооцоолсон багана, хэрэв SELECT INTO мэдэгдлийн сонголтын жагсаалтад нэг байгаа бол шинэ хүснэгтэд энэ нь хэвийн болно, i.e. тооцоогүй;
  • SELECT INTO-г COMPUTE заалттай хамт ашиглах боломжгүй;
  • SELECT INTO-г ашигласнаар индекс, хязгаарлалт, триггерийг шинэ хүснэгтэд шилжүүлэхгүй, хэрэв шаардлагатай бол мэдэгдлийг гүйцэтгэсний дараа тэдгээрийг нэмж үүсгэх ёстой;
  • ORDER BY заалт нь шинэ хүснэгтийн мөрүүдийг заасан дарааллаар оруулах баталгаа болохгүй.
  • FILESTREAM атрибутыг шинэ хүснэгтэд шилжүүлээгүй. Шинэ хүснэгтийн BLOB FILESTREAM объектууд нь varbinary(max) төрлийн BLOB объектууд байх бөгөөд 2 ГБ-ын хязгаартай байх болно;
  • SELECT INTO үйлдлийн үед гүйлгээний бүртгэлд бичигдсэн өгөгдлийн хэмжээ нь сэргээх загвараас хамаарна. Бөөнөөр бүртгэсэн сэргээх загварыг ашигладаг мэдээллийн санд, мөн энгийн загвар, SELECT INTO-г агуулсан масс үйлдлүүд хамгийн бага бүртгэлтэй байдаг. Ийм учраас SELECT INTO хэллэг нь хүснэгтийг үүсгэхэд тусдаа хэллэг, INSERT хэллэгийг мэдээллээр дүүргэхээс илүү үр дүнтэй байж болно.

SELECT INTO-г ашиглах жишээ

Би бүх жишээг Microsoft SQL Server 2016 Express DBMS дээр ажиллуулах болно.

Анхны өгөгдөл

Эхлээд хоёр хүснэгт үүсгэж, тэдгээрийг мэдээллээр дүүргэж, жишээн дээр эдгээр хүснэгтүүдийг нэгтгэх болно.

CREATE TABLE TestTable( IDENTITY(1,1) NO NO, NULL, (100) NOT NULL, NULL) ON GO. УТГА (1,"Гар", 100), (1, "Хулгана", 50), (2, "Утас", 300) Туршилтын Хүснэгт2 УТГА ОРУУЛАХ (" Компьютерийн бүрэлдэхүүн хэсгүүд"), ("Хөдөлгөөнт төхөөрөмж") Тестийн Хүснэгт2-с СОНГОХ * Тестийн Хүснэгтээс СОНГОХ * ГАРНА

Жишээ 1 - Өгөгдлийн нэгдэл бүхий SELECT INTO ашиглан хүснэгт үүсгэх

Бид хоёр хүснэгтийг нэгтгэж, үр дүнг шинэ хүснэгтэд хадгалах хэрэгтэй гэж төсөөлөөд үз дээ ( Жишээ нь, бид тухайн ангилалд хамаарах нэр бүхий бүтээгдэхүүнийг авах хэрэгтэй).

Үйлдэл SELECT INTO SELECT T1.ProductId, T2.CategoryName, T1.ProductName, T1.Price TO TestTable3 INTO FROM T1 T1 ЗҮҮГЭЭР НЭГДСЭН Туршилтын Хүснэгт2 T2 ДЭЭР T1.CategoryId = T2.CategoryId --ROMT SELECT өгөгдлөө шинэ хүснэгтээс сонгох * Туршилтын3


Үүний үр дүнд бид TestTable3 нэртэй хүснэгт үүсгэж, нэгтгэсэн өгөгдлөөр дүүргэсэн.

Жишээ 2 - Өгөгдлийг бүлэглэн SELECT INTO ашиглан түр хүснэгт үүсгэх

Одоо бидэнд бүлэглэсэн өгөгдөл, жишээлбэл, тодорхой ангилалд багтсан бүтээгдэхүүний тооны талаархи мэдээлэл хэрэгтэй гэж бодъё, мөн бид энэ өгөгдлийг түр зуурын хүснэгтэд хадгалах хэрэгтэй, жишээлбэл, бид энэ мэдээллийг зөвхөн SQL хэллэгт ашиглах болно гэж бодъё. бүрэн хэмжээний хүснэгт үүсгэх шаардлагагүй.

SELECT INTO SELECT T2.CategoryName, COUNT(T1.ProductId) AS CntProduct INTO #TestTable INTO INTO TestTable T1 T1 ЗҮҮН НЭГДСЭН Туршилтын Хүснэгт2 T2 ON T1.CategoryId = T2.Category.Name хэллэгийг ашиглан түр хүснэгт (#TestTable) үүсгэ. - Түр зуурын хүснэгтээс өгөгдөл авч байна #TestTable-аас СОНГОХ *


Таны харж байгаагаар бид түр зуурын #TestTable хүснэгтийг үүсгэж, бүлэглэсэн мэдээллээр дүүргэж чадсан.

Тиймээс бид T-SQL хэл дээрх SELECT INTO мэдэгдлийг авч үзсэн; "T-SQL програмистын арга зам" номондоо би бүх бүтцийн талаар дэлгэрэнгүй ярьдаг. T-SQL хэл (Би үүнийг уншихыг зөвлөж байна), одоохондоо энэ л байна!

SQL хүснэгт үүсгэхийн өмнө та өгөгдлийн сангийн загварыг тодорхойлох хэрэгтэй. Байгууллага, шинж чанар, харилцааг тодорхойлох ER диаграммыг зохион бүтээх.

Үндсэн ойлголтууд

Байгууллага гэдэг нь мэдээллийг хадгалах ёстой объект эсвэл баримт юм. Жишээлбэл, компанийн ажилтан эсвэл компанийн хэрэгжүүлж буй төсөл. Атрибутууд нь тухайн аж ахуйн нэгжийг дүрслэх эсвэл шалгуур үзүүлэлтийг хангах бүрэлдэхүүн хэсэг юм. Жишээлбэл, "ажилтан" аж ахуйн нэгжийн шинж чанар нь цалин, мөн “төслийн” аж ахуйн нэгжийн шинж чанар нь тооцоолсон зардал юм. Холболт нь хоёр элементийн хоорондын холбоо юм. Энэ нь хоёр чиглэлтэй байж болно. Мөн рекурсив холболт гэж байдаг, өөрөөр хэлбэл аливаа субъектийг өөртэйгөө холбох.

Мөн мэдээллийн сангийн бүрэн бүтэн байдлыг хангах түлхүүр, нөхцөлийг тодорхойлох шаардлагатай. Энэ нь юу гэсэн үг вэ? Өөрөөр хэлбэл, мэдээллийн санг зөв, тогтвортой хэлбэрээр хадгалахад туслах хязгаарлалтууд.

ER диаграмаас хүснэгтэн загварт шилжих

руу шилжих дүрэм хүснэгт загвар:

  1. Бүх объектуудыг хүснэгт болгон хөрвүүлэх.
  2. Бүх шинж чанаруудыг багана болгон хөрвүүлэх, өөрөөр хэлбэл объектын шинж чанар бүр хүснэгтийн баганын нэр дээр гарч ирэх ёстой.
  3. Өвөрмөц танигчийг үндсэн түлхүүр болгон хөрвүүлэх.
  4. Бүх харилцааг гадаад түлхүүр болгон хөрвүүлэх.
  5. SQL хүснэгтийг үүсгэ.

Мэдээллийн сан үүсгэх

Эхлээд та MySQL серверийг эхлүүлэх хэрэгтэй. Үүнийг эхлүүлэхийн тулд Start цэс, дараа нь Програмууд, дараа нь MySQL болон MySQL сервер рүү очоод MySQL-Command-Line-Client-ийг сонгоно уу.

Өгөгдлийн сан үүсгэхийн тулд Create Database командыг ашиглана. Энэ функцдараах форматтай байна:

МЭДЭЭЛЛИЙН САН БҮТЭЭГДЭХ мэдээллийн сангийн_нэр.

Мэдээллийн сангийн нэрний хязгаарлалт нь дараах байдалтай байна.

  • урт нь 64 хүртэлх тэмдэгт бөгөөд үсэг, тоо, "" ба "" тэмдэгтүүдийг агуулж болно;
  • нэр нь тоогоор эхэлж болох боловч үсэг агуулсан байх ёстой.

Та ерөнхий дүрмийг санах хэрэгтэй: аливаа хүсэлт эсвэл тушаал нь хязгаарлагчаар төгсдөг. SQL хэл дээр цэг таслалыг хязгаарлагч болгон ашиглах нь түгээмэл байдаг.

Сервер нь ямар мэдээллийн сантай ажиллах шаардлагатайг зааж өгөх шаардлагатай. Үүнд USE мэдэгдэл байдаг. Энэ оператор нь энгийн синтакстай: USE n мэдээллийн сангийн_нэр.

SQL хүснэгт үүсгэх

Тиймээс загвар зохион бүтээж, мэдээллийн баазыг бий болгож, серверт хэрхэн ажиллахыг яг таг зааж өгдөг. Одоо та SQL хүснэгт үүсгэж эхлэх боломжтой. Data Definition Language (DDL) гэж байдаг. Энэ нь MS SQL хүснэгт үүсгэх, мөн объектуудыг тодорхойлох, бүтэцтэй ажиллахад хэрэглэгддэг. DDL нь олон командыг агуулдаг.

SQL Server хүснэгт үүсгэх

Зөвхөн нэг DDL командыг ашигласнаар та түүний параметрүүдийг өөрчлөх замаар өгөгдлийн сангийн янз бүрийн объект үүсгэж болно. Create Table командыг ашигладаг. tt формат дараах байдалтай байна.

TADLE ҮҮСГЭ хүснэгтийн нэр,(баганын_нэр1 Нэр _багана2өгөгдлийн төрөл [баганын_хязгаарлалт], [хүснэгтийн_хязгаарлалт]).

Энэ тушаалын синтаксийг илүү дэлгэрэнгүй тайлбарлах ёстой:

  • Хүснэгтийн нэр нь 30 хүртэлх тэмдэгтээс бүрдэх ба үсгээр эхлэх ёстой. Зөвхөн цагаан толгойн үсгийн тэмдэгт, үсэг, "_", "$" болон "#" тэмдэгтүүдийг зөвшөөрнө. Кирилл үсгийг ашиглахыг зөвшөөрдөг. Хүснэгтийн нэр нь бусад объектын нэрс эсвэл багана, хүснэгт, индекс гэх мэт мэдээллийн баазын серверт хадгалагдсан үгстэй ижил байж болохгүй гэдгийг анхаарах нь чухал юм.
  • Та багана бүрийн өгөгдлийн төрлийг зааж өгөх ёстой. Ихэнх хүмүүсийн хэрэглэдэг стандарт багц байдаг. Жишээлбэл, Char, Varchar, Number, Date, Null төрөл гэх мэт.

  • Default параметр нь өгөгдмөл утгыг тохируулах боломжийг танд олгоно. Энэ нь хүснэгтэд хоосон утга байхгүй гэдгийг баталгаажуулдаг. Энэ нь юу гэсэн үг вэ? Анхдагч утга нь тэмдэг, илэрхийлэл, функц байж болно. Энэ анхдагч өгөгдлийн төрөл нь баганын оролтын өгөгдлийн төрөлтэй тохирч байх ёстой гэдгийг санах нь чухал.
  • Хүснэгтийн түвшинд өгөгдлийн бүрэн бүтэн байдлыг хангахын тулд багана тус бүрийн хязгаарлалтыг ашигладаг. Бусад нюансууд байдаг. Хүснэгтээс хамааралтай өөр хүснэгт байгаа бол түүнийг устгахыг хориглоно.

Мэдээллийн сантай хэрхэн ажиллах вэ

Томоохон төслүүд нь олон тооны хүснэгтүүдийг шаарддаг олон мэдээллийн сан үүсгэхийг шаарддаг. Мэдээжийн хэрэг, хэрэглэгчид бүх мэдээллийг толгойдоо хадгалах боломжгүй юм. Үүнийг хийхийн тулд мэдээллийн сан, тэдгээрийн доторх хүснэгтүүдийн бүтцийг харах боломжтой. Хэд хэдэн тушаалууд байдаг, тухайлбал:

  • МЭДЭЭЛЛИЙН САНГ ҮЗҮҮЛЭХ - бүх үүсгэсэн SQL мэдээллийн санг дэлгэцэн дээр харуулна;
  • ХҮСНЭГТИЙГ SHOW - USE командаар сонгогдсон одоогийн мэдээллийн сангийн бүх хүснэгтийн жагсаалтыг харуулна;
  • ТОДОРХОЙЛОХ хүснэгтийн нэр- хүснэгтийн бүх баганын тайлбарыг харуулна.
  • ALTER TABLE - хүснэгтийн бүтцийг өөрчлөх боломжийг танд олгоно.

Сүүлийн тушаал нь дараах боломжийг олгоно:

  • хүснэгтэд багана эсвэл хязгаарлалт нэмэх;
  • одоо байгаа баганыг өөрчлөх;
  • багана эсвэл багана устгах;
  • бүрэн бүтэн байдлын хязгаарлалтыг арилгах.

Энэ командын синтакс нь: ALTER TABLE хүснэгтийн нэр( | | | | [(ИДЭВХЖҮҮЛЭХ | ИДЭВХЖҮҮЛЭХ) БАЙНГА хязгаарлалтын_нэр ] | }.

Бусад тушаалууд байдаг:

  • RENAME - хүснэгтийн нэрийг өөрчлөх.
  • TRUNCATE TABLE - хүснэгтээс бүх мөрийг устгана. Хүснэгтийг дахин бөглөх шаардлагатай үед энэ функц шаардлагатай байж болох ч өмнөх өгөгдлийг хадгалах шаардлагагүй болно.

Өгөгдлийн сангийн бүтэц өөрчлөгдөж, хүснэгтийг устгах шаардлагатай нөхцөл байдал бас байдаг. Үүний тулд DROP команд байдаг. Мэдээжийн хэрэг, та эхлээд хүснэгтийг устгахыг хүсч буй мэдээллийн санг сонгох хэрэгтэй, хэрэв энэ нь одоогийнхоос ялгаатай бол.

Командын синтакс нь маш энгийн: DROP TABLE Нэр_хүснэгтүүд.

IN SQL хандалтХүснэгт үүсгэх, тэдгээрийг өөрчлөх нь дээр дурдсан тушаалуудыг ашиглан хийгддэг.

CREATE TABLE-г ашигласнаар та хоосон хүснэгт үүсгэж, дараа нь өгөгдлөөр дүүргэх боломжтой. Гэхдээ энэ нь бүгд биш юм. Та мөн өөр хүснэгтээс шууд хүснэгт үүсгэж болно. Үүн шиг? Өөрөөр хэлбэл, хүснэгтийг тодорхойлж, өөр хүснэгтийн өгөгдлөөр дүүргэх боломжтой. Үүний тулд AS гэсэн тусгай түлхүүр үг байдаг.

Синтакс нь маш энгийн:

  • Хүснэгт үүсгэх Нэр_хүснэгтүүд[(баганын_тодорхойлолт)] AS дэд асуулга;
  • баганын_тодорхойлолт -баганын нэр, шинээр үүсгэсэн хүснэгтийн баганын бүрэн бүтэн байдлын дүрэм, үндсэн утгууд;
  • дэд асуулга - шинэ хүснэгтэд нэмэх шаардлагатай мөрүүдийг буцаана.

Тиймээс, ийм тушаал нь тодорхой багана бүхий хүснэгтийг үүсгэж, асуулгад буцаж ирдэг мөрүүдийг оруулдаг.

Түр зуурын ширээ

Түр хүснэгтүүд нь сесс бүрийн төгсгөлд эсвэл өмнөх үед өгөгдөл нь устдаг хүснэгтүүд юм. Тэдгээрийг завсрын утга эсвэл үр дүнг бүртгэхэд ашигладаг. Тэдгээрийг ажлын хуудас болгон ашиглаж болно. Та ямар ч сессэд түр зуурын мэдээллийг тодорхойлж болох боловч тэдгээрийн өгөгдлийг зөвхөн одоогийн сессэд ашиглах боломжтой. Түр зуурын SQL хүснэгтүүдийг үүсгэх нь CREATE TABLE командыг ашиглан ердийн хүснэгттэй төстэй юм. Хүснэгт түр зуурынх гэдгийг системд харуулахын тулд та GLOBAL TEMPORARY параметрийг ашиглах хэрэгтэй.

ON COMMIT заалт нь ийм хүснэгт дэх өгөгдлийн ашиглалтын хугацааг тогтоож, дараах зүйлсийг хийж болно:

  • МӨРӨӨ УСТГАХ - гүйлгээ дууссаны дараа түр хүснэгтийг арилгах (бүх сессийн өгөгдлийг устгах). Энэ нь ихэвчлэн анхдагч утга юм.
  • МӨРӨӨ ХАМГААЛАХ - дараагийн гүйлгээнд ашиглах өгөгдлийг үлдээнэ үү. Нэмж дурдахад, та хуралдаан дууссаны дараа л хүснэгтийг цэвэрлэж болно. Гэхдээ зарим нэг онцлог шинж чанарууд байдаг. Хэрэв гүйлгээ буцаагдсан бол (ROLLBACK) хүснэгт өмнөх гүйлгээний төгсгөлд төлөв рүү буцна.

Түр хүснэгт үүсгэх синтаксийг дараах байдлаар илэрхийлж болно: CREATE TABLE Нэр_ширээ,(Нэрбагана_1өгөгдлийн төрөл [баганын_хязгаарлалт], Нэр _багана2өгөгдлийн төрөл [баганын_хязгаарлалт], [хүснэгтийн_хязгаарлалт]).