Sql сонгох хэлний оператор нь зориулагдсан. SQL - мэдэгдлүүд

Гэр / Хатуу дискүүд

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

4 бүлэг операторууд байдаг. Өгөгдөл боловсруулах операторуудын бүлгийг авч үзье (Data Manipulation Language, DML, SQL DML)

Өгөгдлийн сонголт

Өгөгдөл сонгох нь SQL ашиглан хийгддэг хамгийн түгээмэл үйлдэл юм. SELECT мэдэгдэл нь энэ хэлний хамгийн чухал хэллэгүүдийн нэг бөгөөд өгөгдлийг сонгоход хэрэглэгддэг. Энэ операторын синтакс нь дараах байдалтай байна.

Хүснэгтээс SELECT багана

SELECT мэдэгдлүүд нь SELECT болон FROM гэсэн үгсийг агуулсан байх ёстой; бусад түлхүүр үгс нь сонголттой.

SELECT түлхүүр үгийн дараа үүссэн өгөгдлийн багцад аль талбаруудыг оруулах тухай мэдээлэл орно. Од (*) нь хүснэгтийн бүх талбарыг илэрхийлнэ, жишээлбэл:

Нэг баганыг сонгохын тулд дараах синтаксийг ашиглана уу.

СОНГОХ Компани

Олон баганыг сонгох жишээ нь дараах байдалтай байна.

СОНГОХ Компани,Утас,Мэйл

Бичлэгүүдийг сонгосон хүснэгтүүдийн нэрийг зааж өгөхийн тулд FROM түлхүүр үгийг ашиглана уу, жишээлбэл:

СОНГОХ * FROM Үйлчлүүлэгчид

Энэ асуулга нь Хэрэглэгчийн хүснэгтээс бүх талбарыг буцаана.

Та SELECT мэдэгдлээр буцаасан үр дүнг шүүхдээ WHERE заалтыг (заавал биш) ашиглаж болно

Ангилал = 4-т багтсан бүтээгдэхүүнээс * СОНГОХ

Та WHERE заалтад янз бүрийн илэрхийлэл ашиглаж болно.

ХААНА илэрхийлэл1 [(БА | ЭСВЭЛ) илэрхийлэл2 ...]

Жишээ нь:

Ангилал = 2, Поставшик > 10-тай байгаа бүтээгдэхүүнээс * СОНГОХ

Ангилал= 3 ЭСВЭЛ Үнийг ХААНА БҮТЭЭГДЭХҮҮНИЙГ НЭР, Үнийг СОНГОХ< 50

Та дараах операторуудыг ашиглаж болно.

< Меньше

<= Меньше или равно

<>Тэнцүү биш

> Илүү

>=-аас их буюу тэнцүү

ORDER BY заалт (заавал биш) нь үр дүнд бий болсон өгөгдлийг нэг буюу хэд хэдэн баганаар эрэмбэлэхэд ашиглагддаг. Эрэмбэлэх дарааллыг тодорхойлохын тулд ASC (өсөх) эсвэл DESC (буурах) гэсэн түлхүүр үгсийг ашигладаг. Анхдагч байдлаар, өгөгдлийг өсөх дарааллаар эрэмбэлдэг.

Өгөгдлийн өөрчлөлт

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

UPDATE мэдэгдэл

Хүснэгтийн нэг буюу хэд хэдэн баганын утгыг өөрчлөхийн тулд UPDATE мэдэгдлийг ашиглана уу. Энэ операторын синтакс нь:

UPDATE хүснэгт SET багана1 = илэрхийлэл1 WHERE шалгуур

SET заалтын илэрхийлэл нь тогтмол эсвэл тооцооллын үр дүн байж болно. Жишээлбэл, 10 доллараас бага үнэтэй бүх бүтээгдэхүүний үнийг нэмэгдүүлэхийн тулд та дараах асуултыг ажиллуулж болно.

ШИНЭЧЛЭХ Бүтээгдэхүүний багц Үнэ = Үнэ * 1.1 ХААНА Үнэ< 10

УСТГАХ мэдэгдлийг

Хүснэгтээс мөрүүдийг устгахын тулд та DELETE операторыг ашиглах хэрэгтэй бөгөөд синтакс нь:

Хүснэгтээс WHERE шалгуурыг УСТГАХ

100-аас бага өртөгтэй бүх бүтээгдэхүүнийг устгах:

ХААНА БҮТЭЭГДЭХҮҮНЭЭС УСТГАХ Үнэ< 100

ОператорINSERT

Хүснэгтэд бичлэг нэмэхийн тулд та INSERT хэллэгийг ашиглах хэрэгтэй бөгөөд синтакс нь:

INSERT INTO хүснэгт ( VALUES (илэрхийлэл [, ...])

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

Хэрэглэгчийн (Хэрэглэгчийн ID, Компанийн нэр) ҮНЭ ЦЭВЭРТ ОРУУЛАХ ('XYZ', 'XYZ Deli')

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

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

SQL хэл ба SELECT мэдэгдэл гэж юу вэ

SQLнь харилцааны өгөгдлийн сан дахь өгөгдлийг удирдахад (удирдах) ашигладаг асуулгын хэл юм. Энэ нь маш их алдартай тул бараг бүх компани мэдээллийн сантай байдаг тул өөрийгөө хүндэтгэдэг мэдээллийн технологийн хүн бүр энэ хэлний үндсийг мэддэг байх ёстой.

СОНГОХ– SQL хэлний оператор нь өгөгдөл боловсруулах операторуудын бүлэгт багтдаг ( Өгөгдөл боловсруулах хэл, DML) ба өгөгдлийн сангаас мэдээлэл авах үйлчилгээ үзүүлдэг.

Анхаар! SQL хэл болон мэдээллийн санг сурахын тулд том DBMS-ийн тусгай үнэгүй хувилбарууд байдаг, жишээлбэл SQL серверМайкрософт Экспресс хувилбартай. Энэ DBMS-ийг хэрхэн суулгах талаар та материалаас уншиж болно - Microsoft SQL Server 2016 Express-ийн суулгалтын тайлбар.

SELECT хэллэгийг ашиглах хамгийн энгийн жишээ энд байна.

СОНГОХ * Хүснэгтээс

  • * - бүх өгөгдлийг харуулах;
  • FROM - эх сурвалжаас;
  • Хүснэгт - эх сурвалжийн нэр ( бидний тохиолдолд хүснэгт).

Гэхдээ практик дээр ихэвчлэн хүснэгтээс бүх өгөгдөл хэрэггүй, гэхдээ заримдаа үүнийг хийхийн тулд зөвхөн зарим баганын нэрийг * -ын оронд зааж өгдөг. эсвэл чанга яригч), Жишээ нь:

Хүснэгтээс үнийг сонго

Энд Үнэ нь баганын нэр юм.

Анхаар! Жишээлбэл, бид компьютерийн загвар, тэдгээрийн үнэ, нэрийг жагсаасан энгийн хүснэгтийг ашигладаг.

Хэрэв та хэд хэдэн баганыг зааж өгөх шаардлагатай бол SELECT мэдэгдлийн дараа тэдгээрийг таслалаар тусгаарлаж жагсаана уу.

Хүснэгтээс үнэ, нэр, загвар СОНГОХ

хаана, үнэ, нэр, загвар нь Хүснэгтийн багана юм.

Сонгох нөхцөл – WHERE заалт

Түүвэрлэлтийн явцад бид өгөгдлийг тодорхой нөхцлөөр шүүх шаардлагатай байдаг, жишээлбэл. бүх өгөгдөл биш, зөвхөн SELECT бүтэц дэх нөхцөлийг хангасан тохиолдолд та операторыг ашиглаж болно ХААНА.

Үнэ > 100 бол ХҮСНЭГТЭЭС үнийг сонго

хаана, WHERE нөхцөл байдал, өөрөөр хэлбэл. бид зөвхөн бидний нөхцөл байдалд тохирсон мөрүүдийг харуулдаг ( үнэ 100-аас дээш).

SQL дээрх харьцуулах операторууд

  • “>” – ямар нэг зүйлээс илүү;
  • «<» – меньше чего-нибудь;
  • “=” – тэнцүү;
  • «<>» - тэнцүү биш;
  • “>=” – түүнээс их буюу тэнцүү;
  • «<=» – меньше или равно.

Та мөн нөхцөл байдалд түлхүүр үг зааж өгч болно ХООРОНД, өөрөөр хэлбэл утга нь тодорхой хязгаарт багтах эсэх, жишээлбэл

Үнийг 400-600-ийн хооронд байгаа хүснэгтээс сонго

Энд бид үнэ нь 400-аас 600 хооронд байх ёстойг харуулж байна.

Туршиж буй илэрхийллийн утга нь тодорхой утгын багцад орсон эсэхийг шалгахын тулд та предикат ашиглаж болно IN.

Үнийг ХААНА ДАХЬ (400, 600) хүснэгтээс сонго

IN энэ тохиолдолд 400, 600 гэсэн өртөгтэй үнийг л авмаар байна.

Хэрэв бид зөвхөн өвөрмөц эх сурвалжийн мөрүүдийг авах шаардлагатай бол бид түлхүүр үгийг зааж өгч болно ОНЦЛОХ, Жишээ нь

Үнэ > 100-аас ялгаатай үнийг Хүснэгтээс сонго

Анхаар! SQL хэл нь том жижиг том үсгийг харгалздаггүй; Жишээлбэл, дараах хоёр асуулга яг адилхан байна.

Хүснэгтээс үнийг СОНГОХ

Хүснэгтээс үнийг сонгоно уу

ORDER BY-ээр эрэмбэлэх

Асуулгын үр дүнг тодорхой талбараар эрэмбэлэх шаардлагатай байдаг ( багана). Үүнийг хийхийн тулд хүсэлтийн дараа бид барилгын ажлыг зааж өгнө ЗАХИАЛАХболон тэдгээр талбарууд ( магадгүй хэд хэдэн таслалаар тусгаарлагдсан байх) үүгээр нь эрэмбэлэхийг хүсч байна.

Үнийг ХҮСНЭГТЭЭС ЗАХИАЛГААР Үнийн ХЯНГААР СОНГОХ

Энэ нь буурах дарааллаар эрэмбэлэх жишээ юм, гэхдээ та мөн DESC-ийн оронд өсөх дарааллаар эрэмбэлэх боломжтой, гэхдээ бид ихэвчлэн ингэж бичдэггүй, учир нь өсөх эрэмбэ нь анхдагч юм.

SQL дэх нэгтгэх функцууд

SQL нь нэгтгэх гэж нэрлэгддэг маш ашигтай функцуудтай, тухайлбал:

  • COUNT- заасан баганад байгаа утгуудын тоо;
  • СУМ- заасан баганад байгаа утгуудын нийлбэр;
  • AVG- заасан баганын дундаж утга;
  • MIN- заасан баганад хамгийн бага утга;
  • МАКС- заасан баганад хамгийн их утга.

Жишээлбэл, бид компьютерийн дундаж үнийг хамгийн их ба хамгийн багадаа авах шаардлагатай бөгөөд үүний тулд бид дараах асуултыг бичиж болно

Хүснэгтээс AVG(үнэ), MAX(үнэ), MIN(үнэ)-ийг СОНГОХ

GROUP BY

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

Загварыг SELECT, AVG (үнэ) AS AVGPrice FROM table GROUP BY загвар

Хэрэв та анзаарсан бол би энд даалгаврыг ашигласан" нууц нэр» энэ хүсэлтийн үр дүнг илүү хялбар ойлгохын тулд, i.e. баганын дараа AS болон үр дүнд харуулахыг хүссэн нэрээ бичнэ үү.

Нөхцөлүүдийг тус тусад нь баганад ашиглахтай адил функцийг ашиглан бүхэл бүлгийн нөхцөлийг зааж өгч болно БАЙХ. Жишээлбэл, эдгээр компьютеруудын загвараар бүлэглэсэн, гэхдээ дээд тал нь 500-аас бага үнэтэй компьютерийн дээд үнийг тодорхойлох хэрэгтэй.

Загвар, MAX(үнэ) ХҮСЭЭНИЙ БҮЛГЭЭС MAX (үнэ)-тэй загвараар СОНГОХ< 500

Энэ тохиолдолд бидний хүсэлтийн дагуу хамгийн дээд үнэ нь 500-аас доош үнэтэй компьютеруудыг загвараар нь бүлэглэж өгөх болно.

Анхаар! Та энэ материалаас SQL дээр бүлэглэх талаар илүү ихийг уншиж болно.

SQL дээрх NULL утга

SQL-д NULL гэх мэт утга байдаг. Үнэн хэрэгтээ NULL нь утга байхгүй ( тэдгээр. хоосон). Ийм утгыг агуулсан бүх мөрийг харуулахын тулд ( Жишээлбэл, бид зарим компьютерын үнийг хараахан тогтоогоогүй байна) та дараах нөхцлийг ашиглаж болно.

Үнэ NULL БАЙГАА ХҮСНЭГТЭЭС * СОНГОХ

Энэ нь үнийн талбарт утгагүй бүх мөрийг хайх гэсэн үг юм.

Хялбаршуулсан SELECT мэдэгдлийн синтакс

СОНГОХ<Список полей>эсвэл * , ...] , ...]

Анхаар! Хэрэв та T-SQL хэлийг сонирхож байгаа бол би Transact-SQL хэлний анхан шатны талаар, ялангуяа анхлан суралцагчдад зориулсан олон жишээн дээр дэлгэрэнгүй ярьдаг "T-SQL програмистын арга" номыг уншихыг зөвлөж байна.

Энэ бол өнөөдрийн хувьд бид SQL хэлний жижиг хэсэг болох SELECT мэдэгдлийг авч үзсэн. Амжилт хүсье!

Сахилга бат: Мэдээллийн сан

Хэлний операторуудSQL

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

Операторуудыг хэлээр бичихийн тулд чөлөөт форматыг ашигласан бөгөөд энэ нь догол болон зэрэгцүүлэх замаар SQL програмыг илүү уншигдахуйц харагдуулах боломжийг олгодог.

    мэдэгдэл дэх хэллэг бүр шинэ мөрөөс эхлэх ёстой;

    хэллэг бүрийн эхлэл нь операторын бусад хэллэгүүдийн эхлэлтэй тохирч байх ёстой;

    өгүүлбэрийн хэсэг бүр нь бүх хэллэгийн эхэнтэй харьцуулахад зарим доголтой шинэ мөрөөс эхлэх ёстой бөгөөд энэ нь дэд хэсгүүдийг тодруулах боломжийг олгоно;

    Зарим конвенци нь бичих операторуудад хамаарна:

    том үсгийг нөөцөлсөн үгсийг бичихэд ашигладаг;

    Хэрэглэгчийн тодорхойлсон үгсийг бичихэд жижиг үсгүүдийг ашигладаг;

    "|"" босоо бар нь хэд хэдэн утгын аль нэгийг сонгох шаардлагатай байгааг харуулж байна;

    буржгар хаалт нь шаардлагатай элементийг тодорхойлдог;

    дөрвөлжин хаалт нь нэмэлт элементийг тодорхойлдог;

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

Өгөгдлийн тодорхойлолтын операторуудыг (Хүснэгт 1) ашигласан өгөгдлийн бүтцийг тодорхойлоход ашигладаг. Энэ ангилалд дараах операторууд багтана: хүснэгт үүсгэх, хүснэгт буулгах, хүснэгтийг өөрчлөх, харагдац үүсгэх, ALTER VIEW, DROP VIEW.

Хүснэгт 1 . Өгөгдлийн тодорхойлолтын операторууд

Оператор Тайлбар

хүснэгт үүсгэх Хүснэгт үүсгэх

DROP table Хүснэгтийг устгах

хүснэгтийг өөрчлөх Хүснэгтийг өөрчлөх

CREATE VIEW Харагдах байдал үүсгэх

харахыг өөрчлөх Харагдацыг өөрчлөх

drop view Харагдах байдлыг устгах

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

Хүснэгт 2 . Өгөгдөл боловсруулах операторууд

ОператорТайлбар

Устгах Нөхцөлд тохирсон нэг буюу хэд хэдэн мөрийг устгана

шүүлтүүр, үндсэн хүснэгтээс

INSERT Үндсэн хүснэгтэд нэг мөр оруулна

update Нэг буюу хэд хэдэн баганын утгыг шинэчилнэ

шүүлтүүрийн нөхцөлд тохирсон хэд хэдэн мөр

Мэдээллийн сангаас мэдээлэл авахын тулд SQL-д нэг сонгох хэллэгээр илэрхийлэгддэг асуулгын хэлийг ашигладаг (Хүснэгт 3).

Хүснэгт 3. Асуулгын хэл

Оператор Тайлбар

Сонгодог мөрүүдийг сонгоно уу; үр дүнг гаргах боломжийг олгодог оператор

асуулгад тохирох хүснэгт

Хүснэгт дэх тайлбарыг уншсаны дараа зорилгыг төсөөлөхөд хэцүү биш операторуудын заасан ангиллуудаас гадна гүйлгээний менежментийн операторууд (Хүснэгт 4) ба өгөгдлийн удирдлагын хэрэгслүүд (Хүснэгт 5) гэсэн хоёр зүйлийг тодруулах шаардлагатай.

Хүснэгт 4. Гүйлгээний менежмент

Операторын тайлбар

commit Гүйлгээг дуусгах - мэдээллийг бүрэн боловсруулах,

гүйлгээ болгон нэгтгэсэн

буцаах Гүйлгээг буцаах - гүйцэтгэх явцад хийсэн өөрчлөлтийг буцаах

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

Хүснэгт 5 . Өгөгдлийн удирдлага

Операторын тайлбар

ӨГӨЛГӨЛИЙН ӨГӨГДЛИЙН САН Өгөгдлийн сангийн үндсэн объектуудын багцыг өөрчлөх, хязгаарлалттай холбоотой

бүх мэдээллийн сан

ALTER DBAREA Өмнө нь үүсгэсэн хадгалах талбайг өөрчлөх

НУУЦ ҮГ ӨӨРЧЛӨХ Өгөгдлийн сангийн нууц үгийг бүхэлд нь өөрчлөх

ӨГӨГДЛИЙН САН БҮРДҮҮЛЭХ Шинэ мэдээллийн сан үүсгэх

CREATE DBAREA Хадгалах шинэ талбар үүсгэж, байрлуулах боломжтой болго

DROP DATABASE Одоо байгаа мэдээллийн санг буулгах

DROP DBAREA Одоо байгаа хадгалах газрыг устгах (хэрэв одоогоор агуулаагүй бол

идэвхтэй өгөгдөл байрладаг)

Өгөгдлийн сангийн тодорхой объект дээрх хэд хэдэн үйлдэлд хандах эрхийг олгох

Цуцлах Зарим объект эсвэл зарим үйлдэлд хандах эрхийг хориглох

объект

Арилжааны DBMS-д үндсэн операторуудын багцыг өргөжүүлсэн. Ихэнх DBMS нь хадгалагдсан процедурын эхлүүлэх индексийг тодорхойлох, устгах операторууд болон триггерийг тодорхойлох операторуудыг агуулдаг.

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

    Сонгох операторСОНГОХ . Өгөгдлийн санд асуулга үүсгэж байна

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

Мэдэгдэлийн форматыг сонгоно уу:

СОНГОХ *|<список полей>FROM<список таблиц>

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

□ Үг хэллэг сонгох:

Түлхүүр үг байгаа эсэх бүгд(анхдагч) гэдэг нь үр дүнгийн хүснэгтэд асуулгын нөхцлийг хангасан бүх мөрийг агуулж байгаа бөгөөд энэ нь үр дүнгийн хүснэгтэд давхардсан мөрүүд гарч болзошгүй гэсэн үг юм;

Түлхүүр үг ялгаатайДавхардсан мөр байхгүй гэж үзсэн хүснэгтийг харилцааны онолын зарчимд нийцүүлэх зорилготой;

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

□ Нэг өгүүлбэрээр -аасэх асуулгын хүснэгтүүдийн жагсаалтыг зааж өгсөн болно.

□ Нэг өгүүлбэрээр хаанаХарьцааны алгебр дахь нөхцөлт нэгдэх үйлдэлтэй адил үр дүнгийн мөрүүдийг сонгох нөхцөл эсвэл эх хүснэгтийн мөрүүдийг холбох нөхцөлийг тодорхойлно. Сонгох нөхцөл болгон дараах предикатуудыг ашиглаж болно.

Харьцуулалт "=,<>, >, <, >=, <=" - для сравнения результатов вы­числения двух выражений; более сложные выражения строятся с по­мощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом исполь­зуемых операторов и наличием скобок в выражении;

хоорондАболонIN- илэрхийллийн тооцоолсон утга нь заасан мужид (predicate үгүйхоорондаболонINхарьцуулсан утга нь заасан интервалд багтахгүй үед үнэн);

in- харьцуулж буй утгыг өгөгдсөн утгуудын багцад оруулсан тохиолдолд уг предикат үнэн байх; энэ тохиолдолд утгуудын багцыг энгийн тооллого эсвэл суурилуулсан дэд асуулгаар зааж өгч болно (харьцуулж буй утга нь өгөгдсөн багцад ороогүй тохиолдолд in биш предикат үнэн болно);

дуртайТэгээд үгүйдуртай- эсрэг утгатай предикатууд нь өгөгдсөн утгыг харьцуулах загварыг зааж өгөхийг шаарддаг; харьцуулж буй утга нь загвартай тохирч байвал ижил төстэй предикат үнэн, үгүй ​​бол худал;

ISnull- тодорхойгүй утгатай зарим шинж чанарын утгын тэнцүү байдлыг тодорхойлоход хэрэглэгддэг предикат:

    <имя атрибута> ISnull- энэ мөрөнд заасан атрибут нь тодорхойгүй утгатай, худал утгатай бол үнэн утгыг авна;

    <имя атрибута> ISҮГҮЙnull- бүх зүйл эсрэгээрээ болдог.

байдагТэгээд үгүйбайдаг, шугаман дэд асуулгад ашигладаг.

□ Нэг өгүүлбэрээр бүлэгbyбүлэглэх талбаруудын жагсаалтыг зааж өгсөн болно.

□ Нэг өгүүлбэрээр байхБүлэг бүрт ногдуулсан предикат-нөхцөлүүдийг тодорхойлсон.

□ Нэг өгүүлбэрээр захиалгаbyүр дүнгийн эрэмбийн талбаруудын жагсаалтыг, өөрөөр хэлбэл үр дүнгийн хүснэгтэд эрэмбэлэх дарааллыг тодорхойлдог талбаруудын жагсаалтыг зааж өгсөн болно.

SQL стандарт нь NULL утгын тухай ойлголтыг тодорхойлсон бөгөөд энэ нь гурван утгатай логикийг ашиглах шаардлагатай болсон бөгөөд бүх логик үйлдлүүд доорх үнэний хүснэгтийн дагуу хийгддэг (Хүснэгт 6).

Хүснэгт 6 . Үнэний хүснэгт

А БА Б

ТRUE

1.1. Энгийн асуулга

Хүсэлт 1

Их сургуулийн тэнхимүүдийн талаарх мэдээллийг харуулах.

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

СОНГОХ * хэлтэсээс

Ийм асуулгын үр дүн нь их сургуулийн бүх тэнхимийн талаархи мэдээллийг агуулсан хүснэгт болно.

Код каф

Каф гэж нэрлэ

Ном_телеф

Nom_Auditoria

Col_sotr

Иванов Т.М.

Ерөнхий математик

Махов К Л.

Росс Л.Т.

Фирсов С.С.

Хэрэглээний математик

Ляхова И.Т.

Хүсэлт 2

Их сургуулийн тэнхимүүдийн утасны дугаарыг харуул.

Ийм асуулгын үр дүн нь зөвхөн хоёр багана агуулсан байх ёстой. Нэр_ кафТэгээд Ном_ утас, Тиймээс хүсэлт өөрөө иймэрхүү харагдах ёстой:

SELECT Name_kaf, Nom_telef FROM kafedra

Үр дүнгийн хүснэгт:

Нэркаф Номжелеф

Физикчид 23-34-24

Ерөнхий математик 23-65-43

Өгүүллэгүүд 23-78-72

График 23-99-77

Хэрэглээний математик 23-66-62

Дээр үүсгэсэн асуулгад from зүйлд заасан хүснэгтийн бүх мөрийг харуулах шаардлагатай байсан. Хэрэв сонгохдоо ямар нэг нөхцөлийн дагуу харуулах мөрийн тоог хязгаарлах шаардлагатай бол асуулгад where заалтыг ашиглан үүнийг хийж болно. Та хаана зүйлд нэг буюу хэд хэдэн мөр сонгох нөхцөлийг оруулж болно.

Хүсэлт 3

Графикийн тэнхимийн талаарх мэдээллийг харуулах.

SELECT * FROM kafedra WHERE Name_kaf = "График"

Ийм хүсэлтийн хариу нь зөвхөн нэг мөрийг агуулна.

Kod.kaf Нэр_каф НомжелефNom_Auditoria Col_sotr Zav_kaf

004 График 23-99-77 385 18 Фирсов С.С.

Хүсэлт 4

Нэгдүгээр давхарт байрлах хичээлийн танхимын тоо 1-ээс 99 хүртэл байдаг гэдгийг харгалзан нэг давхарт байрлах их сургуулийн тэнхимийн талаарх мэдээллийг харуулах.

Хүсэлт дараах байдлаар харагдах болно.

Nom_Auditoria 1-ээс 99-ИЙН ХООРОНД ХААНА кафедрагаас СОНГОХ

Асуулгын үр дүн:

KodjcafНэр_кафNorn lelef Norn Audit oria Coi_sotr Zavkaf

002 Ерөнхий математик 23-65-43 003 22 Махов К.Л.

математикчид

Ерөнхийдөө үр дүнгийн хүснэгтийн мөрүүд ямар нэгэн байдлаар эрэмбэлэгдээгүй байдлаар харагдана. Ийм материалыг үзэх, дүн шинжилгээ хийх нь үргэлж тохиромжтой байдаггүй. Мөрүүдийг баганаар эрэмбэлэхийн тулд өгүүлбэрээр дарааллыг ашиглана уу. Энэ нь гаралтын мэдээллийг цэгцлэхийг хүссэн баганын нэрсийн таслалаар тусгаарлагдсан жагсаалтыг агуулдаг. Энэ хэллэг нь сонгох хэллэгийн хамгийн сүүлд байх ёстой бөгөөд байгаа үед эдгээр багана байгаа эсэхээс үл хамааран заасан баганын өсөх (өсөх) эсвэл буурах (буурах) утгууд эсвэл заасан баганын хослолоор мөрүүдийг эрэмбэлэх боломжтой болно. үр дүнгийн хүснэгтэд байгаа эсэх.

Хүсэлт 5

Их сургуулийн тэнхимүүдийн талаарх мэдээллийг эрэмбэлэгдсэн баганад харуулахНэр_ кафөсөх дарааллаар.

Хүсэлт дараах байдлаар харагдах болно.

* Cafedra-аас Name_caf ASC-ээр ЗАХИАЛГАААРАЙ

Энэ асуулгын үр дүн:

Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Зав каф

004 График 23-Е9-77 385 18 Фирсов С.С.

003 Өгүүллэгүүд 23-78-72 465 16 Росс Л.Т.

002 Ерөнхий ма- 23-65-43 003 22 Махов К.Л.

сэдвүүд

005 Хэрэглээний 23-66-62 028 24 Ляхова И.Т.

математикчид

001 Физикчид 23-34-24 132 25 Иванов Т.М.

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

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

Дараах бүлгүүдийг ялгаж салгаж болно (бүх SQL мэдэгдлийг жагсаасангүй):

DDL (Data Definition Language) мэдэгдэл - өгөгдлийн сангийн объектыг тодорхойлох хэллэгүүд

· CREATE SCHEMA - өгөгдлийн сангийн схем үүсгэх

· DROP SHEMA - өгөгдлийн сангийн схемийг устгах

· CREATE TABLE - хүснэгт үүсгэх

ALTER TABLE - хүснэгтийг өөрчлөх

· DROP TABLE - хүснэгтийг устгах

· CREATE DOMAIN - домайн үүсгэх

ALTER DOMAIN - домайныг өөрчлөх

· DROP DOMAIN - домэйн устгах

· CREATE COLLATION - дараалал үүсгэх

· DROP COLLATION - дарааллыг устгах

· CREATE VIEW - харагдац үүсгэх

· DROP VIEW - харагдац устгах

DML (Data Manipulation Language) операторууд - өгөгдөл боловсруулах операторууд

· SELECT - хүснэгтээс мөр сонгох

· INSERT - хүснэгтэд мөр нэмэх

· UPDATE - хүснэгтийн мөрүүдийг өөрчлөх

· DELETE - хүснэгтийн мөрүүдийг устгах

· COMMIT - хийсэн өөрчлөлтийг хүлээн авах

· ROLLBACK - хийсэн өөрчлөлтүүдийг буцаах

Өгөгдлийн хамгаалалт ба менежментийн операторууд

· CREATE ASSERTION - хязгаарлалт үүсгэх

· DROP ASSERTION - хязгаарлалтыг арилгах

· GRANT - хэрэглэгч эсвэл програмд ​​объектыг удирдах эрх олгох

REVOKE - хэрэглэгчийн болон програмын эрхийг хүчингүй болгох

Нэмж дурдахад сессийн параметрүүдийг тохируулах, мэдээллийн сан, статик SQL оператор, динамик SQL операторуудын талаар мэдээлэл авах бүлэг операторууд байдаг.

Хэрэглэгчийн хувьд хамгийн чухал нь өгөгдөл боловсруулах мэдэгдэл (DML) юм.

Өгөгдөл боловсруулах операторуудыг ашиглах жишээ

INSERT - хүснэгтэд мөр оруулах

Жишээ 1. Хүснэгтэд нэг мөр оруулах:

VALUES(4, "Иванов");

UPDATE - хүснэгтийн мөрүүдийг шинэчлэх

Жишээ 3. Хүснэгтийн олон мөрийг шинэчлэх:

SET PNAME = "Пушников"

ХААНА P.PNUM = 1;

DELETE - хүснэгтийн мөрүүдийг устгах

Жишээ 4. Хүснэгтийн олон мөрийг устгах:

ХААНА P.PNUM = 1;

SELECT мэдэгдлийг ашиглах жишээ

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

Өгөгдлийн сангийн хэсэг болох зарим хүснэгтүүд дээр SELECT командыг үргэлж гүйцэтгэдэг.

Сэтгэгдэл. Үнэн хэрэгтээ өгөгдлийн сан нь зөвхөн байнга хадгалагдсан хүснэгтүүд төдийгүй түр зуурын хүснэгтүүд болон үзэл бодол гэж нэрлэгддэг зүйлсийг агуулж болно. Харагдах байдал нь мэдээллийн санд хадгалагдсан SELECT илэрхийллүүд юм. Хэрэглэгчийн байр сууринаас харвал өгөгдлийн санд байнга хадгалагддаггүй, хандахад “харагдах” хүснэгтийг view гэдэг. SELECT мэдэгдлийн үүднээс авч үзвэл байнгын хүснэгтүүд болон түр зуурын хүснэгтүүд болон харагдацууд нь яг адилхан харагдаж байна. Мэдээжийн хэрэг, систем нь SELECT мэдэгдлийг бодитоор гүйцэтгэх үед хадгалагдсан хүснэгтүүд болон харагдацуудын хоорондын ялгааг харгалзан үздэг боловч эдгээр ялгаанууд нь далдхэрэглэгчээс.


SELECT мэдэгдлийн үр дүн нь үргэлж хүснэгт юм. Тиймээс SELECT мэдэгдлийн үр дүн нь харилцааны алгебрийн операторуудтай төстэй байна. Аливаа хамаарлын алгебрийн операторыг тохирох үгээр SELECT хэллэгээр илэрхийлж болно. SELECT мэдэгдлийн нарийн төвөгтэй байдал нь харилцааны алгебрийн бүх боломжууд, түүнчлэн харилцааны алгебрт байдаггүй нэмэлт боломжуудыг агуулж байгаагаар тодорхойлогддог.

SELECT мэдэгдлийг гүйцэтгэх дараалал

SELECT мэдэгдлийг гүйцэтгэх үр дүнг хэрхэн олж авахыг ойлгохын тулд түүний гүйцэтгэлийн концепцийн диаграмыг авч үзье. Энэ схем нь цэвэр үзэл баримтлалтай, учир нь энэ схемийн дагуу алхам алхмаар гүйцэтгэсэнтэй адил үр дүн гарах нь баталгаатай. Үнэн хэрэгтээ бодит үр дүнг тодорхой DBMS-ийн "эзэмших" илүү боловсронгуй алгоритмаар олж авдаг.

1-р шат: Ганц SELECT мэдэгдлийг гүйцэтгэх

Хэрэв оператор нь UNION, EXCEPT, INTERSECT гэсэн түлхүүр үгсийг агуулж байвал асуулга нь хэд хэдэн бие даасан асуулгад хуваагддаг бөгөөд тус бүр нь тус тусад нь гүйцэтгэгдэнэ.

Алхам 1 (FROM). Шаардлагатай FROM зүйлд заасан бүх хүснэгтийн шууд декартын үржвэрийг тооцоолно. 1-р алхамын үр дүнд бид А хүснэгтийг авна.

Алхам 2 (ХАААН). Хэрэв SELECT мэдэгдэлд WHERE өгүүлбэр байгаа бол 1-р алхамд авсан хүснэгт А-г А хүснэгтийн мөр бүрт WHERE заалтад өгөгдсөн нөхцөлт хэллэгийг үнэлнэ. Зөвхөн нөхцөлт илэрхийлэл нь ҮНЭНийг буцаадаг мөрүүдийг үр дүнд оруулна. Хэрэв WHERE заалтыг орхигдуулсан бол 3-р алхам руу шууд очно уу. Хэрэв нөхцөлт илэрхийлэл нь үүрлэсэн дэд асуулгатай бол тэдгээрийг энэхүү концепцийн схемийн дагуу үнэлнэ. 2-р алхамын үр дүнд бид В хүснэгтийг авна.

Алхам 3 (БҮЛЭГЛЭХ). Хэрэв SELECT мэдэгдэлд GROUP BY заалт байгаа бол хоёр дахь алхамд олж авсан В хүснэгтийн мөрүүдийг GROUP BY заалтад заасан бүлэглэх жагсаалтын дагуу бүлэглэнэ. Хэрэв GROUP BY заалтыг орхигдуулсан бол 4-р алхам руу шууд очно уу. 3-р алхамын үр дүнд бид C хүснэгтийг авна.

Алхам 4 (ЭЗЭНД БАЙХ). Хэрэв SELECT команд нь HAVING өгүүлбэр агуулсан байвал HAVING заалтад өгөгдсөн нөхцөлт илэрхийллийг хангахгүй байгаа бүлгүүдийг хасна. Хэрэв HAVING хэсгийг орхигдуулсан бол 5-р алхам руу шууд очно уу. 4-р алхамын үр дүнд бид D хүснэгтийг авна.

Алхам 5 (СОНГОХ). 4-р алхамд авсан бүлэг бүр дараах байдлаар нэг үр дүнгийн мөр үүсгэдэг. SELECT зүйлд заасан бүх скаляр илэрхийллийг үнэлнэ. GROUP BY заалтыг ашиглах дүрмийн дагуу ийм скаляр илэрхийлэл нь бүлэг бүрийн бүх мөрөнд ижил байх ёстой. Бүлэг бүрийн хувьд SELECT хэсэгт өгөгдсөн нэгтгэсэн функцүүдийн утгыг тооцоолно. Хэрэв GROUP BY заалт байхгүй, гэхдээ SELECT заалтад нэгтгэх функцүүд байгаа бол зөвхөн нэг бүлэг байна. Хэрэв GROUP BY өгүүлбэр, нэгтгэх функц байхгүй бол одоог хүртэл сонгосон мөрийн тоогоор олон бүлэг байна гэж үзнэ. 5-р алхамын үр дүнд бид SELECT хэсэгт жагсаасан элементийн тоотой тэнцэх хэмжээний багана, сонгосон бүлгүүдийн аль болох олон мөрийг агуулсан хүснэгт Е-г олж авна.

2-р үе шат. UNION, БУСАД, INTERSECT үйлдлүүдийг гүйцэтгэх

Хэрэв SELECT команд нь UNION, EXCEPT, INTERSECT гэсэн түлхүүр үгсийг агуулж байсан бол 1-р шатны үр дүнд бий болсон хүснэгтүүдийг нэгтгэж, хасаж, огтолно.

Үе шат 3. Үр дүнг захиалах

Хэрэв SELECT мэдэгдэлд ORDER BY заалт байгаа бол өмнөх алхмуудад олж авсан хүснэгтийн мөрүүдийг ORDER BY зүйлд өгөгдсөн эрэмбийн жагсаалтын дагуу эрэмбэлнэ.

SQL SELECT мэдэгдэл нь мэдээллийн сангаас өгөгдөл сонгох асуулгад зориулагдсан. Үүнийг ямар ч нөхцөлгүйгээр (бүх баганын бүх мөрийг сонгох эсвэл тодорхой баганын бүх мөрийг сонгох) эсвэл WHERE зүйлд заасан олон нөхцөлтэй (тодорхой мөрүүдийг сонгох) ашиглаж болно. Өгөгдөл сонгох эдгээр нөхцлийг тохируулахад ашиглаж болох SQL хэрэгслүүдтэй танилцаж, мөн дэд асуулгад SELECT мэдэгдлийг хэрхэн ашиглах талаар сурцгаая.

Хүснэгтийн баганыг сонгохын тулд SELECT дарна уу

Хүснэгтийн бүх баганыг сонгох SELECT мэдэгдэл бүхий асуулга нь дараах синтакстай байна.

TABLE_NAME-аас * СОНГОХ

Өөрөөр хэлбэл, хүснэгтийн бүх баганыг сонгохын тулд та SELECT гэдэг үгийн ард одоор тавих хэрэгтэй.

Жишээ 1.Компанийн мэдээллийн сан байдаг - Компани. Үүнд Org (Компанийн бүтэц) болон Ажилтнууд (Ажилтнууд) гэсэн хүснэгтүүд багтсан болно. Та хүснэгтээс бүх баганыг сонгох хэрэгтэй. Орг хүснэгтээс бүх баганыг сонгох харгалзах асуулга дараах байдалтай байна.

ORG-с * СОНГОХ

Энэ асуулга нь дараахь зүйлийг буцаана (зураг томруулахын тулд хулганы зүүн товчийг дарна уу):

Ажилтны хүснэгтээс бүх баганыг сонгох асуулга дараах байдалтай байна.

АЖИЛТнаас * СОНГОХ

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


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

TABLE_NAME-аас СОНГОХ_БАГАНА СОНГОХ

Жишээ 2.Та Байгууллагын хүснэгтээс компанийн хэлтсийн тоо, тэдгээрийн нэрсийн талаархи мэдээллийг агуулсан Depnumb болон Deptname баганыг сонгохыг хүсч байна гэж бодъё. Ийм дээж авах хүсэлт нь дараах байдалтай байна.

ORG-с DEPNUMB, DEPTNAME СОНГОХ

Ажилтны хүснэгтээс та тухайн ажилтны ажиллаж буй хэлтсийн тоо, түүний нэр, албан тушаалын талаархи мэдээллийг агуулсан DEPT, NAME, JOB гэсэн багануудыг сонгох хэрэгтэй.

АЖЛЫН БАЙГУУЛЛАГА, НЭР, АЖЛЫГ СОНГОХ

Хүснэгтийн тодорхой мөрүүдийг сонгохын тулд SELECT командын хамт танд WHERE түлхүүр үг хэрэгтэй бөгөөд энэ нь бидний сонирхсон мөрөнд байгаа тодорхой утгыг эсвэл хэд хэдэн утгыг зааж өгөх болно. Хамгийн энгийн нөхцлүүдийг харьцуулах ба тэгшитгэх операторууд (, =), мөн IS түлхүүр үг ашиглан тодорхойлно. Хэд хэдэн нөхцөл байж болох бөгөөд дараа нь тэдгээрийг AND түлхүүр үг ашиглан жагсаана. Мөр сонгох асуулга нь дараах синтакстай байна:

Жишээ 4.Өмнөх жишээнд бид хүснэгтээс мөрүүдийг зөвхөн нэг баганын утгаар сонгосон - DEPT. Одоо та 38-р хэлтэст ажилладаг, албан тушаал нь бичиг хэргийн ажилтан болох ажилтнуудын талаархи мэдээллийг сонгох хэрэгтэй гэж бодъё. Үүнийг хийхийн тулд WHERE хэсэгт харгалзах утгуудыг AND үгийг ашиглан жагсаах ёстой.


Жишээ 5.Та ажилтнуудын хүснэгтээс шимтгэлийн хэмжээ нь тодорхойгүй байгаа ажилтнуудын таних тэмдэг, нэрийг сонгох хэрэгтэй гэж бодъё. Үүнийг хийхийн тулд WHERE хэсэгт COMM - NULL баганын утгыг зааж өгөхөөс өмнө тэнцүү тэмдэг биш харин IS гэсэн үгийг оруулах хэрэгтэй.

Энэ асуулга нь дараах өгөгдлийг буцаана.


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

SELECT ба IN, OR, BETWEEN, LIKE гэсэн предикатуудыг ашиглана

ХААНА хэсэг дэх IN, OR, BETWEEN, LIKE гэсэн үгс нь мөн та "IN, OR, BETWEEN) эсвэл мөр дэх утгыг (LIKE) сонгох боломжийг олгодог. ширээ. IN, OR, BETWEEN предикаттай асуулга нь дараах синтакстай байна:

LIKE предикаттай асуулга нь дараах синтакстай байна:

Жишээ 7.Та Ажилтны хүснэгтээс 20 эсвэл 84 дугаартай хэлтэст ажиллаж байсан ажилчдын нэрс, албан тушаал, ажилласан жилийг сонгохыг хүсч байна гэж бодъё. Үүнийг дараах асуултын тусламжтайгаар хийж болно.

Хүсэлтийн үр дүн:


Жишээ 8.Одоо та өмнөх жишээн дээрхтэй ижил өгөгдлийг Ажилтны хүснэгтээс сонгохыг хүсч байна гэж бодъё. OR гэсэн үгтэй асуулга нь IN гэсэн үгтэй, хаалтанд сонирхсон утгуудыг жагсаасан асуулгатай төстэй. Хүсэлт нь дараах байдалтай байна.

Жишээ 9. 15,000-аас 17,000 хүртэл цалинтай ажилчдын нэрс, албан тушаал, ажилласан жилийг ижил хүснэгтээс сонгоно уу.

Хүсэлтийн үр дүн:


LIKE предикат нь апостроф (") хоорондох предикатын дараа заасан тэмдэгтүүдийг агуулсан утгуудыг сонгоход хэрэглэгддэг.

Жишээ 10.Нэг хүснэгтээс нэр нь S үсгээр эхэлсэн, 7 тэмдэгтээс бүрдэх ажилчдын нэрс, албан тушаал, ажилласан жилийг сонгоно уу.

Доод зураас (_) ямар ч тэмдэгтийг илэрхийлнэ. Хүсэлтийн үр дүн:


Жишээ 11.Нэр нь S үсгээр эхэлсэн, ямар ч тоогоор бусад үсэг агуулсан ажилчдын нэрс, албан тушаал, ажилласан жилийг ижил хүснэгтээс сонгоно уу.

Хувийн тэмдэг (%) нь дурын тооны тэмдэгтийг хэлнэ. Хүсэлтийн үр дүн:


IN, OR, BETWEEN, LIKE гэсэн предикатуудыг ашиглан тодорхойлсон утгуудыг NOT гэдэг үгийг ашиглан урвуулж болно. Дараа нь хүссэн өгөгдөл нь эсрэг утгатай болно. Хэрэв бид NOT IN (20, 84)-ийг ашиглавал 20 ба 84 гэсэн тооноос бусад бүх хэлтэст ажиллаж байгаа ажилчдын мэдээлэл гарч ирэх болно. 15000-аас 17000 хүртэлх зайд. NOT LIKE-тэй асуулга нь нэр нь эхлээгүй эсвэл NOT LIKE гэж заасан тэмдэгт агуулаагүй ажилчдын өгөгдлийг буцаана.

SQL асуулгыг өөрөө SELECT болон IN, IN NO, BETWEEN гэсэн үгээр бичээд дараа нь шийдлүүдийг харна уу.

"Театр" мэдээллийн сан бий. Play хүснэгт нь үйлдвэрлэлийн талаарх мэдээллийг агуулдаг. Багийн ширээ - жүжигчдийн дүрүүдийн тухай. Жүжигчдийн хүснэгт нь жүжигчдийн тухай юм. Захирлын хүснэгт - захирлуудын тухай. Хүснэгтийн талбарууд, үндсэн болон гадаад түлхүүрүүдийг доорх зургаас харж болно (томруулахын тулд хулганы зүүн товчийг дарна уу).


Жишээ 12.Гол дүрд хэзээ ч тоглож байгаагүй жүжигчдийн жагсаалтыг харуул. Багийн хүснэгтэд үндсэн үүргүүдийн талаархи мэдээллийг үндсэн багийн баганад оруулсан болно. Хэрэв дүр нь гол бол харгалзах мөрөнд "Y" тэмдэглэгдсэн байна.

SELECT ба ORDER BY - мөрүүдийг эрэмбэлэх (захиалга өгөх).

Өнөөг хүртэл хэлэлцсэн SQL SELECT асуулга нь ямар ч дарааллаар байж болох мөрүүдийг буцаасан. Гэсэн хэдий ч та мөрүүдийг тоон дараалал, цагаан толгой болон бусад шалгуураар эрэмбэлэх шаардлагатай болдог. Үүнийг ORDER BY түлхүүр үг ашиглан хийнэ. Ийм хүсэлтүүд дараах синтакстай байна:

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

ASC гэдэг үг нь эрэмбэлэх дараалал өсөж байгааг харуулж байна. Өсөх эрэмбэ нь анхдагч учраас энэ үг заавал биш юм. Хүсэлтийн үр дүн:


Жишээ 16.Өмнөх жишээн дээрхтэй ижил өгөгдлүүдийг сонгох шаардлага тавигдаж, харин бүртгэлийг ажилласан жилийн тоогоор нь буурах дарааллаар эрэмбэлнэ үү.

DESC гэдэг үг нь эрэмбэлэх дарааллыг бууруулж байгааг харуулж байна. Хүсэлтийн үр дүн:


SELECT ба DISTINCT - давхардсан мөрүүдийг арилгах

Хүснэгтийн мөрийн утгыг өвөрмөц болгож тохируулаагүй тохиолдолд асуулгын үр дүнд давхардсан мөрүүд гарч ирж болно. Ихэнхдээ та зөвхөн өвөрмөц мөрүүдийг гаргах хэрэгтэй. Үүнийг SELECT мэдэгдлийн дараа DISTINCT илэрхийллийг ашиглан хийнэ.

Жишээ 17.Та 30-аас бага хэлтэст ямар хэлтэс байдаг, ямар албан тушаалууд байгааг мэдэхийг хүсч байна гэж бодъё. Үүнийг дараах асуулга ашиглан хийж болно.

Хүсэлтийн үр дүн:


SQL дэд асуулга дахь SELECT мэдэгдэл

Одоогийн байдлаар бид SELECT мэдэгдэл бүхий SQL-ийн бүтцийг судалж үзсэн бөгөөд үүнд өгөгдөл сонгох нөхцөл, сонгосон өгөгдөл нь ижил мэдээллийн сангийн хүснэгтэд агуулагддаг. Практикт сонгох шаардлагатай өгөгдөл нь нэг хүснэгтэд, нөхцлүүд нь нөгөө хүснэгтэд агуулагддаг байх нь олонтаа тохиолддог. Энд дэд асуулга аврах ажилд ирдэг: сонголтын нөхцлийн утгууд нь SELECT-ээс эхлэн өөр асуулгаас (үүрсэн асуулга) буцаж ирдэг. Дэд асуулгатай асуулга нь нэг буюу хэд хэдэн мөрийг буцааж болно.

Жишээ 18.Бүгд ижил ORG болон STAFF хүснэгтүүд. Та 280 дугаартай ажилтан аль хэлтэст ажилладаг, энэ хэлтэс хаана байрлаж байгааг мэдэхийг хүсч байна гэж бодъё. Харин хэлтэсүүдийн талаарх мэдээллийг ORG хүснэгтэд, ажилтнуудын талаарх мэдээллийг STAFF хүснэгтэд хадгалдаг. Үүнийг гаднах SELECT нь ORG хүснэгтэд, дотоод SELECT нь STAFF хүснэгтэд хандах дэд асуулга бүхий дараах асуулга ашиглан хийж болно:

Хүсэлтийн үр дүн:


Жишээ 19.Одоо та ямар хэлтэст (давхардалгүйгээр) 13,000-аас доош цалинтай ажилчид ажилладаг болохыг олж мэдэх хэрэгтэй гэж бодъё. Үүнийг хийхийн тулд гаднах SELECT (ORG хүснэгтийн асуулга) хэсэгт ХААНА гэсэн нөхцөлийг зааж өгсөн болно. утгын муж (IN) ба дотоод SELECT (STAFF хүснэгтэд) шаардлагатай утгын мужийг буцаана:

Харилцааны мэдээллийн сан ба SQL хэл

© 2024 ermake.ru -- Компьютер засварын тухай - Мэдээллийн портал