Sql


Жоспар

  1. SQL сұраныс тілі
  2. Ақпараттарды басқару операторлары
  3. Қолданылған әдебиеттер.

SQL тілі қазіргі кезде мәліметтер қорын басқару жүйесінің бірден-бір стандартты тілі болып табылады. SQL - Structured Queries Language сөзініңқысқартылған түрі, аударылғанда сұраныстың құрылымдық тілі дегенді білдіреді. SQL тілі реляциялық типтегі мәліметтермен жұмыс істеуге арналған. Ол реляциялық МҚБЖ пайдаланушы істейтін барлық негізгі мүмкіндіктерді жүзеге асырады:

мәліметтерді ұйымдастыру - мәліметтер қорының құрылымын құру және өзгерту;

мәліметтерді оқу; кешені.

мәліметтерді өңдеу - мәліметтерді қосу, өзгерту және өшіру;

мәліметтерге кіру мүмкіндігін басқару - мәліметтерді оқу және өзгерту үшін пайдаланушыға шектеу мүмкіндіктерін беру;

мәліметтерді бірге пайдалану - бірнеше пайдаланушылар мәліметтерді жалпы пайдалану;

мәліметтердің бүтіндігі - жүйе істен шыққанда немесе басқа жағдайларда бұзылудан мәліметтерді қорғау;

SQL тілі келесі DML, DDL яғни кіру мүмкіндігін басқару, транзакциямен басқару топтарынан тұратын командалар жүйесінен тұрады;

DML (Date Manipulation Language) мәліметтерді өзгерту тілі;

SELECT - мәліметті оқуға сұраныс;

INSERT - мәліметтер қорында жаңа жазбаларды енгізу (қосу) ;

DELETE - мәліметтер қорында жазбаларды өшіру;

DDL (Date Definition Language) мәліметтерді анықтау тілі;

CREATE TABLE - жаңа кесте құру, оның құрылымын сипаттау;

DROP TABLE - кестені өшіру;

Кіру мүмкіндігін басқару

DROP INDEX - индексті жою;

GRANT - пайдаланушыға шектеу мүмкіндігін беру;

REVOKE - пайдаланушыға шектеу мүмкіндігін алып тастау;

Транзакцияны басқару

COMMIT-транзакцияны аяқтау;

ROLLBACK-транзакцияны алып тастау;

Пайдаланушы не интерактивті режимде, немесе программада SQL сұранысын МҚБЖ -ға жібереді. Нәтижесінде МҚБЖ МҚ-н қарап шығады, мәліметтерді сәйкес түрде өңдеп және сұралып тұрған ақпаратты пайдаланушыға кесте түрінде береді.

SQL- тілі мәліметтер базасындағы кестелер мен және кестедегі мәліметтермен жұмыс істейтін іс- әрекеттерді орындауға бағытталған.

Бұл тілдің процедуралық программалау тілдерінен айырмашылығы,

SQL- тілінде енгізу- шығару құралдары және есептеу үрдісін басқару (цикл, көшу, тармақталу) нұсқалары жоқ.

SQL-сұранысының екі түрі бар:

1. Статикалық

2. динамикалық

Статикалық SQL- сұранысы өңдеу кезеңінде бастапқы кодқа қосылады

және қосымшаның орындалу үрдісінде өзгермейді. ¤ңдеуші текстініде басқа

параметрлер болса, сол параметрлердің көмегімен ғана SQL- сұранысты өзгертуге болады.

Динамикалық SQL- сұраныстың коды қосымшаның орындалу үрдісінде

өзгереді немесе қалыптасады. Мұндай сұраныс қолданушының іс-

әрекеттерін ескеру керек деген жағдайларда ғана қолданады.

SQL- тілінің бірнеше стандарттары бар. Соның ішінде ең көп тараған

стандарттар SQL -89 және SQL-92.

Америка ұлттық стандарттар институты (ANSI, American National

Standards Institute) және стандарттау бойынша Бүкіл әлемдік ұйымы

(ISO, International Standards Organization) бірігіп қолданған SQL-92

стандартын, басқаша ANSI немесе ANSI/ISO деп те атайды.

SQL-тілінде төмендегідей көптеген негізгі нұсқауларды көрсетуге болады:

Мәліметтерді анықтау;

Мәліметтерді өңдеу;

Мәліметтерге қатынас құруды басқару;

Транзакциямен басқару;

SQL- тілі нұсқасының негізгі мүмкіншіліктері;

Бұл нұсқаны SQL-92 стандарттарынан бірнеше айырмашылығы бар.

Delphi қосымшаларында BDE-механизімін пайдаланып, SQL-

нұсқаларын орындау үшін, Query мәліметтерін пайдалануға болады. SQL-

сұранысының тексті Query компонентінің SQL-қасиетінің мәні екендігін

және ол қосымшаны әзірлеу барысында немесе орындалу барысында

қалыптасатындығын ескерте кеткен жөн. Query компоненті SQL-

сұранысының орындалуын және сәйкес мәліметтер қатарын алуын қамтамассыз етеді.

Мәліметтер қабылдауда ұйымдастыру Active қасиетінің мәні True болғанда немесе Open әдісін шақыру арқылы Query компонентін активизациялау кезінде ғана орындалады.

SQL- тілінің басқада программалау тілдері секілді өзіндік функциялары бар.

Ең көп қолданылатындары:

Агрегатық немесе статистикалық функциялар:

AVG () -(орташа мән)

MAX () -(ең үлкен мән)

MIN () -(ең кіші мән)

SUM () -(сумма)

COUNT () -(мәндердің саны)

COUNT () -(нөлге тең емес мәндердің саны)

Жолдармен жұмыс істейтін функциялар:

UPPER (str) -( str жолының символдарының жоғары регисторға

ауысуы) ;

LOWER (str) -( str жолының символдарының төменгі регисторға

ауысуы) ;

TRIM (str) -( str жолының бастапқы және соңғы бос орындарын жою) ;

SUBSTRING (str From n1 to n2) -(str n1 n2) -( str жолында n1

симвлоынан басталып n2 символынан аяқталатын символдарды белгілеу) ;

CAST (<Expression>AS <Type>) -(Expression өрнегін Type типіне

келтіру) ;

Уақыт пен күннің жадын декодтау функциялары;

EXTRACT(<элемент>From<өрнек>) (уақыт пен күннің жадынан тұратын өрнектен, элементке сәйкес келетін мәнді алуға болады)

Қәзіргі кезде SQL2 және SQL3 стандарттары кеңінен таралған.

SQL-тілінің элементтері:

- кілттік сөз;

- аты;

- тұрақтылар;

- мәліметтер типі;

- функциялар;

- өрнектер.

Кілттік сөз-бұл ағылшын тілінің белгіленген жиыны, ол сұраныстың типін және бұл сұраныстың орындалуы үшін қажетті ақпараттарды анықтайды.

Команда бір немесе бірнеше сөйлемнен тұрады, олардың әр қайсысы кілттік сөзден басталады.

SQL1-де 100 кілттік сөз қоры бар, ал SQL2-де 300 сөз қоры бар.

Атаулар-таблицаны белгілеу үшін пайдалынылады.

Аты- кесте атын, кесте бағанының атын, мәліметтер қорының атын белгілеу үшін қолданады.

Команда таблицаларға және бағандарға ауысу кезінде олардың аттары көрсетіледі.

Құрылған SQL тілін пайдалану арқылы программалау. Ақпараттарды басқару операторлары.

SQL/89 стандартындағы сұраныс құрылысы туралы толық әрі нақты таныту үшін синтаксистік ережелерден бастау қажет:

<cursor specification> ::=

<query expression> [<order by clause>]

<query expression> ::=

<query term>

<query expression> UNION [ALL] <query term>

<query term> ::=

<query specification>

(<query expression>)

<query specification> ::=

(SELECT [ALL DISTINCT] <select list> <table expression>)

<select statement> ::=

SELECT [ALL DISTINCT] <select list>

INTO <select target list> <table expression>

<subquery> ::=

(SELECT [ALL DISTINCT] <result specification>

<table expression>

<table expression> ::=

<from clause>

[<where clause>]

[<group by clause>]

[<having clause>]

Тіл синтаксистік конструкциясның үш типін жібереді. Олар SELECT тірек сөзінен басталады: курсор спецификациясы (cursor specification), іріктеу операторы (select statement) және ішкісұраныс (subquery) . Осыландың ішіндегі ең негізгісі «кестелі көрініс (table expression) » синтаксистік конструкциясы.

Кестелі көріністің семантикасы from, where, group by и having тарауларын кезекті қолдануға негізделеді. From тарауында тапсырылған кестелерден нәтижелі жаңа кестелер туындайды. Кесте жолдарының тәртібі анықталмаған және дубликаттары болатын жолдар арасындағы тәртіпте қамтылмаған (яғни жалпы алғанда кестелі көріністің кесте-нәтижесі мультикөп жолдардан құралады) . Негізінен, кестелі көріністің құрылымы SQL/89сұраныс тілінің құрылымына ұқсас келеді. Біз кестелі көрініс тарауының мазмұны мен құрылымын төменде тереңінен қарастыратын бтоламыз, ал қазір кестелі көрініске енетін үш құрылымды нақтырақ талқылап көрелік.

Курсорлар. Динамикалық және статикалық SQL. Сақталған процедуралар.

Бұл топтың операторлары бірнеше курсорлармен жұмыс жасаған операцияларды біріктіреді, оның хабарламасы құрылған SQL бағдарламасында немесе модулінде сақталуы тиіс.

Курсор хабарламасының операторы

Ыңғайлы болу үшін бұл жерде біз алда айтылып өткен курсор хабарламасының синтаксистік ережелерін қайталап өтейік:

<declare cursor> ::=

DECLARE <cursor name> CURSOR FOR <cursor specification>

<cursor specification> ::=

<query expression> [<order by clause> . . . ]

<query expression> ::=

<query term>

<query expression> UNION [ALL] <query term>

<query term> ::= <query specification> (<query expression>)

<order by clause> ::=

ORDER BY <sort specification>

[{, <sort specification>} . . . ]

<sort specification> ::=

{ <unsigned integer> <column specification> }

[ASC DESC]

Курсор хабарламасында UNION операциясын орындау мүмкіндігінің жалпы түріне сұраныс жасалуы ықттимал және соңғы нәтижені сұрыптауға сұраныс берілуі мүмкін. Бұл оператордың орындалуы мүмкін емес, ол тек курсор атауын курсор қасиеттерімен байланыстырады.

Курсорды ашу оперторы

Оператор мынадай синтаксистік ережелермен сипатталады:

<open statement> ::= OPEN <cursor name>

Құрылған SQL реализациялау үшін әдетте курсордың хабарламасы курсорды ашу операторымен алдын ала мәтін жағынан сәйкестендірілуін талап етеді. Курсорды ашу операторы тапсырылған курсормен тікелей байланысты орындалатын операторлар сериясында бірінші болып жүзеге асуы тиіс. Бұл операторды орындау барысында курсордың ол жұмысқа дайындалу сәті жүргізіледі. Жеке алғанда, нақ осы сәтте курсор қасиетінің негізгі SQL тілінде ауысқан мағыналарымен байланысы орын алады.

SQL тілін реализациялау көбінесе курсорды ашу операторын орындау барысында жүзеге асырылады және оның нәтижесі курсор қасиеттерінің компиляциясына әкеліп тірейді.

Келесі операторларды ашық курсор аясында еркін орындауға болады. Курсордың кезекті жолдарын оқу операторы

Оқу операторының синтаксисі мынадай:

<fetch statement> ::=

FETCH <cursor name> INTO <fetch target list>

<fetch target list> ::=

<target specification>[{, <target specification>} . . . ]

Оқу операторында курсордың аты және INTO тарауы міндетті түрде белгіленеді. Бұл тарауда бұйыру (белгілеу) қасиеттерінің тізімі беріледі. Бұйыру тізімінде көрсетілген сандар мен ақпарат типтері курсор спецификациясындағы іріктеу тізімінің сандары мен ақпарат типтеріне толықтай сәйкес келуі тиіс.

Кез келген ашық курсор әрқашан мынадай позицияда болады: ол нәтиже беретін кестенің кейбір жолдарының алдында белгіленуі мүмкін. (бірінші жолдың алдында немесе курсор ашылғаннан кейін артынша) . Яғни кейбір нәітиже жолдатрының алдында немесе нәтиженің соңғы жолынан кейін.

Егер курсор нұсқап отырған кесте бос күйінде болса, немесе курсор соңғы жолға не содан кейін белгіленсе, онда оқу операторын орындау кезінде курсор соңғы жолдан кейін орындалады, SQLCODE параметріне мағына енеді, INTO тарауында бірегейленген барлық мағыналар бүтіндей ене алмайды.

Егер курсор кесте жолының алдында белгіленсе, онда ол нақ сол жолда орындала береді және сол жолдың мағынасы сәйкес мақсаттарына ыңғайланып жүзеге асырыла береді.

Егер курсор r жолында белгіленсе, яғни соңғы жолдан ерекшенетін қатарда белгіленсе, онда курсор r жолынан кейінгі келесі қатарда орындалады және оның мағынасы сол келесі қатарда мақсаттарына сәйкес жүзеге асырылады.

Бір ғана мәселе туындайды, мағынасы айқындалмаған курсорды қалай параметрлеуге болады немесе кезекті жол қатарынан таңдалып алынған мағыналардың қайсысы айқындалмаған деп саналады деген сұрақты анықтауға мүмкіндік туады. SQL/89 операторында бұл мәселелер индикаторлы параметрлер мен ауыспалы параметрлерді пайдалану есебінен шешіледі. Егер АҚБЖ-нің басты бағдарламаларынан алынатын мағыналар немесе АҚБЖ-ндегі негізгі бағдарламалардан қабылданатын мағыналар айқындалмаған мағыналар боулы мүмкін, және бұл факт қолданбалы программистік қызығушылығын оятса, онда параметрдің спецификациясы немесе SQL операторындағы өзгерістер мынадай түрде көрініс табады: <parameter name>[INDICATOR] <parameter name> - бұл параметр спецификацияс кезінде орындалса, <embedded variable name>[INDICATOR] <embedded variable name> - операторлардың өзгеру спецификациясы кезінде орындалады. Индикаторлы параметрдің теріс мағынасы немесе индикаторлы өзгерістердің теріс мағынасы айқындалмаған мағына параметріне немесе ауыспалы мағына параметрлеріне сәйкес келуі тиіс.

Шептік (позициялық) жою операторы.

Бұл оператордың синтаксисі келесідей:

<delete statement: positioned> ::=

DELETE FROM <table name>

WHERE CURRENT OF <cursor name>

Егер операторда көрсетілген курсор ашық болып, бірнеше жолдарға белгіленген болса, және курсор өзгермейтін кестені танытатын болса, онда курсордың ағымдық қатары жойылады, ал ол келесі қатардың алдынан орын алады. DELETE операторының FROM тарауында көрсетілген таблица курсор спецификациясындағы FROM тарауының сыртқы шебіне көрінетін таблица болуы тиіс.

Шептік (позициялық) модификация операторы

Оператор мынадай синтаксистік ережелермен сипатталады:

<update statement: positioned> ::=

UPDATE <table name>

SET <set clause:positioned>

[{, <set clause:positioned>} . . . ]

WHERE CURRENT OF <cursor name>

<set clause: positioned> ::=

<object column:positioned> =

{ <value expression> NULL }

<object column: positioned> ::= <column name>

Егер ашу курсор операторында белгіленіп, бірнеше кесте жолында көрініс тапқан болса, және курсор өзгермелі кестені белгілейтін болса, онда курсордың ағымдық қатарлары SET тарауына сәйкес модификацияланады. Курсор позициясы өзгермейді. DELETE операторындағы FROM тарауында белгіленген кесте курсор спецификациясындағы FROM тарауының сыртындағы кестемен сәйкес келуі тиіс.

Курсорды жабу операторы

Осы оператордың синтаксисі мынадай:

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
SQL негіздері
SQL Server
SQL тілі туралы ақпарат
SQL кестелеріндегі мәліметтердің модификациясы
SQL-дің жүйелік құрылым және мәліметтер базасында қолданылуы
Sql-тілі
Кестелерге мәліметтер қосу
Ақпараттық жүйелерде қолданылатын кесте техникасының рөлі
Компьютерлік техниканың даму сатысы
SQL тілінің стандарты
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz