Аппараттық және бағдарламалық қамтамасыз етуді орнату

Sql-дегі деректер түрінің пайызы. Стандартты SQL деректер түрлері

Аттар.

Операторлар

SQL тілінің негізгі түсініктері

Әрбір SQL мәлімдемесі етістіктен басталады, яғни. кілт сөзОператор орындайтын әрекетті сипаттайтын A. Типтік етістіктерге SELECT (таңдау), CREATE (жасау), INSERT (қосу), DELETE (жою), COMMIT (толық) жатады. Етістіктен кейін бір немесе бірнеше сөйлем келеді. Сөйлем оператор жұмыс істейтін деректерді сипаттайды немесе оператор орындайтын әрекет туралы нақтылайтын ақпаратты қамтиды. Әрбір сөйлем WHERE (қайда), FROM (қайдан), INTO (қайда) және HAVING (бар) сияқты түйінді сөзден басталады. Оператордағы кейбір сөйлемдер міндетті, ал басқалары міндетті емес. Ұсыныстың нақты құрылымы мен мазмұны өзгеруі мүмкін. Көптеген сөйлемдерде кесте немесе баған атаулары болады; олардың кейбіреулерінде қосымша кілт сөздер, тұрақтылар және өрнектер болуы мүмкін.

ANSI/ISO стандарты етістіктер ретінде және операторлық сөйлемдерде қолданылатын түйінді сөздерді анықтайды. Стандартқа сәйкес бұл кілт сөздерді кестелер, бағандар және пайдаланушылар сияқты дерекқор нысандарын атау үшін пайдалануға болмайды.

Дерекқордағы әрбір нысанның бірегей атауы болады. атаулары қолданылады SQL мәлімдемелеріжәне оператор әрекетті қай дерекқор нысанында орындауы керектігін көрсетіңіз. ANSI/ISO стандарты кестелердің, бағандардың және пайдаланушылардың атаулары бар екенін анықтайды. Көптеген SQL іске асырулары сонымен қатар сақталатын процедуралар, атаулы бастапқы кілт-сыртқы кілт қатынастары және деректерді енгізу пішіндері сияқты қосымша аталған нысандарды қолдайды.

ANSI/ISO стандартына сәйкес, SQL атауларының ұзындығы 1 және 18 таңба аралығында болуы, әріптен басталуы және бос орындар немесе арнайы тыныс белгілері болмауы керек. SQL2 стандартында атаудағы таңбалардың максималды саны 128-ге дейін ұлғайтылды.

Кестенің толық атауы нүкте (.) арқылы бөлінген кесте иесінің аты мен өз атауынан тұрады. Мысалы, Әкімші атты пайдаланушыға тиесілі Студенттер кестесінің толық атауы келесідей:

Егер операторда баған атауы көрсетілсе, SQL сол мәлімдемеде көрсетілген кестелердің қайсысын қамтитынын анықтайды берілген баған. Дегенмен, егер сіз әртүрлі кестелерден екі бағанды ​​қосқыңыз келсе, бірақ мәлімдемеде аты бірдей болса, олардың орнын бірегей түрде анықтайтын толық баған атауларын көрсетуіңіз керек. Толық жарамды баған атауы бағанды ​​қамтитын кесте атауынан және нүктемен (.) бөлінген баған атынан (қарапайым атау) тұрады. Мысалы, Студенттер кестесіндегі StName бағанының толық жарамды атауы: Students.StName



ANSI/ISO стандарты ақпаратты көрсету үшін пайдалануға болатын деректер түрлерін анықтайды реляциялық мәліметтер базасыдеректер. SQL1 стандартында қол жетімді деректер түрлері тек минималды жиын болып табылады және барлық коммерциялық ДҚБЖ-да қолдау көрсетіледі. Төменде SQL1 және SQL2 стандарттарында анықталған деректер түрлері берілген:

CHAR (ұзындық), CHARACTER (ұзындық) Тұрақты ұзындық таңба жолдары

VARCHAR(ұзындық), CHAR VARYING(ұзындық), CHARACTER VARYING(ұзындық) Айнымалы ұзындық таңба жолдары*

NCHAP(ұзындық), NATIONAL CHAR(ұзындық), NATIONAL CHARACTER(ұзындық) Тұрақты ұзындық локализацияланған таңбалар жолдары*

NCHAR VARYING (ұзындығы), NATIONAL CHAR VARYING (ұзындығы),

ҰЛТТЫҚ СИПАТ АЙРАЛУ(ұзындық) Жергілікті таңбалардың айнымалы ұзындық жолдары*

INTEGER, INT Бүтін сандар

SMALLINT Кіші бүтін сандар

BIT(ұзындық) Тұрақты ұзындықтағы бит жолдары*

BIT VARYNG(ұзындық) Айнымалы ұзындық бит жолдары*

САН (дәлдік, дәреже) , DECIMAL (дәлдік, дәреже),

DEC(дәлдік, дәреже) Масштабталатын бүтін (ондық) сандар

FLOAT(дәлдік) Жылжымалы нүкте сандары

REAL Төмен дәлдікті өзгермелі нүкте сандары

ҚОС ДАЛДЫҚ Жылжымалы нүкте сандары жоғары дәлдік

DATE Күнтізбе күні*

TIME (дәлдік) Уақыт

УАҚЫТ МӘРТЕБЕСІ(дәлдік) Күні мен уақыты*

INTERVAL Уақыт аралығы*

SQL1 келесі деректер түрлерін пайдаланады:

1. Тұрақты ұзындықтағы символдық жолдар. Бұл деректер түрі бар бағандарда әдетте адамдар мен компаниялардың атаулары, мекенжайлар, сипаттамалар және т.б. сақталады.

2. Бүтін сандар. Бұл деректер түрі бар бағандар әдетте тіркелгілер, сандар, жастар және т.б. туралы деректерді сақтайды. Тұтынушы, қызметкер немесе тапсырыс идентификаторы сияқты идентификаторларды сақтау үшін бүтін бағандар жиі пайдаланылады.

3. Масштабталатын бүтін сандар. Осы түрдегі бағандарда бар нөмірлер сақталады бөлшек бөлігівалюта бағамдары мен пайыздар сияқты дәл есептелуі керек. Сонымен қатар, мұндай бағандарда жиі сақталады) ақшалай құндылықтар.

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

SQL1 стандартында анықталған деректер типтерінен басқа, көптеген коммерциялық ДҚБЖ көптеген қосымша деректер типтеріне ие, олардың көпшілігі SQL2 стандартына кіреді. Ең маңыздылары төменде келтірілген:

1. Айнымалы ұзындықтағы символдық жолдар. Барлық дерлік ДҚБЖ ұзындығы белгілі бір ауқымда өзгеретін символдық жолдарды сақтауға мүмкіндік беретін VARCHAR деректер түрін қолдайды.SQL1 стандарты оң жақта бос орындармен толтырылған тұрақты ұзындықтағы жолдарды анықтайды.

2. Ақшалай құндылықтар. Көптеген ДҚБЖ әдетте ондық немесе өзгермелі нүкте нөмірі ретінде сақталатын MONEY немесе CURRENCY деректер түрін қолдайды. Ақшалай құндылықтарды көрсетуге арналған жеке деректер түрінің болуы оларды экранда көрсетілгенде дұрыс пішімдеуге мүмкіндік береді.

3. Күні мен уақыты. Күн/уақыт мәндерін қолдау әртүрлі ДҚБЖ-да кең таралған, бірақ оны жүзеге асыру тәсілі біршама өзгереді. Әдетте, осы деректер түрінің мәндері бойынша әртүрлі операцияларды орындауға болады. SQL2 стандарты уақыт белдеулерін қолдауды және дәлдікті, уақытты көрсету мүмкіндігін (секундтың оннан бір бөлігі немесе жүзден бір бөлігі сияқты) көрсету мүмкіндігін қоса, КҮН, УАҚЫТ, TIMESTAMP және INTERVAL деректер түрлерінің анықтамаларын қамтиды.

4. Логикалық деректер. Кейбір ДҚБЖ логикалық мәндерді (TRUE немесе FALSE) нақты қолдайды.

Әдебиет: И.Ф. Астахова, А.П. Толстобров, В.М. Мельников мысалдар мен тапсырмалардағы SQL. Оқу құралы: Жаңа білім, 2002

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

Деректер түрі дегеніміз не?

Бүгінгі таңда «деректер түрі» түсінігінің мәнін түсіндіретін бірден бірнеше анықтамалар бар. Олардың әрқайсысының бір ортақ мағынасы бар. Шартты түрде деректер түрін оның мәндерімен - сандық, таңбамен және т.б. сипатталатын деректер тобы, сондай-ақ қарастырылып отырған мәндерге қолдануға болатын операциялар ретінде анықтауға болады. Қолдану аясы әртүрлі түрлерідеректер өте жан-жақты. Мәліметтер ақпаратты сақтау үшін ғана емес, сонымен қатар есептерді шешу үшін бағдарламалауда да қолданылады. Бағдарламаларды жасау кезінде қолдану тәжірибесі жергілікті түрлерібелгілі бір операциялар жиынтығы бар деректер. Негізінде пайдаланушы ақпаратыәрқашан негізгі деректер түрлері жатады. SQL стандарты ақпараттың ең көп тараған түрлеріне негізделген, бірақ бірқатар нақты толықтырулар бар.

Деректер түрлері: классификация

Деректерді түрі бойынша топтау бұрыннан пайда болған. Бұл ақпаратты өңдеудің ыңғайлылығын қамтамасыз ету үшін ақпараттың барлық көлемін құрылымдау қажеттілігінен туындады. Бүгінгі таңда барлық бар деректер түрлері екі негізгіге негізделген: таңбалық және сандық. Осы деректер негізінде көрсеткіштер, бүтін, логикалық, өзгермелі нүкте және жолдық ақпарат түрлерін қамтитын заманауи классификация жасалды. Жоғарыда айтылғандардың барлығы толығымен SQL классификациясымен қамтылған. Дегенмен, үшін заманауи жүйелердерекқорды басқару арнайы қондырмалар бар. Оларға MySQL және Oracle кіреді.

Негізгі деректер түрлері

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

Жолдық деректер түрі

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

- CHAR (өлшем) - бұл тип жолдарды сақтау үшін қолданылады. Жақшада көрсетілген параметр сақталған жолдың ұзындығын түзетуге мүмкіндік береді. Сызық үшін орнатуға болады максималды өлшембайтпен – 255.

- VAR CHAR (өлшемі) - алдыңғы түрге ұқсастығы бойынша бұл түрі ұзындығы 255 символдан аспайтын жолдарды сақтауға мүмкіндік береді. Бұл түр мен CHAR арасындағы негізгі айырмашылық мынада: жадтың қажетті көлемі осы түрдегі мәнді сақтау үшін осында бөлінеді. Осылайша, 5 таңбадан тұратын жол үшін 6 байт жады қажет болады. Бірінші жағдайда мәнді сақтауға арналған жад көрсетілген параметрге сәйкес бөлінеді.

- TINY TEXT - бұл тип көлемі 65535 символдан аспайтын мәтіндік ақпаратты сақтау үшін қолданылады.

- BLOB - бұл тип TEXT түріне ұқсас. Ол мәтіндік ақпаратты мәліметтер базасында сақтауға мүмкіндік береді, оның көлемі 65 535 таңбаға дейін болуы мүмкін. Алайда, іс жүзінде бұл түрді сызбаларды сақтау үшін пайдалануға болады, дыбыстық ақпарат, электрондық құжаттаржәне басқалар.

- MEDIUM TEXT - бұл тип TEXT типі негізінде жасалған. Өлшемі 16777215 таңбаға дейін ұлғайғандықтан, бұл түрі көбірек деректерді сақтауға мүмкіндік береді.

- MEDIU MBLOB – көлемі 16777215 символдан аспайтын мәліметтер базасында электрондық құжаттарды сақтау үшін қолданылады.

- ҰЗЫН МӘТІН - автор функционалдықалдыңғы деректер түрлеріне ұқсас, бірақ жады сыйымдылығы 4 ГБ дейін өсті.

- LONG BLOB - деректер базасында үлкен деректерді орналастыруға мүмкіндік береді - 4294967295 таңба.

- ENUM – ​​әртүрлі мәндер тізімін анықтау үшін қолданылатын арнайы деректер түрі. Бұл түрі 65535 мәндерді көрсетуге мүмкіндік береді. Бұл түрдегі жолдар жиында көрсетілген барлық мәндердің біреуін ғана қабылдай алады. Көрсетілген тізімде жоқ мәндерді қосу жүзеге асырылатын жағдайда кестеге бос мәндер жазылады.

- SET - бұл деректер түрі жарамды мәндер жиынын көрсетеді. Алдыңғы түрге қарағанда, ол берілген аргументтердің бірнеше элементтерімен инициализациялауға болатын 64 параметрді қамту үшін пайдаланылады.

Бөлшек деректер түрлері бар кесте

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

FLOAT (өлшемді) - берілген дәлдіктегі бөлшек сандарды сақтау үшін қолданылады - d;

- DOUBLE (өлшемді) – екілік дәлдікпен бөлшектерді сақтау үшін қолданылады;

- DECIMAL (өлшем, d) - бөлшек мәндерді жолдар ретінде сақтау үшін қолданылады. Ол бөлшек бөлігінің дәлдігі 8 немесе 10 цифрға жетуі мүмкін банктік есептеулерде қолданылады.

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

Бүтін типті деректер

Негізгі класстардың бірін құрайтын жеке сандар тобы бүтін сандар болып табылады. Бүтін деректер түрлері кейбір сипат кеңейтімі бар INTEGER негізгі түріне негізделген.

  • INT (өлшем) - [-231;231-1] диапазонында бүтін деректерді сақтауға жауапты.
  • TINYINT (өлшем) - -128-ден 127-ге дейінгі диапазондағы сандарды сақтау үшін қолданылады.
  • SMALLINT (өлшемі) - -32768-ден 32767-ге дейін сақталған деректердің сәл ұлғайған диапазонымен сипатталады.
  • MEDIUMINT (өлшемі) - өлшемдері -223-тен 223-1-ге дейінгі сандарды сақтау үшін қолданылады.
  • BIGINT (өлшем) - -263-тен 263-1-ге дейінгі бүтін мәндер ауқымын қамтиды.

Егер сіз дұрыс деректер түрін таңдасаңыз, сіз көп жадты үнемдей аласыз және сонымен бірге қажетті SQL сұрауларын орындау кезінде сервер уақытын қысқарта аласыз. Деректер түрлері және олардың ауқымы сақтау үшін қажетті жад көлемін анықтайды. Әзірлеушілер үлкен атрибут ауқымдарын пайдалану жад құнын арттыруы мүмкін екенін білуі керек. Сіз шешілетін тапсырмаларды нақты талдап, деректердің шамамен диапазоны белгілі және қол қойылған сандарды пайдалану шарты анықталған жағдайларды анықтауыңыз керек. Пайдаланылатын аргументтердің аз диапазоны болса және барлық сандар оң болса, онда UNSIGNED атрибуты арналған unsigned түрін пайдалану дұрысырақ болар еді.

Уақыт пен күн деректерінің түрлері

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

  • DATE – бұл түрдің негізгі мақсаты күнді жыл-ай-күн форматында сақтау. Мәндер әдетте «-» белгісімен бөлінеді. Дегенмен, кейде сандарды қоспағанда, кез келген таңба бөлгіш ретінде пайдаланылуы мүмкін.
  • УАҚЫТ – кесте ұяшығына уақытша мәндерді енгізуге мүмкіндік береді. Мәндер "сағ:мм:сс" пішімінде көрсетілген.
  • КҮН УАҚЫТ – бұл түр алдыңғы екі функцияны біріктіреді. Бұл жағдайда деректерді сақтау пішімі келесідей болады: "жжжж-мм-кг: сағ: мм: сс".
  • УАҚЫТ МӘРТЕБЕСІ - бұл түр 01/01/1970 түн ортасынан бастап көрсетілген мәнге дейін өткен секундтар саны ретінде есептелетін күн мен уақытты сақтайды.
  • YEAR (M) - жылдық мәндерді екі немесе төрт сандық форматта сақтау үшін қолданылады.

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

NULL – арнайы көрсеткіш

Кейбір жағдайларда мәліметтер қорын толтыру кезінде кестеге жазба қосу кезінде барлық бағандарға ақпаратты енгізудің қажеті болмайтын жағдай туындайды. Ол үшін арнайы нөлдік тағайындау көрсеткішін немесе NULL мәнін пайдалану керек. Көмекші ретінде SQL тілін пайдаланады. Толтырылуы қажет емес бағандардың деректер түрлері кестелер жасалған кезде нөл мәндерді қосуға мүмкіндік беру үшін оператормен көрсетіледі. Сондай-ақ, NULL операторы қосымша ЕМЕС префиксін пайдаланған кезде барлық мәндерді толтыру керектігін көрсету үшін пайдаланылуы мүмкін. NULL көрсеткішінің түрі жоқ. Ол жай ғана дерекқор кестелеріне нұсқайды бос мән. Осы себепті ол жоғарыда аталған деректер түрлерінің бірімен біріктірілуі мүмкін.

ДЕРЕКТЕР ҚҰРЫЛЫМЫНЫҢ АНЫҚТАУЫ

Сұрақтар:

1. Стандартпен анықталған SQL деректер типтері.. 1

2. SQL серверінде қолданылатын деректер типтері. 3

3. Өрнектер мен айнымалылар. 5

4. SQL басқару құрылымдары.. 6

5. SQL серверінің мәліметтер қоры құрылымының негізгі объектілері. 7

Стандартпен анықталған SQL деректер түрлері

Деректермәліметтер қорында бірнеше әртүрлі типтердің бірі ретінде сақталған ақпараттар жиынтығы. Деректер түрлері белгілі бір кесте бағанында қамтылған деректердің негізгі ережелерін, соның ішінде оларға бөлінген жад көлемін орнатады.

SQL тілінде стандартпен анықталған алты скаляр деректер типі бар. Олардың қысқаша сипаттамасыкестеде көрсетілген.

Таңба деректері

Таңбалар деректері ДҚБЖ жасаушылары анықтаған таңбалар жиынына кіретін символдар тізбегінен тұрады. Таңбалар жиыны SQL тілінің әртүрлі диалектілеріне тән болғандықтан, таңбалар типінің деректер мәндерінің бөлігі бола алатын таңбалар тізімі де іске асыруға байланысты. Ең жиі қолданылатын таңбалар жиыны ASCII және EBCDIC болып табылады. Таңба типінің деректерін анықтау үшін келесі пішім пайдаланылады:

<символьный_тип>::=

( CHACTER [ VARYING][ұзындық] | [ұзындық])

Таңба деректерінің түрі бар бағанды ​​анықтау кезінде ұзындық параметрі осы бағанға орналастыруға болатын таңбалардың максималды санын көрсету үшін пайдаланылады (әдепкі мән - 1). Таңбалар жолын тұрақты немесе айнымалы (VARYING) ұзындығы бар ретінде анықтауға болады. Егер жол белгіленген мәндер ұзындығымен анықталса, азырақ таңбалар енгізілгенде, мән оңға бос орындар қосылған көрсетілген ұзындыққа толтырылады. Егер жол мәндердің айнымалы ұзындығымен анықталса, оған азырақ таңба енгізсеңіз, деректер қорында енгізілген таңбалар ғана сақталады, бұл сізге біраз үнемдеуге мүмкіндік береді. сыртқы жады.

биттік деректер

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

<битовый_тип>::=

BIT [ұзындығы]

Нақты сандар

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

<фиксированный_тип>::=

(САН[нақтылық[,масштаб]]|(ОНДЫҚ|ДЕК)

[дәлдік[, масштаб]]

| (INTEGER|INT)| ҰШАҚ)

Түрлері САНжәне ОНДЫҚсандарды ондық форматта сақтауға арналған. Бөлшек бөлігінің әдепкі ұзындығы нөлге тең және әдепкі дәлдік іске асыруға байланысты. INTEGER (INT) түрі үлкен оң немесе теріс бүтін сандарды сақтау үшін қолданылады. SMALLINT түрі шағын оң немесе теріс бүтін сандарды сақтауға арналған; бұл жағдайда сыртқы жадты тұтыну айтарлықтай төмендейді.

Дөңгелектелген сандар

Дөңгелектелген сандардың түрікомпьютерде дәл көрсетуге болмайтын деректерді сипаттау үшін қолданылады, атап айтқанда нақты сандар. Дөңгелектелген немесе өзгермелі нүктелі сандар ғылыми белгілерде көрсетіледі, онда сан белгілі бір ондық (көрсеткіш) дәрежесіне көбейтілген мантисса арқылы жазылады, мысалы: 10E3, +5,2E6, -0,2E-4 . Нақты типтегі деректерді анықтау үшін келесі пішім қолданылады:

<вещественный_тип>::=

( FLOAT [дәлдік]| REAL |

ҚОС ДАЛДЫҚ)

Параметр дәлдікмантиссаның маңызды цифрларының санын көрсетеді. REAL және DOUBLE PRECISION түрлерінің дәлдігі іске асыруға тән.

күні мен уақыты

Деректер түрі «күн/уақыт»белгілі бір дәлдікпен уақыт нүктелерін анықтау үшін қолданылады. SQL стандарты келесі пішімді қолдайды:

<тип_даты/времени>::=

(КҮН | УАҚЫТ [дәлдік]|

УАҚЫТ БЕЛГІСІ [дәлдік])

DATE деректер түрі ЖЫЛ (жыл), АЙ (ай) және КҮН (күн) өрістерін қамтитын күнтізбелік күндерді сақтау үшін пайдаланылады. TIME деректер түрі САҒАТ (сағат), MINUTE (минут) және SECOND (секунд) өрістерін қамтитын уақыт белгілерін сақтауға арналған. TIMESTAMP деректер түрі күн мен уақытты бірге сақтауға арналған. Дәлдік параметрі ЕКІНШІ өрісте мәнді сақтау дәлдігін анықтайтын бөлшек ондық таңбалардың санын көрсетеді. Бұл параметр алынып тасталса, ол TIME бағандары үшін әдепкі бойынша нөлге тең болады (яғни, толық секундтар сақталады), ал TIMESTAMP өрістері үшін ол әдепкі мәнге 6 болады. WITH TIME BELLEME кілт сөзінің болуы УАҚЫТ БЕЛДЕМЕСІ САҒАТ және УАҚЫТ белдеуінің өрістерін пайдалануды анықтайды. MINUTE, бұл әмбебап координат уақытына (Гринвич уақыты) қатысты аймақ уақытының ауысымының сағаты мен минуттарын орнатады.

INTERVAL түріндегі деректер уақыт кезеңдерін көрсету үшін пайдаланылады.

Домен туралы түсінік

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

SQL стандарты доменді пайдаланып анықтауға мүмкіндік береді келесі мәлімдеме:

<определение_домена>::=

DOMAIN домен_атын ЖАСАУ

деректер түрі

[ӘДІПТІ мән]

[ ТЕКСЕРУ(жарамды_мәндер)]

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

Домендерді дерекқордан жою оператордың көмегімен жүзеге асырылады:

DOMAIN домен атауын ҚОСУ [ ШЕКТЕУ |

CASCADE кілт сөзін көрсетсеңіз, түсірілетін домен арқылы жасалған кез келген кесте бағандары автоматты түрде өзгертіліп, жойылатын домен анықтамасында көрсетілген түрдегі деректерді қамтитындай сипатталады.

Қоршаған ортадағы домендерге балама SQL серверіпайдаланушы анықтайтын деректер түрлері болып табылады.

SQL серверінде қолданылатын деректер түрлері

Жүйелік деректер түрлері

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

әкелейік қысқа шолу SQL серверінің деректер түрлері.

кейіпкерлер туралы ақпаратты сақтау үшін қолданылады. таңба деректерінің түрлері, оларға CHAR (ұзындық), VARCHAR (ұзындық), NCHAR (ұзындық), NVARCHAR (ұзындық) кіреді. Соңғы екеуі Юникод таңбаларын сақтауға арналған. Максималды ұзындық мәні 8000 таңбамен шектелген (Юникод таңбалары үшін 4000).

Үлкен таңбалы деректерді сақтау (2 ГБ дейін) TEXT және NTEXT мәтіндік деректер типтері арқылы жүзеге асырылады.

TO бүтін деректер түрлері INT (INTEGER), SMALLINT, TINYINT, BIGINT кіреді. Бүтін түрдегі деректерді сақтау үшін 4 байт (-231-ден 231-1-ге дейін), 2 байт (-215-тен 215-1-ге дейін), 1 байт (0-ден 255-ке дейін) немесе 8 байт (-ден бастап диапазон) 263) тиісінше 263-1) қолданылады. Бүтін типті объектілер мен өрнектерді кез келген математикалық операцияларда қолдануға болады.

Ондық бөлшекті қамтитын сандар бүтін емес сандар деп аталады. Бүтін емес деректерекі түрге бөлінеді - ондықжәне шамамен.

TO ондықдеректер түрлеріне ОНДЫҚ [(дәл[, масштаб])] немесе DEC және САНДЫҚ [(дәлдік[, масштаб])] кіреді. DECIMAL және NUMERIC деректер түрлері өзгермелі нүкте дәлдігі пішімін өзіңіз анықтауға мүмкіндік береді. Дәлдік параметрі анықтайды максималды сомаосы түрдегі кіріс деректерінің цифрлары (қосындыдағы ондық үтірге дейін және одан кейін), ал шкала параметрі ондық үтірден кейін орналасқан цифрлардың максималды саны болып табылады. Қалыпты режимде сервер DECIMAL және NUMERIC түрлерінде (2-ден 17 байтқа дейін) пайдаланылатын ең көбі 28 цифрды енгізуге мүмкіндік береді.

TO шамамендеректер түрлеріне FLOAT (15 сандық дәлдік, 8 байт) және REAL (7 сандық дәлдік, 4 байт) кіреді. Бұл түрлер өзгермелі нүкте пішіміндегі деректерді көрсетеді, яғни. сандар мантисса мен көрсеткіштің көмегімен көрсетіледі, бұл мән қаншалықты кіші немесе үлкен болса да, есептеулердің бірдей дәлдігін қамтамасыз етеді.

туралы ақпаратты сақтау үшін күні мен уақыты DATETIME және SMALLDATETIME сияқты деректер түрлері күндер мен уақыттарды көрсету үшін сәйкесінше 8 және 4 байтты пайдаланады.

MONEY және SMALLMONEY деректер түрлеріақша түріндегі ақпаратты сақтауға мүмкіндік жасау; олар 4 ондық таңбаға дейін дәлдікті қамтамасыз етеді және сәйкесінше 8 және 4 байтты пайдаланады.

BIT деректер түрі 0 немесе 1 мәнін қабылдайтын бір битті сақтауға мүмкіндік береді.

SQL Server ортасы бірқатарды жүзеге асырады арнайы деректер түрлері.

Деректер түрі УАҚЫТ БЕЛГІСІдерекқордағы жол нұсқасының өзгерісінің көрсеткіші ретінде пайдаланылады.

Деректер түрі ЕРЕКШЕЛІКТІРІКжаһандық бірегей сәйкестендіру нөмірлерін сақтау үшін пайдаланылады.

Деректер түрі SYSNAMEобъект идентификаторларына арналған.

Деректер түрі SQL_VARIANT TEXT, NTEXT, IMAGE және TIMESTAMP қоспағанда, SQL сервері қолдайтын кез келген деректер түрлерінің мәндерін сақтауға мүмкіндік береді.

Деректер түрі КЕСТЕ, уақытша кестелер сияқты, әрі қарай өңдеуге арналған жолдар жиынын сақтауды қамтамасыз етеді. TABLE деректер түрін тек жергілікті айнымалы мәндерді анықтау және қайтару үшін пайдалануға болады реттелетін функцияларқұндылықтар.

Деректер түрі КУРСОРкурсорлар сияқты нысандармен жұмыс істеу үшін қажет және тек сақталатын процедуралардың айнымалылары мен параметрлері үшін қажет болуы мүмкін. SQL Server курсорлары сервер мен клиент арасында деректер алмасу механизмі болып табылады. Курсор клиенттік қолданбалармен жұмыс істеуге мүмкіндік береді толық жиынтығыдеректер, бірақ тек бір немесе бірнеше жолдармен.

Соңғы жаңарту: 07/12/2017

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

T-SQL тілі көптеген түрлерді ұсынады. Құндылықтардың сипатына қарай олардың барлығын топтарға бөлуге болады.

Сандық деректер түрлері

    BIT : 0 немесе 1 мәнін сақтайды. Іс жүзінде бұл бағдарламалау тілдеріндегі логикалық типтің аналогы болып табылады. Ол 1 байт алады.

    TINYINT : 0-ден 255-ке дейінгі сандарды сақтайды. 1 байтты алады. Шағын сандарды сақтау үшін жақсы.

    SMALLINT : -32768-ден 32767-ге дейінгі сандарды сақтайды. 2 байт алады

    INT : -2147483648-ден 2147483647-ге дейінгі сандарды сақтайды. 4 байт алады. Сандарды сақтау үшін ең көп қолданылатын түрі.

    BIGINT : -9 223 372 036 854 775 808-ден 9 223 372 036 854 775 807-ге дейінгі 8 байт жадты алатын өте үлкен сандарды сақтайды.

    DECIMAL: бекітілген дәлдік сандарын сақтайды. Ондық бөлшектен кейінгі сандар санына байланысты 5-тен 17 байтқа дейін уақыт алады.

    Бұл түр дәлдік пен масштабтың екі параметрін қабылдай алады: DECIMAL(дәлдік, масштаб) .

    Дәлдік параметрі сан сақтай алатын цифрлардың ең көп санын көрсетеді. Бұл мән 1 мен 38 арасында болуы керек. Әдепкі мән - 18.

    Масштаб параметрі ондық бөлшектен кейінгі сан қамтуы мүмкін цифрлардың ең көп санын көрсетеді. Бұл мән 0 мен дәлдік параметрінің мәні арасында болуы керек. Ол әдепкі бойынша 0 болады.

    САНДЫҚ : Бұл түрі DECIMAL түріне ұқсас.

    SMALLMONEY: -214 748,3648-ден 214 748,3647-ге дейінгі бөлшек мәндерді сақтайды. Ақшаны сақтауға арналған. 4 байт алады. DECIMAL(10,4) балама.

    АҚША: -922337203685477.5808-ден 922337203685477.5807-ге дейінгі бөлшек мәндерді сақтайды. Ақшалай құндылықтарды білдіреді және 8 байтты алады. DECIMAL(19,4) балама.

    FLOAT : -1,79E+308 бастап 1,79E+308 аралығындағы сандарды сақтайды. Бөлшек бөлігіне байланысты 4-тен 8 байтқа дейін созылады.

    FLOAT(n) ретінде анықтауға болады, мұндағы n санның ондық бөлігін (мантисса) сақтау үшін пайдаланылатын биттердің санын білдіреді. Әдепкі бойынша n = 53.

    REAL : -340E+38-ден 3,40E+38-ге дейінгі сандарды сақтайды. 4 байт алады. FLOAT(24) балама.

Сандық баған мысалдары: Жалақы MONEY, Total Weight DECIMAL(9,2), Age INT, Profis FLOAT

Күн мен уақытты білдіретін деректер түрлері

    КҮНІ: 0001-01-01 (0001 жылдың 1 қаңтары) бастап 9999-12-31 (31 желтоқсан, 9999) аралығындағы дүкендер. 3 байт алады.

    TIME : уақытты 00:00:00.0000000 мен 23:59:59,9999999 аралығында сақтайды. Ол 3-тен 5 байтқа дейін уақыт алады.

    TIME(n) түрінде болуы мүмкін, мұндағы n бөлшек секундтарда 0-ден 7-ге дейінгі сандар санын білдіреді.

    DATETIME : 01/01/1753 және 31/12/9999 аралығындағы күндер мен уақыттарды сақтайды. 8 байт алады.

    DATETIME2 : 01/01/0001 00:00:00.0000000 мен 31/12/9999 23:59:59.9999999 аралығындағы күндер мен уақыттарды сақтайды. Уақыттың дәлдігіне байланысты 6-дан 8 байтқа дейін уақыт алады.

    DATETIME2(n) пішінінде болуы мүмкін, мұндағы n бөлшек секундтарда 0-ден 7-ге дейінгі сандар санын білдіреді.

    SMALLDATETIME : ең жақын күндер болып табылатын 01/01/1900 және 06/06/2079 арасындағы күндер мен уақыттарды сақтайды. 4 байт алады.

    DATETIMEOFFSET : 0001-01-01 мен 9999-12-31 аралығындағы күндер мен уақыттарды сақтайды. Уақыт туралы толық ақпаратты 100 наносекундқа дейін дәл сақтайды. 10 байт алады.

Жалпы күн пішімдері:

    жжжж-мм-кк- 2017-07-12

    кк/а/жжж - 12/07/2017

    мм-кк-жж - 07-12-17

    Бұл пішімде 00-ден 49-ға дейінгі екі таңбалы сандар 2000-2049 аралығындағы күндер ретінде қарастырылады. Ал 50-ден 90-ға дейінгі сандар 1950 - 1999 сандар диапазоны ретінде.

    Ай gg, yyyy - 12 шілде 2017 ж

Жалпы уақыт форматтары:

  • сағ: 00/00 - 13:21

    сағ:ми:сс - 1:21:34

    сағ:ми:сс:мм - 1:21:34:12

    hh:mi:ss:nnnnnn - 1:21:34:1234567

Жолдық деректер түрлері

    CHAR: ұзындығы 1 және 8000 таңба арасындағы жолды сақтайды. Әрбір таңба үшін 1 байт бөледі. Көптеген тілдер үшін жарамсыз, өйткені ол Юникод емес таңбаларды сақтайды.

    Баған сақтай алатын таңбалар саны жақша ішінде беріледі. Мысалы, CHAR(10) бағанына 10 байт бөлінеді. Ал егер біз бағанда 10 таңбадан аз жолды сақтасақ, онда ол бос орындармен толтырылады.

    VARCHAR: жолды сақтайды. Әрбір таңбаға 1 байт бөлінеді. VARCHAR(10) сияқты 1-ден 8000 таңбаға дейінгі баған үшін арнайы ұзындықты көрсетуге болады. Жолда 8000 таңбадан көп болуы керек болса, MAX өлшемі орнатылады және жолды сақтау үшін 2 ГБ-қа дейін бөлуге болады: VARCHAR(MAX) .

    Көптеген тілдер үшін жарамсыз, өйткені ол Юникод емес таңбаларды сақтайды.

    CHAR түрінен айырмашылығы, егер 5 таңбалы жол VARCHAR(10) бағанында сақталса, бағанда дәл бес таңба сақталады.

    NCHAR: 1 және 4000 таңба арасындағы Юникод жолын сақтайды. Әр таңбаға 2 байт бөлінеді. Мысалы, NCHAR(15)

    NVARCHAR: Юникод жолын сақтайды. Әрбір таңба үшін 2 байт бөлінген.1-ден 4000 таңбаға дейін нақты өлшемді орнатуға болады: . Жолда 4000 таңбадан көп болуы керек болса, MAX өлшемі орнатылады және жолды сақтау үшін 2 ГБ-қа дейін бөлуге болады.

Қалған екі түрі, TEXT және NTEXT, ескірген, сондықтан ұсынылмайды. Оның орнына сәйкесінше VARCHAR және NVARCHAR пайдаланылады.

Жол бағандарын анықтау мысалдары:

Электрондық пошта VARCHAR(30), түсініктеме NVARCHAR(MAX)

Екілік деректер түрлері

    BINARY : екілік деректерді 1-ден 8000 байтқа дейінгі реттілік ретінде сақтайды.

    VARBINARY : екілік деректерді 1-ден 8000 байтқа дейін немесе MAX мәнін пайдаланған кезде 2^31-1 байтқа дейін (VARBINARY(MAX)) реттілікпен сақтайды.

Басқа екілік түрі, IMAGE түрі ескірген және оның орнына VARBINARY түрін пайдалану ұсынылады.

Басқа деректер түрлері

    UNIQUEIDENTIFIER : бірегей GUID (негізі бар жол бірегей құндылық), ол 16 байт алады.

    TIMESTAMP : кестедегі жолдың нұсқа нөмірін сақтайтын кейбір сан. 8 байт алады.

    КУРСОР: жолдар жиынын көрсетеді.

    IEARCHYID : иерархиядағы орынды білдіреді.

    SQL_VARIANT : кез келген басқа T-SQL деректер түрінің деректерін сақтай алады.

    XML : XML құжаттарын немесе XML құжаттарының фрагменттерін сақтайды. 2 ГБ жадты алады.

    TABLE : кестенің анықтамасын білдіреді.

    ГЕОГРАФИЯ: ендік және бойлық сияқты географиялық деректерді сақтайды.

    ГЕОМЕТРИЯ: жазықтықта орналасқан жердің координаттарын сақтайды.

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!