Қоғам oracle деректер қорын басқару жүйелері


SELECT SEQ.NEXTVAL FROM DUAL



Pdf көрінісі
бет16/23
Дата29.03.2023
өлшемі0,98 Mb.
#173212
1   ...   12   13   14   15   16   17   18   19   ...   23
Байланысты:
kt 2

 
SELECT SEQ.NEXTVAL FROM DUAL 
 
Оны деректерді кестеге салу кезінде бірншілік кілттің мәнін генерация 
жасау үшін пайдалануға тырысып көрейік:
 INSERT INTO ALL_ORACLE_USERS (ID, NICK_NAME, REG_DATE) 
VALUES (SEQ.NEXTVAL, ‘USER_TEST’, ‘01/01/2010’) 
 
Тізбектілік параметрлерін өзгерту.
Тізбектілік 
атрибуттарын 
өзгерту 
үшін 
ALTER 
SEQUENCE
конструкциясы қолданылады. 
INCREMENT BY, MAXVALUE, MINVALUE, 
CYCLE и CACHE
атрибуттарын өзгертуге болады, алайда 
START WITH
өзгертілмейді. Мысалы: 
ALTER SEQUENCE SEQ INCREMENT BY 2; 
 
Егер 
START WITH
атрибутын өзгерту керек болса, немесе ағымдағы 
тізбектілік мәнін сұрау керек болса, онда оны жою, жаңа атрибуттармен 
қайта құру, және де оған барлық керекті мүмкіндіктерді туғызу керек. 
Тізбектілікті жою.
Жою үшін 
DROP SEQUENCE
конструкциясы пайдаланылады. Мысалы: 
DROP SEQUENCE SEQ; 
Синонимдер базалық нысандардың атауын өзгерте алады және орнын 
алмасытар алады. Мұндайда синонимдер ғана қайта анықталады, ал 
қосымшаларда ешқандай өзгерістер болмайды. 
Синонимдердің екі түрі бар: 


29 
1) Жеке (PRIVATE) – синонимдер нақты пайдаланушының сұлбасында 
көрінеді және тек пайдаланушының өзі үшін ғана, сонымен қатар ол өзі 
сәйкес рұқсатттылықтарды берген адамға ғана қолжетімді. 
2) Ортақ (PUBLIC) – бұл синонимдердің иелері – арнайы 
пайдаланушылар тобы – PUBLIC, соның нәтижесінде бұл синонимдер 
деректер қорының барлық пайдаланушылары үшін қолжетімді. 
Синонимдерді жасау.
Жеке синонимдерді жасау үшін CREATE SYNONYM мүмкіндігіне ие 
болу керек, басқа пайдаланушның сұлбасында синоним құру құқығын алу 
үшін CREATE ANY SYNONYM мүмкіндігі керек. Ортақ синоним құру үшін 
CREATE PUBLIC SYNONYM мүмкіндігі керек. 
Синонимдерді құру үшін CREATE SYNONYM немесе CREATE 
PUBLIC SYNONYM конструкциялары пайдаланылады, ол құрылып отырған 
синонимнің түріне де байланысты. Нақты нысан болған кезде мүмкіндікке 
қолжтеркізу міндетті емес. 
CREATE SYNONYM [имя_синонима] FOR[имя_объекта] 
CREATE PUBLIC SYNONYM [имя_синонима] FOR [имя_объекта] 
 
Синонимдерд жою.
Пайдаланушы өз сұлбасында синонимнің кез келген бөігін жоя алады. 
Басқа пайдаланушының сұлбасында жеке синонимді жою үшін DROP ANY 
SYNONYM мүмкіндігі керек, ал ортақ синонимді жою үшін – DROP PUBLIC 
SYNONYM мүмкіндігі керек. 
Жою үшін – DROP SYNONYM оператры қолданылады. Ортақ 
синонимді жою үшін - DROP PUBLIC SYNONYM. Мысалы, ертеректе 
жаалған синонимддері жояйық: 
DROP SYNONYM SYN_ALL_ORACLE_USERS; 
DROP PUBLIC SYNONYM SYNP_ALL_ORACLE_USERS 
Функцияларға негізделген индектер.
UPPER (column_name) немесе LOWER (column_name) кілттік сөздері 
арқылы жарияланған Function-based индекстері іздестіру регистрына 
тұрақсыздықты қолдануға мүмкіндік береді. Мысалы, келесі индекс: 
CREATE INDEX upper_last_name_idx
ON employees (UPPER(last_name)) 
Сұрау үдерісін жеңілдетеу үшін: 
SELECT * FROM employees WHERE UPPER(last_name) = 'KING' 
Oracle сервері кепілдік бере отырып, индексті пайдаланылуы үшін 
(толық сканерлеудің орнына кестелер), функцияның мәні келесі сұрауларда 
анықталмаған болып табылады. Мысалы, келесі доменда индексті 
пайдалануға кепілдік береді, алайда WHERE сипатынсыз Oracle сервері 
кестенің толық маскасын орындауға мүмкіндік береді: 
SELECT * FROM employees WHERE UPPER (last_name) IS NOT NULL 


30 
ORDER BY UPPER (last_name) 
Oracle сервері DESC арқылы 
function-based
индекстері ретінде 
белгіленген колонналар арқылы өңдейді. DESC арқылы белгіленген 
колонналар ағымдағы емес ретпен саналады. 
Индексті жою үшін DROP INDEX командасы пайдаланылады 
DROP INDEX upper_last_name_idx 
 
SQL тілінде деректерді модификациялау құралы. 
Деректерді 
модификациялау болуы мүмкін үш операцияны бөледі: қою (вставка), 
өзгерту және жою. Бұл бөлімде осы операциялар SQL тілінің құралдары 
арқылы қалай жасалатыны көрсетіледі. 
 
Мәнді кестеге қою.
Мәнді кетеге қарапайым қою. 
Мәнді кетеге қою үшін SQL-оператор 
INSERT қызмет етеді. Бұл операторда екі форма бар, ол кестенің барлық 
бағаналарына мән тиесілі ме, соған байланысты. Егер барлық бағандардың 
мәндері көрсетілсе, онда оператор келесі түрге ие болады: 
INSERT INTO hr.employees VALUES(900, 'Ivan', 'Ivanov', 
Upper(substr('Ivan',1,1) || 'Ivanov'), '555-55-55',sysdate, 
'SH_CLERK', null, null,null, null); 
Егер, қандай да бір бағана үшін деректер жоқ болса, онда жіберілетін 
мәндер үшін NULL кілттік сөзін пайдалануға болады:
Кеңейтілген оператор INSERT пайдалануға болады. 
INSERT [conditional_insert_clause] 
[insert_into_clause values_clause] (subquery) 
[ALL|FIRST] [WHEN condition THEN] [insert_into_clause 
values_clause] [ELSE] [insert_into_clause values_clause]
 
Бірнеше жолды бір кестеге буақыттық шартты қоюды орындау 
INSERT

ALL
(
SELECT 
операторының 
командасынада 
қатысу 
міндетті

командасының көмегімен жүруі мүмкін 
CREATE table tab1 (f1 number, f2 varchar2(255)); 
Table created. 
INSERT ALL 
INTO tab1 (f1,f2) VALUES (1,'One') 
INTO tab1 (f1,f2) VALUES (2,'Two') 
INTO tab1 (f1,f2) VALUES (3,'Three') 
SELECT * FROM DUAL; 
Егер басқа кесетеден үлкен көлемді деректерді көшіру талап етілсе
онда олардың мәндерін SELECT операторының көмегімен алуға болады. 
 
INSERT INTO sales_reps(id, name, salary, commission_pct) 
SELECT employee_id, last_name, salary, commission_pct 
FROM employees WHERE job_id LIKE '%REP%'; 


31 
Мұндай жағдайда VALUES кілттік сөзі SELECT операторының 
құрамына кіретініне назар аударыңыз. 
 
Деректердің өзгеруі.
Бар деректердің мәндері SQL-операторының UPDATE көмегімен 
өзгертілуі мүмкін. Назарға алу керек, бұл мықты команда және оның 
абайлап пайдалану керек.
Келесі мысалды қарастырайық.
Қызметкердің нөмірі мен жаңа жалақысы туралы ақпарат сұрайтын 
Oracle SQL командасын жазайық, және де алынған ақпараттың негізінде 
кестеге өзгеріс енгізейік hr.employees (бұл қызметкер үшін жалақыны 
өзгерткен). Қызметкерің нөмірі employee_id бағанасында, ал жалақысы — 
salary бағанасында көрсетілген. 
Ескерту:
жіберіледі, алдымен жаңа жалақы туралы сұрау, ал содан соң 
– бағанның аты туралы сұрау.
Осы өзгерісті енгізе отырып, сіз қате жібердіңіз және WHERE сөйлемі 
туралы ұмытып кеттіңіз дейік. Соңында, егер 
salary
бағанының шектеуі 
бұзылса (мысалы, уникальдылығы бойынша шектеу), онда барлық 
EMPLOYEES
кестесіндегі 
salary
бағанында ионитордан енгізілген бір мән болады. 


Достарыңызбен бөлісу:
1   ...   12   13   14   15   16   17   18   19   ...   23




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет