SQL өгөгдлийн сан болон хүснэгтүүдийг үүсгэх

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

Та өгөгдлийн сан, бүтцийг Structured Query Language ашиглан үүсгэж эхлэхэд бэлэн үү? Энэ нийтлэлд бид CREATE DATABASE болон CREATE TABLE командуудтай гараар хүснэгт үүсгэх үйл явцыг судална. Хэрэв та SQL дээр шинэ бол эхлээд манай SQL Үндсэн өгүүллийг дахин харахыг хүсч болох юм.

Бизнесийн шаардлага

Бид гар дээр сууж байхаас өмнө хэрэглэгчийн шаардлагыг сайтар ойлгох хэрэгтэй. Энэ ойлголтыг олж авах хамгийн шилдэг арга юу вэ? Үйлчлүүлэгчтэй ярилцах нь мэдээж! XYZ-ийн Хүний Нөөцийн Захиралтай суусны дараа бид энэ нь виджет борлуулалтын компани гэдгээ мэдэж байсан бөгөөд голчлон борлуулалтын ажилтнуудын мэдээллийг хянах сонирхолтой байдаг.

XYZ корпораци нь борлуулалтын хүчээ зүүн болон баруун бүсэд хуваадаг бөгөөд тус бүр нь борлуулалтын төлөөлөгчдөөс бүрдсэн олон нутаг дэвсгэрт хуваагддаг. Хүний нөөцийн хэлтэс нь ажилтан тус бүрийн хамрах нутаг, ажилтны цалингийн мэдээлэл, хяналт шалгалтын бүтэцийг хянахыг хүсч байна. Эдгээр шаардлагыг хангахын тулд бид энэ хүснэгтэд байгаа Entity-Relational diagram-т харуулсан гурван хүснэгтэд агуулагдсан мэдээллийн санг боловсруулсан.

Өгөгдлийн сангийн платформыг сонгох

Бид Structured Query Language (SQL) дээр суурилсан мэдээллийн баазын удирдлагын систем (эсвэл DBMS) ашиглахаар шийдсэн. Тиймээс бидний бүх өгөгдлийн сан болон хүснэгт үүсгэх тушаалууд нь ANSI SQL стандартаар бичигдсэн байх ёстой.

Нэмэлт тэтгэмжийн хувьд, ANSI-нийцтэй SQL-ийг ашиглах нь эдгээр тушаалууд нь Oracle болон Microsoft SQL Server зэрэг SQL стандартыг дэмждэг ямар нэг DBMS дээр ажиллах болно. Хэрэв та мэдээллийн баазынхаа платформыг сонгоогүй бол Өгөгдлийн сангийн Програмын сонголтууд нь таныг сонгон шалгаруулалтын явцад таныг чиглүүлдэг.

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

Бидний анхны алхам бол мэдээллийн санг үүсгэх явдал юм. Олон өгөгдлийн сангийн менежментийн систем нь энэ алхам дахь өгөгдлийн сангийн параметрүүдийг өөрчлөх хэд хэдэн сонголтыг санал болгодог боловч бидний өгөгдлийн сан нь зөвхөн мэдээллийн санг үүсгэхийг зөвшөөрдөг. Бидний бүх тушаалын нэгэн адил та өөрийн системийг дэмждэг дэвшилтэт параметрүүд таны хэрэгцээнд нийцэж байгаа эсэхийг тодорхойлохын тулд өөрийн DBMS-ийн баримтыг үзэхийг хүсч болох юм. CREATE DATABASE командыг ашиглан мэдээллийн санг үүсгэе:

DATABASE ажилтнуудаа бий болго

Дээрх жишээнд ашигласан капиталжуулалтын талаар онцгой анхаарах. SQL программеруудын дунд "бүхэл үсгүүд", "DATABASE" гэх мэт SQL түлхүүр үгнүүдийн хувьд том үсгүүдийг ашиглах нь нийтлэг практик нь "personnel" мэдээллийн баазын нэр гэх мэт хэрэглэгчийн тодорхойлсон нэрийг хэрэглэдэг. Эдгээр конвенцууд нь уншихад хялбар байх боломжийг олгодог.

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

Илүү ихийг сурах

Хэрэв та Structured Query Language-ийн талаар илүү ихийг мэдэхийг хүсвэл SQL програмын танилцуулгыг уншина уу эсвэл манай үнэгүй суралцах SQL цахим шуудангийн курст бүртгүүлнэ үү.

Одоо бид өөрсдийн мэдээллийн санг үүсгэж, бүтээхдээ XYZ корпорацийн ажилтнуудын өгөгдлийг хадгалах гурван хүснэгтийг бий болгоход бэлэн байна. Бид энэ гарын авлагын өмнөх хэсэгт зохиосон хүснэгтүүдийг хэрэгжүүлж байна.

Манай анхны хүснэгтийг бүтээх

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

Тайлангийн шинж чанар нь ажилтан бүрт менежерийн ID-г хадгалдаг. Дээрх жишээнээс Sue Scampi нь Том Кендалл, Жон Смит хоёрын менежер гэдгийг бид тодорхойлж чадна. Гэхдээ Sue-ийн менежер дээр байгаа NULL оруулгад егегдсен мэдээллийн баазад мэдээлэл алга байна.

Одоо бид ажилтнуудаа мэдээллийн баазад оруулахын тулд SQL-г ашиглаж болно. Үүнийг хийхээс өмнө бид USE командыг ашиглан зөв өгөгдлийн санд байгаа эсэхийг шалгаарай:

Хэрэгжүүлэгч ажилтнууд;

Мөн "DATABASE-ийн ажилтан"; тушаал нь ижил функцийг гүйцэтгэх болно. Одоо бид ажилтнуудын хүснэгтийг үүсгэхэд ашигладаг SQL командыг харцгаая.

АЖИЛЛАЖ БУЙ АЖ АХУЙН АЖИЛЛАГАА (ажилтан нь INTEGER NOT NULL, lastname VARCHAR (25) NOT NULL, firstname VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Дээрх жишээний нэгэн адил, програмын тохируулга нь хэрэглэгчийн нэртэй баганууд болон хүснэгтэд SQL keywords болон жижиг үсгээр том үсгүүдийг ашигладаг болохыг зааж өгдөг. Дээрх команд нь эхлээд ойлгомжгүй мэт санагдаж болох боловч яг цаана нь энгийн бүтэц бий. Энд ерөнхий зүйлүүдийг арилгаж болох ерөнхий ойлголт:

Хүснэгтийг үүсгэх хүснэгт_name (өгөгдлийн төрөл, attribute_name, өгөгдлийн төрөл);

Аттрибут ба өгөгдлийн төрлүүд

Өмнөх жишээн дээр хүснэгтний нэр нь ажилчид бөгөөд бид дөрвөн шинж чанарыг агуулдаг: employeeid, lastname, firstname, and reportsto. Өгөгдлийн төрөл нь талбар бүрд хадгалахыг хүсч буй мэдээллийн төрлийг заана. Ажилтны ID нь энгийн бүхэл тоонууд тул бид INTEGER өгөгдлөө ажилтан талбар болон тайлангийн талбарт хоёуланг нь ашиглах болно. Ажилтны нэр нь хувьсах урттай тэмдэгт мөр бөгөөд бид ямар ч ажилтан эхний эсвэл хамгийн сүүлчийн нэртэй 25 тэмдэгтийн урттай байхыг бид хүсэхгүй байна. Тиймээс бид эдгээр талбарын хувьд VARCHAR (25) төрлийг ашиглах болно.

NULL утга

Мөн бид CREATE мэдэгдлийн хувилбарын талбарт NULL эсвэл NULL зааж өгч болно. Энэ нь мэдээллийн бааз руу мөр нэмэх үед NULL (эсвэл хоосон) утгуудыг зөвшөөрөх эсэхийг заана. Бидний жишээн дээр Хүний нөөцийн хэлтэс ажилтан бүрийн хувьд ажилтан ID болон бүтэн нэрийг хадгалахыг шаарддаг. Гэсэн хэдий ч, ажилтан бүр менежертэй байдаггүй - Гүйцэтгэх захирал хэн ч биш! - тэгэхээр бид энэ талбар дахь NULL оруулгуудыг зөвшөөрдөг. NULL нь анхдагч утга бөгөөд энэ сонголтыг орхих нь NULL утгуудыг далд зөвшөөрөхийг зөвшөөрөх болно.

Үлдсэн хүснэгтүүдийг бүтээх

Одоо нутаг дэвсгэрийн хүснэгтийг харцгаая. Энэ өгөгдлийг хурдан харснаар бид бүхэл тоо, хоёр хувьсах урттай мөрүүдийг хадгалах хэрэгтэй болно. Өмнөх жишээний адилаар бид Бүсийн ID-г 25-аас илүү тэмдэгт хэрэглэж болохгүй гэж бодож байна. Гэсэн хэдий ч, манай зарим нутаг дэвсгэрүүд нь урт нэртэй тул бид энэ шинж чанарыг 40 тэмдэгт хүртэл өргөтгөх болно. Хариуцлагатай SQL-ийг харъя:

Газар нутгийг бүтээв (газар нутгийг INTEGER NOT NULL, territory Description VARCHAR (40) NOT NULL, regionid VARCHAR (25) NULL биш);

Эцэст нь бид EmployeeTerritories хүснэгтийг ажилчид болон нутаг дэвсгэрүүдийн хоорондын харилцаа холбоог хадгалах болно. Ажилтан, нутаг дэвсгэр бүрийн талаарх дэлгэрэнгүй мэдээллийг өмнөх 2 хүснэгтэд хадгалдаг. Тиймээс бид энэ хүснэгтэд хоёр бүхэл тооны таних дугаарыг хадгалах хэрэгтэй. Хэрэв бид энэ мэдээллийг өргөжүүлэх шаардлагатай бол бид олон тооны хүснэгтээс мэдээлэл олж авахын тулд манай өгөгдлийн сонгох командын JOIN-г ашиглаж болно. Өгөгдөл хадгалах арга нь манай өгөгдлийн сан дахь нөөцийг багасгаж, хадгалах сангийн байршлыг оновчтой ашиглах боломжийг хангадаг. Бид JOIN тушаалыг ирээдүйн зааварчилгаанд нарийвчлан хамруулах болно. Бидний эцсийн хүснэгтийг хэрэгжүүлэх SQL код энд байна:

ЖИШЭЭ ЖИЖИГИЙН ЖАГСААЛТ (ажилтан, НИТАЖ БОЛОХГҮЙ, газардуулагч INTEGER NOT NULL);

Механизм SQL нь үүсгэсэний дараа мэдээллийн баазын бүтцийг өөрчлөх боломжийг олгодог

Хэрэв та өнөөдөр маш гайхамшигтай бол бид "санаандгүй" гэдгийг манай мэдээллийн баазын хүснэгтийг хэрэгжүүлэх үед дизайн шаардлагын аль нэгийг орхигдуулсан байж болох юм. XYZ корпорацийн Хүний нөөцийн захирал ажилчдын цалингийн мэдээллийн санг хөтлөн явуулахыг хүссэн бөгөөд бид үүнийг үүсгэсэн мэдээллийн баазын хүснэгтэнд өгөхийг бид хүсээгүй.

Гэсэн хэдий ч бүх зүйл алдагдсангүй. Энэ шинж чанарыг бид одоо байгаа мэдээллийн санд нэмэхийн тулд ALTER TABLE командыг ашиглаж болно. Бид цалингаа бүхэл тоо болгон хадгалахыг хүсч байна. Энэ синтакс нь CREATE TABLE командтай маш төстэй байна, энд дараах байдалтай байна:

АЖИЛЛАГААНЫ АЖИЛЛАГААНД АЖИЛЛАГАА

Бид энэ шинж чанар дээр NULL утгыг зөвшөөрөхийг зааж өгсөн болохыг анхаарна уу. Ихэнх тохиолдолд баганыг одоо байгаа хүснэгтэд нэмэх сонголт байхгүй. Энэ нь хүснэгтэд энэ атрибутын хувьд ямар ч эгнээнд орохгүй байсантай холбоотой юм. Тиймээс, DBMS нь хүчингүй болгохын тулд NULL утгыг автоматаар оруулдаг.

Энэ нь SQL өгөгдлийн сан болон хүснэгт үүсгэх процессыг бид харах боломжийг олгодог. Бидний SQL заавар цувралуудын шинэчилсэн хувилбарыг байнга шалгаарай. Хэрэв та өгүүлэл дээрхи шинэ өгүүллийг шинэ өгүүлэл нэмэх үед и-мэйл сануулахыг хүсвэл манай мэдээллийн самбарт бүртгүүлээрэй!