SQL ma`lumot tiplari
Ma’lumolar bazasida jadvalni yaratish uchun obyekt va uning xossalari va har bir xossaning qanday turdagi ma’lumotlarni qabul qilishi aniqlangan bo’lishi kerak. Xossa qiymatlaridagi ma’lumotlarning turini aniqlash bu jadval maydonlarining tiplarini aniqlashni anglatadi.
SQL ma`lumotlar turi har qanday ob`yektning xossasi qabul qiladigan qiymatlarining turini ifodalaydi. Har bir ustunda, o`zgaruvchida va ifodada SQL tilida tegishli ma`lumotlar turi mavjud. Ushbu ma`lumotlar turlaridan jadvallar yaratishda foydalaniladi.
T-SQL tili ma`lumotlar turlarining oltita toifasini taqdim etadi (-jadval).
Butun sonli ma`lumot turlari
Ma`lumot turlari
|
dan
|
gacha
|
bigint
|
-9.223.372.036.854.775.808
|
9.223.372.036.854.775.807
|
int
|
-2147483648
|
2147483647
|
smallint
|
-32768
|
32767
|
tinyint
|
0
|
255
|
bit
|
0
|
1
|
decimal[ (p[ ,s] )]
p-verguldan oldingi raqamlar soni,
s-verguldan keying raqamlar soni
|
-10 ^ 38 +1
|
10 ^ 38 -1
|
numeric[ (p[ ,s] )]
p-verguldan oldingi raqamlar soni,
s-verguldan keying raqamlar soni
decimal bilan sinonim
|
-10 ^ 38 +1
|
10 ^ 38 -1
|
money
|
-922,337,203,685,477.5808
|
+922,337,203,685,477.5807
|
smallmoney
|
-214,748.3648
|
+214,748.3647
|
Haqiqiy sonlar ma`lumot tiplari
ma`lumot tiplari
|
Dan
|
gacha
|
float
|
-1,79E + 308
|
1,79E + 308
|
real
|
-3.40E + 38
|
3.40E + 38
|
Vaqt va sana ma`lumot tiplari
ma`lumot tiplari
|
Dan
|
gacha
|
Datetime
|
1 yanvar 1753 y.
|
31 dekabr 9999 y.
|
smalldatetime
|
1 yanvar 1900 y.
|
6 iyun 2079 y.
|
Date
|
Faqat sanani saqlaydi
|
time
|
Faqat vaqtni saqlaydi
|
Char
Maksimal 8000 ta simvol. (Fiksirlangan uzunlikdagi ASCII simvollar)
VARCHAR
Maksimal 8000 ta simvol. (Fiksirlanmagan uzunlikdagi ASCII simvollar).
VARCHAR (max)
Maksimal 2^31-1 ta ANSI simvol. (SQL Server 2005 dan keyingi versiyalar).
TEXT
Turli uzunlidagi matnlar (ASCII simvollar), maksimal uzunlik 2 147 483 647 ta simvol.
NCHAR
Maksimal 4000 ta simvol. (Fiksirlangan uzunlikdagi Unicode simvollar)
NVARCHAR
Maksimal 4000 ta simvol. (Fiksirlanmagan uzunlikdagi Unicode simvollar)
NVARCHAR (max)
Maksimal 2^30-1 ta Unicode simvol. (SQL Server 2005 dan keyingi versiyalar).
NTEXT
Turli uzunlidagi matnlar (Unicode simvollar), maksimal uzunlik 1 073 741 823 ta simvol.
binary
maksimal 8000 ta bayt(fiksirlangan uzunlikdagi binary ma`lumotlar)
VARBINARY
maksimal 8000 ta bayt(fiksirlanmagan uzunlikdagi binary ma`lumotlar)
VARBINARY (max)
Maksimal 2^31-1 bayt .(fiksirlanmagan uzunlikdagi binary ma`lumotlar)
image
naksimal 2 147 483 647 bayt. (fiksirlanmagan uzunlikdagi(baytdagi) rasmli ma`lumotlar)
sql_variant
turli tipdagi (SQL Server tomonidan qo`llab quvvatlanadigan tiplar) ma`lumotlarni saqlaydi , text, ntext va timestamp dan tashqari.
timestamp
Baza bo’yicha unikal nomer, yangi satr qo’shilganda yangilab turadi
GUID
Global unikal identifikator (GUID)
XML
XML ma`lumotlarni saqlaydi.
cursor
kursor obyektiga havola
table
jadval ko`rinishidagi ma`lumotlarni saqlaydi
O`quv misoli: Yechilayotgan misollar quyidagi jadvalar asosida bajarilgan;
STUDENT (TALABA)
Stud_ID
|
Surname
|
Name
|
Stipend
|
Kurs
|
City
|
Birthday
|
Univ_ID
|
1
|
Ivanov
|
Ivan
|
150
|
1
|
Orel
|
3.12.92
|
10
|
3
|
Petrov
|
Petr
|
200
|
3
|
Kursk
|
1.12.90
|
10
|
6
|
Sidirov
|
Vadim
|
150
|
4
|
Moskva
|
7.06.89
|
28
|
10
|
Kuzunliknesov
|
Boris
|
0
|
2
|
Brenek
|
08.12.91
|
10
|
12
|
Zayseva
|
Olga
|
25
|
2
|
Lipesk
|
1.05.91
|
10
|
265
|
Pavlov
|
Andrey
|
0
|
3
|
Voronej
|
5.11.89
|
10
|
32
|
Kotov
|
Pavel
|
150
|
5
|
Belgorod
|
NULL
|
14
|
654
|
Muxin
|
Artem
|
200
|
3
|
Voronej
|
1.12.91
|
10
|
276
|
Petrov
|
Anton
|
20
|
4
|
NULL
|
5.08.91
|
22
|
55
|
Belkin
|
Vadim
|
250
|
5
|
Voronej
|
7.01.90
|
10
|
LECTURER (O`qituvchi)
Lecturer_ID
|
Surname
|
Name
|
City
|
Univ_ID
|
24
|
Komsmakov
|
Boris
|
Voronej
|
10
|
46
|
Nikonov
|
Ivan
|
Voronej
|
10
|
74
|
Lagutin
|
Pavel
|
Moskva
|
22
|
108
|
Otrukov
|
Nikolay
|
Moskva
|
22
|
276
|
Nikolayev
|
Viktor
|
Voronej
|
10
|
378
|
Sorokin
|
Andrey
|
Orel
|
10
|
SUBJECT (O`qitiladigan fanlar)
Subj_ID
|
Subj_name
|
Hour
|
Semester
|
10
|
Informatika
|
56
|
1
|
22
|
Fizika
|
34
|
1
|
43
|
Matematika
|
56
|
2
|
56
|
Tarix
|
34
|
4
|
94
|
Ingliz tili
|
56
|
3
|
73
|
j/tarbiya
|
34
|
5
|
University(Universitet)
Univ_ID
|
Univ_name
|
Rating
|
City
|
22
|
MGU
|
606
|
Moskva
|
10
|
BGU
|
296
|
Voronej
|
11
|
HGU
|
345
|
Novosibirsk
|
32
|
PGU
|
416
|
Rostov
|
14
|
BGU
|
326
|
Belgorodok
|
15
|
TGU
|
368
|
Tomsk
|
18
|
BGMA
|
327
|
Voronej
|
EXAM_ MARKS
Exam_ID
|
Student_ID
|
Subj_ID
|
Mark
|
Exam_date
|
145
|
12
|
10
|
5
|
12.01.09
|
34
|
32
|
10
|
4
|
23.01.09
|
75
|
55
|
10
|
5
|
25.01.09
|
238
|
12
|
22
|
3
|
17.06.08
|
639
|
55
|
22
|
Null
|
22.06.08
|
43
|
6
|
22
|
4
|
18.01.09
|
SUBJ_LECT (ukituvchilarni ukuv fanlari)
Lecturer_ID
|
Subj-Id
|
24
|
10
|
46
|
22
|
74
|
43
|
108
|
56
|
276
|
94
|
328
|
73
|
Ma`lumotlar bazasini yaratish
SSMS(Sql Server Management Studio) orqali “Database” ustida sichqonchaning o’ng tugmasini bosib, chiqqan kontekst menyudan “New database” bandi tanalanadi(1.1 rasm).
rasm Yangi ma`lumotlar bazasini yaratish
So’ng ma`lumotlar bazasi nomi kiritiladi va “ok” tugmasi bosiladi (1.2 rasm).
1.2 rasm yangi ma`lumotlar bazasi nomini ko`rsatish
T-SQL tili orqali “CREATE DATABASE” buyrug’idan foydalaniladi. Bu uchun SSMS da “New Query” orqali yangi so’rov yozish oynasi ochiladi(1.3 rasm).
1.3 rasm yangi so’rov oynasini ochish
So’ng so’rov oynasida “CREATE DATABASE usersdb” deb yoziladi, va so’rov ishga tushiriladi(1.4 rasm).
1.4 rasm So’rovni ishga tushirish
Ma`lumotlar bazasini o’chirish
DROP DATABASE database_name1 [, database_name2]...
Misol: contactsdb bazasini o’chirish uchun quyidagi buyruq ishga tushiriladi:
DROP DATABASE contactsdb
Ma`lumotlar bazasi jadvallarini yaratish
Jadvallarni yaratish uchun CREATE TABLE buyrug'i ishlatiladi. Ushbu buyruq bilan jadval ustunlari va ularning atributlarini aniqlaydigan bir qator operatorlardan foydalanish mumkin. Bundan tashqari, jadvalning xususiyatlarini ifodalaydigan bir qator operatorlardan foydalanish mumkin. Bitta ma`lumotlar bazasida 2 milliardgacha jadval bo'lishi mumkin.
Jadval yaratish uchun umumiy sintaksis quyidagicha:
CREATE TABLE jadval_nomi
(1_ustun_nomi 1_ustun_tipi 1_ustun_atributlari,
2_ustun_nomi 2_ustun_tipi 2_ustun_atributlari,
................................................
N_ustun_nomi N_ustun_tipi N_ustun_atributlari,
jadval atributi
)
CREATE TABLE buyrug'idan keyin yaratilayotgan jadval nomi ko`rsatiladi. Jadvalning nomi ma`lumotlar bazasida uning identifikatori vazifasini bajaradi, shuning uchun u unikal bo'lishi kerak. Nomi128 belgidan oshmasligi kerak. Nom harflar va raqamlardan, shuningdek $ va pastki chiziq belgilaridan iborat bo'lishi mumkin. Bundan tashqari, birinchi belgi harf yoki pastki chiziq bo'lishi kerak.
Ob`yekt nomi(identifikator)da bo'sh joy(probel)lar bo’lmaydi va Transact-SQL kalit so`zlari ham ob’yekt nomi sifatida ishlatilmaydi. Agar identifikatorda bo'sh joy belgilari mavjud bo'lsa, unda u bittalik qo’shtirnoq ichida olinishi kerak. Agar kalit so`zlarni nom sifatida ishlatish zarur bo'lsa, unda bu so`zlar to'rtburchak qavslarga joylashtiriladi.
Misollar:
Users
tags$345
users_accounts
"users accounts"
[Table]
Jadval nomidan so'ng, qavsda barcha ustunlarning parametrlari va oxirida jadvalga tegishli atributlar ko`rsatiladi. Ustun va jadval atributlari ixtiyoriy, ularni yozmasa ham bo’ladi.
CREATE TABLE buyrug'i eng sodda shaklda kamida jadval nomi, ustun nomlari va ma`lumot tiplarini o`z ichiga olishi kerak.
Jadval 1 dan 1024 gacha ustunlarni o`z ichiga olishi mumkin. Har bir ustun joriy jadval bo’yicha unikal nomga ega bo'lishi va unga ma`lumotlar tipi ko`rsatilishi kerak.
Masalan, eng oddiy jadvalning scripti. Customers:
CREATE TABLE Customers
(
Id INT,
Age INT,
FirstName NVARCHAR(20),
LastName NVARCHAR(20),
Email VARCHAR(30),
Phone VARCHAR(20)
)
Misolda, Customers jadvalida oltita ustun aniqlangan: Id, FirstName, LastName, Age, Email, Phone. Birinchi ikkita ustun mijoz identifikatori va yoshini bildiradi va INT tipiga ega, ya'ni ular raqamli qiymatlarni saqlaydi. Keyingi ikkita ustun mijozning familiyasini va ismini anglatadi, hamda NVARCHAR (20) tupiga ega, ya'ni 20 belgidan ko'p bo'lmagan UNICODE satrni aks ettiradi. So'nggi ikkita ustun mijozning elektron pochta manzili va telefon raqamini bildiradi, hamda VARCHAR(30) , VARCHAR (20) tiplariga ega, 20/30 simvolgacha bo’lgan satrni saqlaydi, UNICODE kodlash emas.
Do'stlaringiz bilan baham: |