Cr. http://itmaungchan.blogspot.com/2017/02/his.htmlการตรวจสอบสิทธิ โดยใช้โปรแกรม HIS ต่าง ๆ
แนวทางการตรวจสอบสิทธิ โดยใช้โปรแกรม HIS ต่าง เช่น HOSXP,HOSXP_PCU, HOSPITALOS, JHCIS เป็นต้น
1.เปิดใช้งานโปรแกรม UC Authentication โดย login โปรแกรมด้วย PIN Code ของบัตร smart card
2.หลังจากเข้าโปรแกรมแล้วท่านจะได้ Username และ Password เพื่อเข้าใช้งานโปรแกรม HIS ดังกล่าวมาข้างต้น โดย
- Username จากเดิมอยู่ในรูปแบบของ Chkxxx เปลี่ยนมาใช้เลขประจำตัวประชาชนของบัตรที่ใช้ในการ login โปรแกรมในข้อ 1.
- Password จากเดิม เปลี่ยนมาใช้รหัสสำหรับเข้าใช้งาน Web Service(Token ID) ในกรอบสี่เหลี่ยมบรรทัดสุดท้ายที่แสดงในโปรแกรม UC Authentication 4.x
หมายเหตุ
- รหัสสำหรับเข้างาน Web Service (Token ID) จะมีอายุ 24 ชั่วโมงหลังจากทำการ Login ด้วย PIN Code แล้ว หากมีการปิดโปรแกรมแล้ว Login อีกครั้ง Token ID เดิมจะหมดอายุลงทันที
- PIN Code ของบัตรประชาชนแบบสมาร์ทการ์ด สามารถขอได้ด้วยตัวเองที่ สำนักทะเบียนราษฎร์ทั่วประเทศ ซึ่ง PIN Code ดังกล่าวไม่สามารถออกได้โดย สำนักงานหลักประกันสุขภาพแห่งชาติ
- สิทธิในการเข้าใช้งานสามารถขอได้ที่ สำนักงานหลักประกันสุขภาพแห่งชาติ ในเขตของท่าน โดยสามารถดาวน์โหลดแบบฟอร์มการขอสิทธิการใช้งานได้ที่
http://www.nhso.go.th/FrontEnd/page-information_detail.aspx?ContentID=NjAwMDAwMTEz
Community of Learning Technology Nongbuadaeng District Chaiyaphum
Document
- หน้าแรก
- Download
- Document
- WebLink
- ปฏิทินกิจกรรม
- Custom Report
- Table HosXp
- SQL Query
- Biker
- Cloud
- TooL Life
- Administrator
- JGreatSound-Cal
- Programing
- Health
- My Home
- il-tea2014
- WiFi QR
- ตรวจสอบไอพี
- เอกสารอบรม
- ศูนย์ข้อมูลข่าวสารอิเล็กทรอนิกส์
- EdrawMaxView
- SkyLane
- บันทึกงานประจำวัน 2561
- GenQR
- Data Correct
- สพธอ
- NodUpdate
- PCC_LINK
- TEST_WORK
- กิจกรรมรายวัน
- Short URL
- สาระน่ารู้
- MobileApp
- MOVIE ผ่อนคลาย
วันพุธที่ 22 กุมภาพันธ์ พ.ศ. 2560
การตรวจสอบสิทธิ โดยใช้โปรแกรม HIS ต่าง ๆ
ว่าด้วยเรื่อง LABTEST 22 กุมภาพันธ์ 2560
ปรับแก้ไขรหัสมาตรฐานการตรวจ LABFU จาก 2 หลักเป็น 7 หลัก จาก ฟิลด์ LABTEST
เงื่อนไขในการส่งออกข้อมูลแฟ้ม LABFU
ในส่วน HOSXP เวอร์ชั่น โรงพยาบาล สามารถ อัพเวอร์ชั่น 3.59.12.30 จะมีการปรับตาราง LABFU ใช้รหัส 7 หลักเอง
และในส่วน ของ HOSXP_PCU ที่ยังไม่สามารถอัพเวอร์ชั่นได้ คงจะต้องใช้โปรแกรม อ.รังสรรค์ ในการปรับข้อมูลส่ง ศึกษาได้จาก YOUTUBE ลิงค์ด้านล่างนี้นะครับ CR. Phrankratai HealthOffice
การใช้โปรแกรม OPPP2010 for 43file 2560 Version 5.030 (2560-01-05) แปลง LABTEST 2 หลัก เป็น 7 หลัก
เงื่อนไขในการส่งออกข้อมูลแฟ้ม LABFU
ในส่วน HOSXP เวอร์ชั่น โรงพยาบาล สามารถ อัพเวอร์ชั่น 3.59.12.30 จะมีการปรับตาราง LABFU ใช้รหัส 7 หลักเอง
และในส่วน ของ HOSXP_PCU ที่ยังไม่สามารถอัพเวอร์ชั่นได้ คงจะต้องใช้โปรแกรม อ.รังสรรค์ ในการปรับข้อมูลส่ง ศึกษาได้จาก YOUTUBE ลิงค์ด้านล่างนี้นะครับ CR. Phrankratai HealthOffice
การใช้โปรแกรม OPPP2010 for 43file 2560 Version 5.030 (2560-01-05) แปลง LABTEST 2 หลัก เป็น 7 หลัก
วันเสาร์ที่ 18 กุมภาพันธ์ พ.ศ. 2560
ชื่อตารางที่เกี่ยวข้องกับ Vaccine Hosxp
ชื่อตารางที่เกี่ยวข้องกับ Vaccine
person_vaccine วัคซีน รวม
anc_service บัญชี 2
wbc_vaccine บัญชี 3
epi_vaccine บัญชี 4
student_vaccine บัญชี 5
women_vaccine บัญชี 6
*** ปล. วัคซีนทุกตัวในบัญชี ต้องมีในตาราง person_vaccine
2.ตาราง person_vaccine
ฟิล์ด vaccine_code ต้องตรงกับ baby_item.vaccine_code หรือเปล่าครับ >> ถูกต้อง
ฟิล์ด vaccine_group เราต้องกำหนดเองหรือเปล่า มีหลักเกณฑ์ไหมครับ >> ถูกต้องคะ กำหนดเอง เพื่อระบุว่าเป็น วัคซีนกลุ่มเดียวกันคะ เช่น วัคซีน DTP1 ,DTP2 มันแยกเป็นเข็ม แต่จริงๆ แล้วมันคือวัคซีนตัวเดียวกัน ดังนั้นตัวที่จะกำหนดให้รู้นั้นจะต้องกำหนดที่ vaccine_group ผลจากการกำหนด vaccine_group จะไปปรากฏที่ข้อมูลวัคซีน ในโปรแกรม เพื่อระบุ lot ที่ได้รับ และวันหมดอายุของวัคซีน
ฟิล์ด export_vaccine_code อันนี้น่าจะสำคัญ เราเอา code เหล่านี้มาจากไหนครับ...
>> ให้เข้ามาที่ link นี้นะคะ http://healthcaredata.moph.go.th/main/
>>แล้วดาวโหลด " - [final] รหัสมาตรฐานเพิ่มเติมที่ใช้ใน 43 แฟ้ม"
>> จากนั้นหา ไฟล์ที่ชื่อ "รหัสชนิดวัคซีน (แฟ้ม EPI)"
ที่มา http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=20939.0
ที่มา http://www.bloggang.com/viewdiary.php?id=babylovely&month=07-2012&date=16&group=21&gblog=26
person_vaccine วัคซีน รวม
anc_service บัญชี 2
wbc_vaccine บัญชี 3
epi_vaccine บัญชี 4
student_vaccine บัญชี 5
women_vaccine บัญชี 6
*** ปล. วัคซีนทุกตัวในบัญชี ต้องมีในตาราง person_vaccine
2.ตาราง person_vaccine
ฟิล์ด vaccine_code ต้องตรงกับ baby_item.vaccine_code หรือเปล่าครับ >> ถูกต้อง
ฟิล์ด vaccine_group เราต้องกำหนดเองหรือเปล่า มีหลักเกณฑ์ไหมครับ >> ถูกต้องคะ กำหนดเอง เพื่อระบุว่าเป็น วัคซีนกลุ่มเดียวกันคะ เช่น วัคซีน DTP1 ,DTP2 มันแยกเป็นเข็ม แต่จริงๆ แล้วมันคือวัคซีนตัวเดียวกัน ดังนั้นตัวที่จะกำหนดให้รู้นั้นจะต้องกำหนดที่ vaccine_group ผลจากการกำหนด vaccine_group จะไปปรากฏที่ข้อมูลวัคซีน ในโปรแกรม เพื่อระบุ lot ที่ได้รับ และวันหมดอายุของวัคซีน
ฟิล์ด export_vaccine_code อันนี้น่าจะสำคัญ เราเอา code เหล่านี้มาจากไหนครับ...
>> ให้เข้ามาที่ link นี้นะคะ http://healthcaredata.moph.go.th/main/
>>แล้วดาวโหลด " - [final] รหัสมาตรฐานเพิ่มเติมที่ใช้ใน 43 แฟ้ม"
>> จากนั้นหา ไฟล์ที่ชื่อ "รหัสชนิดวัคซีน (แฟ้ม EPI)"
ที่มา http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=20939.0
ที่มา http://www.bloggang.com/viewdiary.php?id=babylovely&month=07-2012&date=16&group=21&gblog=26
ป้ายกำกับ:
43 แฟ้ม,
anc_service,
epi_vaccine,
HOSxP Tool,
person_vaccine,
student_vaccine,
Vaccine,
wbc_vaccine,
women_vaccine
วันพุธที่ 11 มกราคม พ.ศ. 2560
Command line สำหรับตรวจสอบข้อมูลการติดตั้ง Windows..
Command line สำหรับตรวจสอบข้อมูลการติดตั้ง Windows..
รู้ไหม คุณลงวินโดว์ เมื่อไหร่?....
คำสั่ง Command line สำหรับตรวจสอบข้อมูลการติดตั้ง Windows.....
ลองไปใช้กันดูนะครับ แล้วคุณจะรู้ว่าเครื่องคุณติดตั้ง วินโดว์ ตั้งแต่เมื่อไหร่
คำสั่ง Command line สำหรับตรวจสอบข้อมูลการติดตั้ง Windows.....
systeminfo|find/I"install date"
ลองไปใช้กันดูนะครับ แล้วคุณจะรู้ว่าเครื่องคุณติดตั้ง วินโดว์ ตั้งแต่เมื่อไหร่
วันพุธที่ 23 พฤศจิกายน พ.ศ. 2559
มาทดสอบ Bandwidth บนระบบเครือข่ายกันเถอะ (for windows)
สืบเนื่องจากวันที่ 23 พฤศจิกายน 2559 พี่ช่างที่ทำงานชุมสายโทรศัพท์ขอปรึกษาการทดสอบความเร็วของสัญญาณของสายแลนที่เป็น CAT6 และ CAT5E มันเช็คกันยังไง เลยได้ไขข้อข้องใจและนำมาเป็นความรู้เพื่อให้ผู้ที่สนใจได้นำไปทดลองหรือไปใช้งานดูนะครับ
1. ดาวน์โหลดโปรแกรม iperf (เลือกได้ตามใจชอบเลยตัวนี้ต้องใช้คำสั่งในโหมด DOS นะครับ)
2. ที่ฝั่งเครื่อง Server รันคำสั่ง #iperf -s
3. ที่ฝั่ง Client รันคำสั่ง #iperf -c 192.168.1.101 (หมายเลข IP Address ของฝั่ง Server)
ตัวอย่าง คำสั่งที่ใช้
#iperf -c 192.168.1.101 -i1 -w64k -t 60 -d
-c 192.168.1.1 (ตามด้วยหมายเลข IP Address ของเครื่อง Server)
-i1 (Set ช่วงเวลา Update ใน report ทุก 1 วินาที)
-w64k (Set TCP Window size ขนาด 64 K)
-t 60 (Set time ให้ทำการทดสอบเป็นเวลา 60 วินาที)
-d (Dual Test ทำการส่งข้อมูลทั้งขาไปและขากลับ แบบ full-duplex)
* หรือสามารถใส่ iperf –help เพื่อดู parameter อื่นๆ ได้ครับ
การทดสอบขนาด bandwidth ด้วยคำสั่ง jperf (โหมด Windows)
การทดสอบขนาด Bandwidth ของระบบเครือข่ายคอมพิวเตอร์ด้วยโปรแกรม Jperf เพื่อหาความเร็วในการการโอนถ่ายข้อมูลระหว่างเครื่องคอมพิวเตอร์ตามรูป
1. ให้ไป Download โปรแกรม jperf มาก่อน โหลดได้ที่นี้ ftp://ftp.psu.ac.th/pub/jperf/jperf-2.0.2.zip หรือ http://code.google.com/p/xjperf/downloads/list.
2. ให้ไป Download โปรแกรม java runtime ที่นี้ ftp://ftp.psu.ac.th/pub/java/jre-6u18-windows-i586.exe หรือ http://www.java.com.
3. ให้ทำการติดตั้ง java runtime ทั้งเครื่อง Server และ client ด้วย
4. ให้แตก zip ไฟล์ jperf-2.0.2.zip ออกมา ทั้งเครื่อง Server และ client
5. ให้ run ไฟล์ jperf.bat ทั้งเครื่อง Server และ client
6. ให้ตั้งค่าที่เครื่อง server ตามนี้
7. เมื่อได้ตามนี้แล้วให้คลิก Run Ipref ได้เลย
8. ให้ตั้งค่าที่เครื่อง client ตามนี้ โดยให้นำ Ip Address ของเครื่อง server มาใส่ด้วยสมมุติ ip address ของ server เป็น 192.168.9.234 ส่วนในช่อง Tramsmit ให้ใส่จำนวนเวลาที่ต้องการส่งข้อมูลเข้าไปโดยหน่วยเป็นวินาที
9. เมื่อได้ตามนี้แล้วให้คลิก Run Ipref ได้เลย
10. เมื่อ run ทั้ง server และ client เป็นที่เรียบร้อยแล้วจะเห็นเส้นกราฟปรากฏขึ้นทั้งฝั่ง Server และ Cilent ด้วย ซึ่งจะบอกเป็นความเป็นในการรับส่งข้อมูล กิโลบิตต่อวินาที เป็นอันเสร็จเรียบร้อย
Cr.http://attasit.ptl.ac.th/Jml/index.php?option=com_content&view=article&id=52&Itemid=27,https://noc.rmutp.ac.th/iperf/
วันอังคารที่ 18 ตุลาคม พ.ศ. 2559
การใช้คำสั่ง join แสดงข้อมูล จาก 2 ฐานข้อมูล สำหรับ mysql
การใช้คำสั่ง join ของภาษา sql เพื่อแสดงข้อมูลนั้น ถือว่าเป็นคำสั่งที่ช่วยให้นักพัฒนาระบบสามารถเรียบเรียงข้อมูล
จากหลาย ๆ ตารางที่มีความสัมพันธ์กันมาแสดงร่วมกันได้อย่างลงตัวและมีประสิทธิภาพ และช่วยลดการใช้ select ข้อมูล
มาแสดงอย่างซ้ำซ้อนลงไปได้ ปัญหาที่เกิดขึ้นและมีความจำเป็นที่ต้องใช้การ join ข้อมูลจากหลาย ๆ ตารางนั้น
ก็มีมากมายแตกต่างกันไป แต่ปัญหาหนึ่งที่ผู้เขียนจะยกเป็นตัวอย่างในกรณีนี้คือ
การแสดงชื่อพนักงานและนามสกุลพนักงานจากแหล่งฐานข้อมูล 2 แหล่ง
โดยฐานข้อมูลแรกจะเก็บรายชื่อของพนักงาน และฐานข้อมูลตัวที่ 2 จะเก็บนามสกุลของพนักงานเอาไว้
แต่ต้องการทำรายงานที่ต้องแสดงทั้งชื่อและนามสกุลของพนักงานออกมา
อาจจะต้องใช้การ join ข้อมูลจาก 2 ฐานข้อมูลมาช่วยดังนี้
ฐานข้อมูลที่ 1
CREATE DATABASE `db1`
มี 1 ตาราง
CREATE TABLE `tb1` (
`id` int(1) NULL ,
`name` varchar(255) NULL ,
PRIMARY KEY (`id`)
)
;
ฐานข้อมูลที่ 2
CREATE DATABASE `db2`
มี 1 ตาราง
CREATE TABLE `tb2` (
`id` int(1) NULL ,
`surname` varchar(255) NULL ,
PRIMARY KEY (`id`)
)
;
โดยตาราง tb1 บน db1 และ tb2 บน db2 มีฟิลด์ id เป็นคีย์สำหรับเชื่อมโยงความสัมพันธ์กัน
แสดงข้อมูลใน tb1
แสดงข้อมูลใน tb2
ใช้การแสดงข้อมูลแบบ join ข้อมูลจาก 2 ฐานข้อมูล
SELECT
db1.tb1.`name`,
db2.tb2.surname
FROM
db1.tb1
INNER JOIN db2.tb2 ON db1.tb1.id = db2.tb2.id
แสดงผลข้อมูล
วันพฤหัสบดีที่ 13 ตุลาคม พ.ศ. 2559
คำสั่ง SQL เบื้องต้น
คำสั่ง SQL เบื้องต้น by natsu
ก่อนอื่นต้องบอกเลยครับว่ามันไม่ได้ดีมากนักสำหรับหน้าเวปนี้เพราะผมอ่านหนังสือและสรุปอย่างคร่าวๆ แล้วรูปแบบมันอาจจะเพี้ยนๆ เพราะผมเขียนใน PAGE แล้วเอา COPY and PASTE ลงเล้ย แบบไม่แก้ไขอันใด tab มั่วไปหมด ถ้าผิดพลาดประการใดต้องขออภัยด้วยครับ
ภาษา SQL นั้นไม่เป็น case sensitive (ตัวเล็ก ตัวใหญ่มีค่าเท่ากัน) และในแต่ละคำสั่งจะถูกปิดด้วย ; (semi-colon)
ถ้าต้องการออกใช้
สร้าง DATABASE
ก่อนอื่นต้องบอกเลยครับว่ามันไม่ได้ดีมากนักสำหรับหน้าเวปนี้เพราะผมอ่านหนังสือและสรุปอย่างคร่าวๆ แล้วรูปแบบมันอาจจะเพี้ยนๆ เพราะผมเขียนใน PAGE แล้วเอา COPY and PASTE ลงเล้ย แบบไม่แก้ไขอันใด tab มั่วไปหมด ถ้าผิดพลาดประการใดต้องขออภัยด้วยครับ
ภาษา SQL นั้นไม่เป็น case sensitive (ตัวเล็ก ตัวใหญ่มีค่าเท่ากัน) และในแต่ละคำสั่งจะถูกปิดด้วย ; (semi-colon)
(วิธีการลง SQL ใน Window7 : http://natsusencho.blogspot.com/2012/07/mysql-window7.html)
มาเริ่มกันเลย
การเข้าใช้ให้เราเปิด cmd ขึ้นมาและ
$ mysql -u root -p
จากนั้นใส่ password ลงไป
จะเข้าสู่การใช้
mysql > (เราจะพิมพ์คำสั่งต่างๆลงไป)
mysql > (เราจะพิมพ์คำสั่งต่างๆลงไป)
ถ้าต้องการออกใช้
mysql > quit
mysql > show databases; แสดง databases ทั้งหมดที่เราสร้างขึ้น
mysql > use <ชื่อ database> เป็นการเข้าใช้ database นั้นๆ
mysql > SELECT database(); ดู database ที่เรากำลังใช้อยู่
mysql > show tables; แสดงตารางทั้งหมดที่เราสร้างขึ้นใน database ที่ use
สร้าง DATABASE
mysql > create database <ชื่อdatabase>;
เช่น create database world;
สร้าง table
mysql > create table <ชื่อtable> (<ชื่อข้อมูล> <ชนิดข้อมูล>, ... );
เช่น create table human (name VARCHAR(20), birth DATE, sex CHAR(1));
ชนิดข้อมูล เช่น
VARCHAR(n) - ข้อมูลชนิด string เก็บแบบ linked list เหมาะสมกับข้อมูลที่มีความยาวที่ไม่แน่นอน
CHAR(n) - ข้อมูลชนิด string เก็บแบบ array เหมาะสมกับข้อมูลที่มีความยาวที่แน่นอน
INT - จำนวนเต็ม
DATE - ข้อมูลชนิดพิเศษของ SQL ใช้เก็บวันที่ มีรูปแบบเป็น YYYY-MM-DD
ดูชื่อและชนิดข้อมูลของแต่ละตาราง
mysql > describe <ชื่อtable>;
การใส่ข้อมูลลงไปใน table
1. ใช้คำสั่ง load data จากไฟล์ที่เราเตรียมไว้ โดย default จะแบ่งเนื้อหาโดยใช้ tab แบบนี้จะมีปัญหาเรื่องการใช้ข้อมูลชนิด NULL ซึ่งใช้ \N แทน
mysql > load data local infile ‘natsu.txt’ into table pet;
2.INSERT ใส่ทีละข้อมูล เหมาะกับข้อมูลที่น้อยๆ ที่เราเพิ่มเติมเข้าไป เช่น
2.INSERT ใส่ทีละข้อมูล เหมาะกับข้อมูลที่น้อยๆ ที่เราเพิ่มเติมเข้าไป เช่น
mysql > INSERT INTO pet VALUES (‘natsusencho’, ‘1992-03-25’, ‘M’);
3. *ทำ SQL script คือเตรียมไฟล์คำสั่ง sql ไว้แล้วนำมาทำการ source ทีเดวเช่น
ส่วนตัวแนะนำวิธีนี้เพราะเราเขียนทั้งหมดทีเดียวไม่ต้องมาใส่ทีละคำสั่ง นึกออกให้เสร็จที่เดียวแล้ว run ทีเดียวทั้งหมด
3. *ทำ SQL script คือเตรียมไฟล์คำสั่ง sql ไว้แล้วนำมาทำการ source ทีเดวเช่น
ส่วนตัวแนะนำวิธีนี้เพราะเราเขียนทั้งหมดทีเดียวไม่ต้องมาใส่ทีละคำสั่ง นึกออกให้เสร็จที่เดียวแล้ว run ทีเดียวทั้งหมด
---- file natsu.sql ----
CREATE TABLE IF NOT EXISTS human (
name VARCHAR(20),
birth DATE,
sex CHAR(1) );
INSERT INTO human VALUES
( 'NatsuSencho', '1992-03-25', 'M'),
( 'Slime', '1999-03-03', NULL ),
( ‘HeyFemale’ , ‘1993-12-25’ , ‘F’);
----- file natsu.sql -----
หลังจากสร้างเสร็จแล้วก้ลองใช้คำสั่ง
mysql > source natsu.sql;
ก็จะได้ตาราง world หน้าที่มีข้อมูล 3 ตัว
create table IF NOT EXISTS human
คำว่า IF NOT EXISTS หมายถึงการสร้าง table นี้ถ้ายังไม่มี table นี้ ถ้ามีแล้วก็ไม่ต้องสร้าง
มีสร้างก็ต้องมีลบ การลบ table ใช้คำสั่ง
mysql > DELETE FROM <ชื่อtable>;
หลังจากที่สร้างเป็นแล้วต้องสามารถแก้ไขข้อมูลได้
mysql > UPDATE <ชื่อtable>
SET <ชื่อข้อมูล> = <ข้อมูลใหม่>
WHERE <เงื่อนไขอื่นๆ>;
เช่น UPDATE human SET name = ‘HeyGirl’ WHERE name = ‘HeyFemale’;
การสืบค้นข้อมูล หรือการดูข้อมูล
SELECT <สิ่งที่ต้องการ>
FROM <ชื่อtable>
WHERE <เงื่อนไขอื่นๆ>
เช่นต้องการชื่อของข้อมูลในตาราง human ที่มีมีเพศชาย
SELECT name
FROM human
WHERE sex = ‘M’;
ต้องการดูข้อมูลทั้งหมดในตาราง human [* คือทั้งหมด]
SELECT *
FROM human;
ซึ่งการกำหนดเงื่อนไขนั้นเราสามารถใช้ตัวแปรทางคณิตศาสตร์ตรรกะ มาช่วยได้เช่น
AND และ
OR หรือ
OR หรือ
< น้อยกว่า
> มากกว่า
> มากกว่า
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
<> ไม่เท่ากับ
UNION การนำ 2 ตารางมาเชื่อมต่อกันตัดตัวซ้ำ
UNION ALL การนำ 2 ตารางมาเชื่อมกันโดยไม่ตัดตัวซ้ำ
INTERSECT ข้อมูลที่ซ้ำกัน
DISTINCT คือการตัดตัวที่ซ้ำกันออก
เช่น SELECT DISTINCT sex
FROM human;
ORDER BY เรียงลำดับข้อมูล การจัดกลุ่มข้อมูล
เรียงลำดับจากมากไปน้อย (descending order)
เช่น SELECT *
FROM human
ORDER BY name;
เรียงลำดับจากน้อยไปมาก (descending order)
เช่น SELECT *
FROM human
ORDER BY name DESC;
ถ้าต้องการมากกว่าอันนึงก็ย่อมได้
เช่น SELECT *
FROM human
ORDER BY name , sex DESC ;
แบบนี้จะจัดตามชื่อแบบ ascending ก่อนแล้วจะมาจัดเพศแบบ descending ทีหลัง
การคำนวณเกี่ยวกับวันที่
ตัวแปร DATE เป็น string ที่มีการเก็บเป็นรูปแบบ YYYY-MM-DD ตัวแปรชนิด DATE สามารถนำมาเทียบค่ากันได้ในระดับ ASCII
CURDATE() จะเป็น function ที่ส่งค่าออกมาเป็นข้อมูลรูปแบบ DATE (YYYY-MM-DD)
YEAR(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของปี (YYYY)
MONTH(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของเดือน (MM)
DAY(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของวัน (DD)
RIGHT(<ข้อมูลชนิดstring>, <จำนวนตัวเลข>) ส่งค่าออกมาจำนวนเท่ากับที่เราต้องการตัดออกมาจาก string นั้นๆ โดยเริ่มนับจากทางขวา
LEFT(<ข้อมูลชนิดstring>, <จำนวนตัวเลข>) ส่งค่าออกมาจำนวนเท่ากับที่เราต้องการตัดออกมาจาก string นั้นๆ โดยเริ่มนับจากทางซ้าย
ตัวอย่าง
ex1. ต้องการปีของวันปัจจุบัน YEAR( CURDATE() )
ex2. ต้องการเดือนและวันของปัจจุบัน RIGHT( CURDATE(),5 )
[5 ในที่นี้คือนับจากทางขวามือมา YYYY-MM-DD ก็จะได้ MM-DD มา]
การใช้ตัวแปร NULL ในเงื่อนไข
ใช้คำสั่ง xxx IS NOT NULL เช่นต้องการดูสิ่งมีชีิวิตที่ไม่มีเพศ
SELECT *
FROM human
WHERE sex IS NOT NULL;
การตั้งชื่อเป็นชื่อที่เราต้องการ
หมายถึงเวลา select บางทีคนทั่วไปอาจจะไม่เข้าใจว่าคืออะไร เราจึงมีคำสั่ง AS ช่วย เช่น
SELECT name AS ‘NAME-SURNAME’
FROM human;
COUNT การนับจำนวน + GROUP BY การจัดกลุ่ม
COUNT ใช้ในการนับจำนวนของตารางต่างๆ จะใช้คู่กับ GROUP BY ได้ดีเพราะจะช่วยในการจัดกลุ่มชุดข้อมูลได้ดีขึ้น
SELECT <อื่นๆ> COUNT(*)
FROM <ชื่อtable>
WHERE <เงื่อนไข>
GROUP BY <จัดกลุ่มโดยใช้อะไร>
เช่นต้องการนับจำนวนคนในแต่ละเพศ
SELECT sex , COUNT(*)
FROM human
GROUP BY sex;
SET การกำหนดตัวแปร
SET @<ชื่อตัวแปร> = <ค่า>
เช่น SET @A1 = ‘Natsu Sencho’;
SET @A2 = ‘1999-09-09’;
การใช้คำสั่ง JOIN
การ JOIN คือการนำตารางที่มีความสัมพันธ์ของข้อมูลในแต่ละฟิลมาเชื่อมโยงกัน
การ JOIN มี 2 แบบคือ
1. INNER JOIN
2. OUTER JOIN |--- LEFT JOIN
|--- RIGHT JOIN
INNER JOIN
คือการ JOIN โดยไม่สนใจค่า NULL จะดูเพียงตัวที่เหมือนกันเท่านั้น
สมมติมีตาราง 2 อันชื่อ Ltable และ Rtable นำมา JOIN กันโดยมีข้อมูลที่ซ้ำกันคือ id
-- JOIN โดยใช้ ON
SELECT *
FROM Ltable INNER JOIN Rtable ON Ltable.id = Rtable.id;
-- หรือ JOIN โดยใช้ USING
SELECT *
FROM Ltable INNER JOIN Rtable USING (id);
กรณีพิเศษที่ตัวแปรหรือชื่อ Column ซ้ำกันก็สามาใช้ NATURAL JOIN ได้ อย่างในที่นี้เรารุ้ว่า id นั้นซ้ำกันเราก็ไม่ต้องใส่เงื่อนไขใดๆ แต่ใช้ Natural Join เข้ามาช่วยโดย
SELECT *
FROM Ltable NATURAL JOIN Rtable;
OUTER JOIN
- LEFT JOIN
คือการ JOIN โดยใช้ตัวทางซ้ายเป็นหลักคือ จะแสดงตัวทางซ้ายทุกตัวและนำข้อมูลขวามาเชื่อม
SELECT *
FROM Ltable LEFT JOIN Rtable ON Ltable.id = Rtable.id;
- RIGHT JOIN
คือการ JOIN โดยใช้ตัวทางขวาเป็นหลักคือ จะแสดงตัวทางขวาทุกตัวและนำข้อมูลขวามาเชื่อม
SELECT *
FROM Ltable RIGHT JOIN Rtable ON Ltable.id = Rtable.id;
นอกจากวิธีการ JOIN ยังมีวิธีที่เรียกว่า Cartesian Product ซึ่งไม่ได้อทิบายไว้ในทีนี้
ถ้ามีโอกาศจะนั่งทำตัวอย่างให้ดูให้เห็นได้ชัดกว่านี้นะครับ แต่ผมสรุปแบบคร่าวๆ ให้พอดู
รวมคำศัพท์คำสั่งที่เจอเพจนี้
CREATE สร้างdatabase, table
INSERT ใส่ข้อมูล
UPDATE อัพเดตข้อมูล
SELECT ต้องการจะดูอะไรบ้าง
FROM จากที่ไหน
WHERE เงื่อนไขอย่างไร
COUNT(*) นับจำนวนของฟิลข้อมูล
GROUP BY จัดกลุ่มข้อมูล
ORDER BY เรียงลำดับข้อมูลโดย
JOIN เชื่อมตาราง
DISTINCT ตัดตัวซ้ำ
AS ใช้คำใหม่ให้กระทัดรัดขึ้น
SET กำหนดตัวแปร
CURDATE() วันที่ปัจจุบัน
YEAR() ปี
MONTH() เดือน
DAY() วัน
RIGHT() ตัดคำจากทางขวา
LEFT() ตัดคำจากทางซ้าย
* ทั้งหมด
อ้างอิง : เอกสารประกอบการสอนวิชา Databases โดยอาจารย์จิระ 2012 มหาวิทยาลัยบูรพา
สมัครสมาชิก:
บทความ (Atom)











