More Related Content Similar to database 9 (20) More from Usukhuu Galaa (20) database 91. LOGO
Хүснэгттэй
ажиллах
Хичээлийн нэр: Холбоост өгөгдлийн сан
Хичээлийн төрөл: Лекц /№9/
Багшийн нэр: Г.Өсөхжаргал
2. LOGO
Хичээлийн агуулга
Өгөгдлийн төрлүүд
Хүснэгт үүсгэх
Талбарт тавигдах зарим шаардлагууд
3. LOGO
Хүснэгт
Талбар Бичлэг Хүснэгт
4. LOGO
Хүснэгт
Хүснэгт нь өгөгдлийн сангийн өгөгдлүүдийг хадгалах
үндсэн объект
Нэг өгөгдлийн санд хэдэн ч хүснэгт байж болно.
Хүснэгтийн нэрийг нь бүтэн үгээр, 128 хүртэлх урттай
тэмдэгтүүдийн дарааллаар илэрхийлнэ.
Нэг ӨС-д ижил нэртэй хүснэгт, нэг хүснэгтэд ижил
нэртэй талбар байж болохгүй.
Хүснэгт үүсгэхээсээ өмнө хүснэгтийн бүтэц буюу
талбаруудыг тодорхойлсон байх ёстой .
Мөн тэдгээр талбаруудын бүтцийг тодорхойлсон байх
шаардлагатай.
5. LOGO
Хүснэгт
Талбарын бүтцийг тодорхойлох гэдэг нь
1. Талбар бүрийн авах өгөгдлийн төрлийг
тодорхойлох
2. Талбарт тавигдах шаардлагуудыг
тодорхойлох
6. LOGO Талбарын өгөгдлийн
төрөл
Талбарын өгөгдлийн төрөл тухайн талбар дахь
мэдээллийг төрлийн заах юм.
Өгөгдлийн төрлийг дараах байдлаар 2 ангилдаг
• Системийн өгөгдлийн төрөл
• Хэрэглэгчийн тодорхойлсон өгөгдлийн төрөл
7. LOGO Өгөгдлийн төрлийг зөв
сонгох
1. Өгөгдлийн хэрэглээ. Математик тооцоолол хийх эсэх,
цаг хугацааг илэрхийлэх эсэх, текст мэдээллийг
илэрхийлэх эсэх гэдгээс хамааран тоо, цаг хугацаа,
тэмдэгт мөр гэх мэт.
2. Өгөгдлийн хэмжээ. Аливаа төрлийн уртыг
тодорхойлохгүй тохиолдолд хамгийн их хэмжээгээр
тодорхойлогдоно. Тиймээс хэмжээг нь тодорхойлох
боломжтой өгөгдлийн төрлүүдэд мэдээллийн уртыг
зааж өгөх хэрэгтэй.
name varchar(40)
8. LOGO
Өгөгдлийн төрлийг зөв
сонгох
3. Бутархай оронгийн нарийвчлал. Мөнгө
болон бутархай утга хадгалах талбарын
хувьд нийт оронгийн тоо, таслалаас хойших
оронгийн тоог тодорхойлох шаардлагатай.
decimal (10.2)
9. LOGO Талбарын өгөгдлийн
төрөл
Бүхэл тоон төрлүүд
Tinylnt хэмжээ: 1В
• 0-ээс 255 хүртэлх бүхэл тоо
SmallInt хэмжээ: 2В
• -32768-ээс 32767 хүртэлх бүхэл тоо
Int хэмжээ: 4В
• -2,147,483,648-ээс 2,147,483,647 хүртэлх бүхэл тоо
BigInt хэмжээ: 8В
• -32768-ээс 32767 хүртэлх бүхэл тоо
10. LOGO Талбарын өгөгдлийн
төрөл
Тэмдэгт төрлүүд
Юникод биш тэмдэгт төрлүүд нь хамгийн ихдээ 8000 тэмдэгтийг
агуулна. Хамгийн их урт буюу 8000 тэмдэгтийг төлөөлөх утга нь МАХ
түлхүүр үг юм.
Char Хэмжээ: тэмдэгт бүр 1 В
Тогтмол урттай тэмдэгтүүд. Хэрвээ заасан уртаас бага урттай
өгөгдөл оруулвал үлдсэн хоосон зайг баруун талаас нь хоосон
зайгаар дүүргэнэ.
Name char(20) “baagii”
Varchar Хэмжээ: тэмдэгт бүр 1В
Хувьсах урттай тэмдэгтүүд. Хэрвээ заасан уртаас бага урттай
өгөгдөл оруулвал тэр хэмжээний л зайг ашиглана.
Name varchar(30) “bat”
nvarchar(max)=ntext
11. LOGO Талбарын өгөгдлийн
төрөл
Юникод тэмдэгт
ANSI тэмдэгтийн систем нь 256 үсэгтэй байхад Unicode систем
нь 65536 тэмдэгтийг агуулдаг. Тиймээс энэ төрөл нь том зай
эзэлдэг ба нэмэлт зай шаарддаг.
Хамгийн их урт буюу 8000 тэмдэгтийг төлөөлөх урт нь MAX
түлхүүр үг юм.
Ncahr Хэмжээ: тэмдэгт бүр 2В
Char төрөлтэй адил, гэхдээ юникод тэмдэгтийг дэмжинэ.
Nvarchar Хэмжээ: тэмдэгт бүр 2В
Varchar төрөлтэй адил, гэхдээ юникод тэмдэгтийг дэмжинэ.
Nvarchar(max)=htext
12. LOGO Талбарын өгөгдлийн
төрөл
Бинар буюу хоёртын төрөл
Бинар төрөл нь шинж чанар эсвэл шинж чанаруудын нэгдэл
өгөгдлүүдэд зориулагдсан төрөл. Хэрэглэгч шууд ойлгох боломжгүй
хоёртын өгөгдөл юм.
Зураг, дуу, кино зэргийг тексттэй адилаар хадгалана.
binary
Тогтмол урттай, 8000 хүртэлх тэмдэгт
varbinary
Хувьсах урттай 8000 хүртэлх тэмдэгт varbinary(max)=htext
13. LOGO Талбарын өгөгдлийн
төрөл
Мөнгөн төрлүүд
Мөнгөн төрлүүд нь таслалаас хойш 4 оронтой
аравтын тоон өгөгдлүүдийг агуулна.
Мөн мөнгөний нэгжийг агуулах боломжтой
Smallmoney Хэмжээ: 4В
-214,748.3648- ээс 214,748.3647 хүртэлх мөнгөн
өгөгдөл
Money Хэмжээ: 8В
-263-ээс 263 хүртэл буюу -
922,337,203,685,477,5808-ээс
922,337,203,685,477,5807 хүртэлх мөнгөн өгөгдөл
14. LOGO Талбарын өгөгдлийн
төрөл
Огноо төрлүүд
Огноо төрлүүд нь он сар өдөр, цаг минут секунд гэсэн
мэдээллийг хадгална.
Smalldatetime Хэмжээ: 4В
1900 оны 1 сарын 1-ээс 2079 оны 6 сарын 6
хүртэлх огноо өгөгдөл
DataTime Хэмжээ: 8В
1753 оны 1 сарын 1-ээс 9999 оны 12 сарын 31
хүртэлх огноо өгөгдөл.
15. LOGO Талбарын өгөгдлийн
төрөл
Аравтын төрлүүд
Аравтын төрлүүд нь өндөр нарийвчлалтай маш их
тоон төрлийн мэдээллийг агуулна.
Decigmal / Numeric
-1038-1ээс 1038-1 хүртэлх 38 оронтой тоон өгөгдөл
Flaot
-1,79E+308-ээс 1,79E+308 хүртэлх утга авах хөвөгч
таслалтай бутархай тоо
Real
-3,40E+38-ээс 3,40E+38 хүртэлх утга авах бутархай
тоо
16. LOGO Талбарын өгөгдлийн
төрөл
Тусгай төрлүүд
Bit
0 эсвэл 1 гэсэн утга авна. Ихэвчлэн true(1), false(0)
эсвэл yes(1), no(0) гэсэн утгыг тодорхойлоход
ашиглагдана. Хэмжээ: 1МВ
SQL- variant
SQL Server-ийн text, timestamp, ntext, image
төрлүүдээс бусад өгөгдлийн төрлийн утгыг хадгалж
чадах төрөл
…
17. LOGO
Хүснэгт үүсгэх
Үндсэн синтакс:
CREATE TABLE хүснэгтийн_нэр
(
Талбарын_нэр1 талбарын_өгөгдлийн_төрөл,
Талбарын_нэр2 талбарын_өгөгдлийн_төрөл,
...
Талбарын_нэрN талбарын_өгөгдлийн_төрөл,
)
Хүснэгтийн нэр, баганы нэр нь идентификаторт
тавигдах шаардлагыг хангасан байх ба бүтэн
үгээр илэрхийлэгдэнэ.
18. LOGO
Хүснэгт үүсгэх
Жишээ 1: Жишээ 2:
CREATE TABLE Student use Sample
( CREATE TABLE Student
LastName nvarchar(30), (
FirstName nvarchar(30), LastName nvarchar(30),
Birthday datetime FirstName nvarchar(30),
) Birthday datetime
)
19. LOGO Талбарт тавигдах
шаардлага
Хүснэгт алдаатай мэдээлэл орохоос сэргийлэх
зорилгоор хүснэгтийн талбарт тодорхойлдог шинж
чанарыг бүрэн бүтэн байдлын шаардлага буюу
Integrity Constraints гэнэ.
Хүснэгтийн талбарт дараах шаардлагуудыг
тодорхойлдог.
1. Primary key 4. Check
2. Foreign key 5. Not null
3. Unique 6. Default
20. LOGO Талбарт тавигдах
шаардлага
DEFAULT шаардлага
Хүснэгтийн талбарт утга оруулахгүй үед
автоматаар өгөгдөх утгыг талбарын суурь
(DEFAULT ) утга гэнэ.
Синтакс:
CREATE TABLE хүснэгтийн нэр
( ……….
талбарт_нэр талбар_төрөл DEFAULT (< тогтмол
илэрхийлэл >);
………………………
)
21. LOGO Талбарт тавигдах
шаардлага
DEFAULT шаардлага
Суурь утга нь тухайн талбарын төрөлтэй тохирч байх
ёстой.
Суурь утга нь тоо, тэмдэгт гэх мэт тогтмол утга байж
болохоос гадна стандарт функцууд, стандарт утгууд
байж болно.
GETDATE()
CURRENT_USER гэх мэт
22. LOGO Талбарт тавигдах
шаардлага
DEFAULT шаардлага
Жишээ 3:
use sample
CREATE TABLE Student
(
LastName nvarchar (30),
FirstName nvarchar (30),
age tinyint DEFAULT 20
reg_Date datetime DEFUALT GETDATE()
)
23. LOGO Талбарт тавигдах
шаардлага
IDENTTY түлхүүр
Зарим бүхэл тоо утгатай, бүртгэлийн дугаар болох
талбаруудын хувьд дугаар давтагдахгүйгээр
автоматаар дугаарлах шаардлага гардаг.
Синтакс:
CREATE TABLE хүснэгтийн_ нэр
(…………….
талбар_нэр талбар_төрөл IDENTITY(<эхлэх,
утга, нэмэгдэх утга >);
………….
)
24. LOGO Талбарт тавигдах
шаардлага
IDENTTY түлхүүр
Эхлэх утга нэмэгдэх утгыг тодорхойлоогүй
тохиолдолд 1, 1 байдаг.
Уг түлхүүр үгийг ашигласан үед уг талбарт
хэрэглэгч гараас өгөгдөл оруулах шаардлагагүй
оруулахыг зөвшөөрөхгүй бөгөөд хүснэгтийн бичлэг
нэмэгдэх үед уг талбарын утга автоматаар заасан
утгаар нэмэгдэх болно.
25. LOGO Талбарт тавигдах
шаардлага
IDENTTY түлхүүр
Жишээ 4:
use sample
CREATE TABLE Student
(
id int IDENTITY
LastName nvarchar(30),
FirstName nvarchar(30),
age tinyint DEFUALT 20
)
26. LOGO Талбарт тавигдах
шаардлага
NOT NULL шаардлага
Хүснэгтийн талбар заавал утгатай байх
шаардлагатай тохиолдолд хоосон байж болохгүй
(NOT NULL ) шаардлагыг тодорхойлно.
Хэрвээ суурь утгаа NULL гэж заасан бол NOT
NULL шаардлагыг хэрэглэж болохгүй.
27. LOGO Талбарт тавигдах
шаардлага
NOT NULL шаардлага
Жишээ 5:
use sample
CREATE TABLE Student
(
id int IDENTITY,
LastName nvarchar(30) NOT NULL ,
FirstName nvarchar(30) NOT NULL,
)
28. LOGO Талбарт тавигдах
шаардлага
PRIMARY KEY ба UNIQUE
Анхдагч түлхүүр (PRIMARY KEY), давтагдахгүй
түлхүүр (UNIQUE ) шаардлагууд нь тухайн
талбарын утга давтагдаж болохгүй гэдэг шаардлага
юм.
Ийм шаарлагатай талбарууд хоосон байж болохгүй
буюу NOT NULL шаардлагатайгаар тодорхойлогдсон
байх ёстой.
Эдгээр шаардалгыг тодорхойлсон талбарт давтагдах
утгыг оруулахыг оролдвол ӨС энэ үйлдлийг болиулж
алдаа өгнө.
Хүснэгтэд PRIMARY KEY шаардлагатай талбар нэг,
UNIQUE шаардлагатай талбар олон байж болно.
29. LOGO Талбарт тавигдах
шаардлага
PRIMARY KEY ба UNIQUE
Жишээ 6:
CREATE TABLE Student
(
St_Code char(8) NOT NULL PRIMARY KEY,
LastName nvarchar(30) NOT NULL,
FirstName nvarchar (30) NOT NULL,
Reg_Number nchar(10) UNIQUE NOT NULL
IDCard_Number nchar(10) UNIQUE NOT NULL
)