SQL үндэс

DDL, DML болон JOIN-н талаар үзэх

Structured Query Language нь орчин үеийн өгөгдлийн сангийн архитектурын үндсэн блокуудын нэг юм. SQL нь бүх томоохон платформ дээр харилцах өгөгдлийн санг үүсгэх, удирдах аргуудыг тодорхойлдог. Эхлээд харахад хэл нь аймшигтай, нарийн төвөгтэй мэт санагдаж болох ч энэ нь тийм ч хэцүү биш юм.

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

SQL тухай

SQL зөв дуудлага нь мэдээллийн баазын хүрээнд гарч буй маргаантай асуудал юм. SQL стандартад Америкийн Үндэсний Стандартын Институт албан ёсны дуудлага нь "es queue el." Гэсэн хэдий ч, мэдээллийн баазын олон мэргэжилтнүүд "slang" дуудлагаар дууддаг. Сонголт чинийх.

SQL нь олон төрлийн амттай байдаг. Oracle мэдээллийн бааз нь өөрийн хувийн PL / SQL ашигладаг. Microsoft SQL Server нь Transact-SQL-ийг ашигладаг. Бүх хувилбарууд нь ANSI SQL салбарын стандартууд дээр тулгуурладаг. Энэ танилцуулга нь аль ч орчин үеийн хэлцлийн мэдээллийн системд ажилладаг ANSI-нийцтэй SQL командуудыг ашигладаг.

DDL болон DML

SQL командуудыг хоёр үндсэн дэд хэл дээр хувааж болно. Өгөгдлийн тодорхойлолт хэлний (DDL) өгөгдлийн сан болон өгөгдлийн сангийн объектуудыг устгах, устгахад ашиглагддаг тушаалуудыг агуулна. Өгөгдлийн сангийн бүтэц DDL-тэй тодорхойлогдсоны дараа өгөгдлийн сангийн администраторууд болон хэрэглэгчид Data Manipulation Language (DML) -ийг ашиглан дотор нь оруулах өгөгдлийг оруулах, олж авах, өөрчлөх боломжтой.

Өгөгдлийн тодорхойлолт Хэлний тушаалууд

Өгөгдлийн тодорхойлолт Хэл нь өгөгдлийн сан болон өгөгдлийн сангийн объектыг үүсгэх, устгахад ашиглагддаг. Эдгээр тушаалууд нь өгөгдлийн сангийн төслийн тохиргооны үе шатуудыг устгах үеэр мэдээллийн сангийн администраторууд ашигладаг. Дөрвөн үндсэн DDL командуудын бүтэц, хэрэглээг харвал:

CREATE. Компьютер дээр өгөгдлийн сангийн менежментийн системийг суурилуулах нь танд олон хараат бус мэдээллийн санг үүсгэх, удирдах боломжийг олгодог. Жишээлбэл, та өөрийн Хүний нөөцийн хэлтэст өөрийн борлуулалтын хэлтэс болон боловсон хүчний мэдээллийн санд хэрэглэгчийн харилцах мэдээллийн санг хадгалахыг хүсч болно. CREATE тушаал нь эдгээр мэдээллийн сангуудыг таны платформ дээр суурилуулахад ашигладаг. Жишээ нь:

DATABASE-ийн ажилтнууд бий

DBMS дээр "ажилчид" нэртэй хоосон мэдээллийн сан бий болгоно. Өгөгдлийн сан үүсгэсний дараа дараагийн алхам нь өгөгдөл агуулсан хүснэгт үүсгэх явдал юм. Энэ зорилгоор CREATE командын өөр хувилбар ашиглаж болно. Тушаал:

Хувийн трэндийн хувийн_info (first_name char (20) null, last_name char (20) null биш, employee_id int null биш)

Одоогийн өгөгдлийн санд "хувийн_info" нэртэй хүснэгтийг үүсгэв. Жишээ нь, хүснэгтэд дараах гурван шинж чанарыг агуулна: first_name, last_name болон employee_id нь зарим нэмэлт мэдээллийг агуулсан болно.

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

Ажилчдыг ашигладаг

Өгөгдлийг удирдах SQL командуудыг ажиллуулахаас өмнө таны ажиллаж байгаа өгөгдлийн санг байнга санаж байх нь чухал юм.

Өөрчлөлт. Өгөгдлийн санд байгаа хүснэгтийг үүсгэсний дараа та түүний тодорхойлолтыг өөрчлөхийг хүсч болно. ALTER тушаал нь хүснэгтийг устгах, дахин үүсгэхгүйгээр хүснэгт бүтцэд өөрчлөлт оруулах боломжийг олгодог. Дараах тушаалыг харна уу:

Өөрчлөлт хүснэгт хувийн_info Цалингийн мөнгө нэмэх null

Энэ жишээ нь ажилтны цалингийн хувийн_info хүснэгтэд шинэ шинж чанарыг нэмдэг. "Мөнгө" гэсэн аргумент нь ажилтны цалинг доллар, центээр нь хадгална гэсэн үг юм. Эцэст нь, "null" гэсэн түлхүүр үг өгөгдсөн өгөгдлийн сан нь тухайн талбарт тухайн ажилтан ямар ч үнэ цэнийг агуулахгүй гэсэн үг юм.

Дроп. Өгөгдлийн Тодорхойлолт Хэлний DROP-ийн эцсийн тушаал нь бид DBMS-ээс бүх өгөгдлийн сангийн объектуудыг устгах боломжийг олгодог. Жишээ нь, хэрэв бид үүсгэсэн хувийн_info хүснийг байнга устгахыг хүсвэл дараах тушаалыг ашиглах болно:

DROP table хувийн_info

Үүнтэй адилаар доорх тушаалыг ажилтны бүх мэдээллийн баазыг устгахад ашиглах болно:

DROP DATABASE ажилчид

Энэ тушаалыг ашиглан анхааралтай ашиглах хэрэгтэй. DROP команд нь таны өгөгдлийн сангийн бүх өгөгдлийн бүтцийг устгадаг. Хэрэв та тусдаа бичлэгийг устгахыг хүсвэл Data Manipulation Language-ийн DELETE командыг ашиглана уу.

Өгөгдлийн Manipulation Language Commands

Data Manipulation Language (DML) нь өгөгдлийн мэдээллийг сэргээх, оруулах, өөрчлөхөд ашиглагддаг. Эдгээр тушаалууд нь мэдээллийн баазын байнгын ажиллагааны үед бүх өгөгдлийн санг хэрэглэгчид ашигладаг.

INSERT. SQL дэх INSERT командыг одоо байгаа хүснэгтэд бүртгэл нэмэхийн тулд ашигладаг. Өмнөх хэсэгт байгаа хувийн_info жишээ руу буцахдаа манай Хүний нөөцийн хэлтэс нь шинэ ажилтан өөрийн мэдээллийн санд хандах хэрэгтэй гэж төсөөлж байна. Та үүнтэй төстэй тушаалыг ашиглаж болно:

INSERT INTO personal_info values ​​('bart', 'simpson', 12345, $ 45000)

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

SELECT. SELECT команд нь SQL дахь хамгийн түгээмэл хэрэглэгддэг тушаал юм. Энэ нь өгөгдлийн сангийн хэрэглэгчид өгөгдлийн сангаас хүссэн тодорхой мэдээллээ олж авах боломжийг олгодог. Ажилчдын мэдээллийн баазаас хувийн_info хүснэгтийн тусламжтайгаар цөөн хэдэн жишээг хар.

Доорх команд нь хувийн_info хүснэгтэд агуулагдсан бүх мэдээллийг сэргээнэ. Обьект нь SQL дахь орлуулагддаг тэмдэгт болгон ашиглагддаг гэдгийг анхаарна уу. Энэ нь "Personal_info хүснэгтийн бүх зүйлсийг сонгоно" гэсэн үг юм.

SELECT * from personal_info

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

Хувийн_info FROM last_name FROM

WHERE заалтыг тодорхой шалгуурыг хангасан хүмүүсээс авсан бүртгэлийг хязгаарлахад ашиглаж болно. Гүйцэтгэх захирал өндөр цалинтай ажиллагсдын ажилтнуудын бүртгэлийг хянаж үзэх сонирхолтой байж болно. Дараах тушаал нь $ 50,000-аас дээш цалинтай үнийн бүртгэлтэй хувийн мэдээллийг хувийн_info дотроос агуулдаг.

SELECT * from personal_info WHERE salary> $ 50000

UPDATE. UPDATE командыг хүснэгтэд агуулагдсан мэдээллийг өөрчлөхөд ашиглана. Компани бүх ажиллагсаддаа цалин хөлстэйгээр 3 хувийн зардлыг өгдөг гэж үзье. Өгөгдлийн санд хадгалагдсан бүх ажилтнуудад дараах SQL командыг ашиглана:

UPDATE personal_info SET цалин = цалин * 1.03

Шинэ ажилтан Барт Симпсон үүрэгт ажлаасаа оройтсон, гүйцэтгэлийг харуулж байх үед удирдлагын зүгээс одоог хүртэл амжилттай ажиллаж чадвал 5,000 доллар босгох болно. WHERE-ийн заалт нь Бартыг энэ өсөлтийг хангахад ашиглагдах боломжтой:

UPDATE personal_info SET цалин = цалин + $ 5000 WHERE employee_id = 12345

БУРХАН. Эцэст нь, DELETE командыг үзье. Энэ тушаалын синтакс нь бусад DML командуудынхтай төстэй болохыг олж мэднэ. Харамсалтай нь, бидний хамгийн сүүлийн үеийн компанийн орлогын тайлан нь хүлээлтийг хангалттай биелүүлж чадаагүй, Бартыг чөлөөлсөн. WHERE гэсэн мөртэй DELETE командыг өөрийн хувийн мэдээллийг хүснэгтээр устгаж болно:

DELETE FROM personal_info WHERE employee_id = 12345

JOIN

Одоо та SQL-ийн үндсийг мэдэж авсан болохоор хэлний хэлээр ярих хамгийн хүчирхэг ойлголтуудын нэг болох JOIN мэдэгдэлтэй танилцах цаг болжээ. JOIN мэдэгдэл нь олон тооны өгөгдлийг үр дүнтэй боловсруулахын тулд олон тооны хүснэгтэнд нэгтгэх боломжийг олгоно. Эдгээр мэдэгдэл нь мэдээллийн баазын жинхэнэ хүч оршин байгаа газар юм.

Хоёр хүснэгтийн өгөгдлийг нэгтгэх үндсэн JOIN үйлдлийг ашиглахын тулд PERSONAL_INFO хүснэгтээр үргэлжлүүлэн үлгэр жишээг үргэлжлүүлээд нэмэлт хольцыг нэмээрэй. Танд DISCIPLINARY_ACTION гэж нэрлэгдсэн хүснэгтийг дараах илэрхийллээр үүсгэсэн хүснэгттэй гэж үзье:

TABLE disciplinary_action (action_id int null, employee_id int not null, comments char (500))

Энэ хүснэгтэд компанийн ажилтнуудад сахилгын арга хэмжээний үр дүнг оруулсан болно. Энэ нь ажилтны дугаараас бусад ажилтны тухай ямар ч мэдээлэл агуулаагүй болохыг та анзаарах болно. Та DISCIPLINARY_ACTION болон PERSONAL_INFO хүснэгтийн мэдээллийг нэгтгэхийг хүсч болох олон тохиолдлыг төсөөлөхөд хялбар байдаг.

40,000 доллараас дээш цалинтай бүх ажилчдаас авсан сахилгын арга хэмжээг жагсаасан илтгэлийг бий болгох үүрэг хүлээсэн гэж үзье. JOIN үйлдлийг ашиглах нь энэ тохиолдолд шууд юм. Бид энэ мэдээллийг дараах тушаалаар ашиглаж болно:

Personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id мөн хувийн_info.salary> 40000

Код нь FROM бүлэгт нэгдэхийг хүсч байгаа хоёр хүснэгтийг тодорхойлдог бөгөөд дараа нь үр дүнг ажилчдын ID-тэй нийцүүлэн бүртгэж, 40,000 ам.доллараас дээш цалинтай шалгуурт нийцсэн үр дүнг хязгаарлах зорилгоор WHERE-ийн заалтыг агуулсан.