ภาษาการเขียนโปรแกรม Q
Kdb + มาพร้อมกับภาษาโปรแกรมในตัวที่เรียกว่า q. ประกอบด้วยส่วนเหนือของ SQL มาตรฐานซึ่งขยายออกไปสำหรับการวิเคราะห์อนุกรมเวลาและมีข้อดีมากมายกว่าเวอร์ชันมาตรฐาน ใครก็ตามที่คุ้นเคยกับ SQL สามารถเรียนรู้ได้q ภายในเวลาไม่กี่วันและสามารถเขียนคำค้นหาเฉพาะกิจของเธอเองได้อย่างรวดเร็ว
การเริ่มต้นสภาพแวดล้อม“ q”
ในการเริ่มใช้ kdb + คุณต้องเริ่มไฟล์ qเซสชัน มีสามวิธีในการเริ่มต้นไฟล์q เซสชั่น -
เพียงพิมพ์“ c: /q/w32/q.exe” บนรันเทอร์มินัลของคุณ
เริ่มเทอร์มินัลคำสั่ง MS-DOS และพิมพ์ q.
คัดลอกไฟล์ q.exe ลงใน“ C: \ Windows \ System32” และบนรันเทอร์มินัลเพียงพิมพ์“ q”
ที่นี่เราสมมติว่าคุณกำลังทำงานบนแพลตฟอร์ม Windows
ประเภทข้อมูล
ตารางต่อไปนี้แสดงรายการประเภทข้อมูลที่รองรับ -
ชื่อ | ตัวอย่าง | ถ่าน | ประเภท | ขนาด |
---|---|---|---|---|
บูลีน | 1b | ข | 1 | 1 |
ไบต์ | 0xff | x | 4 | 1 |
สั้น | 23 ชม | ซ | 5 | 2 |
int | 23i | ผม | 6 | 4 |
ยาว | 23j | ญ | 7 | 8 |
จริง | 2.3e | จ | 8 | 4 |
ลอย | 2.3f | ฉ | 9 | 8 |
ถ่าน | “ ก” | ค | 10 | 1 |
varchar | `ab | s | 11 | * |
เดือน | 2546.03 ม | ม | 13 | 4 |
วันที่ | 2015.03.17T18: 01: 40.134 | z | 15 | 8 |
นาที | 08:31 น | ยู | 17 | 4 |
วินาที | 08:31:53 น | v | 18 | 4 |
เวลา | 18: 03: 18.521 | t | 19 | 4 |
enum | `u $` b โดยที่ u: `a`b | * | 20 | 4 |
การสร้างอะตอมและรายการ
อะตอมเป็นเอนทิตีเดียวเช่นจำนวนเดียวอักขระหรือสัญลักษณ์ ในตารางด้านบน (ประเภทข้อมูลที่แตกต่างกัน) ประเภทข้อมูลที่รองรับทั้งหมดคืออะตอม รายการคือลำดับของอะตอมหรือประเภทอื่น ๆ รวมทั้งรายการ
การส่งผ่านอะตอมชนิดใด ๆ ไปยังฟังก์ชันประเภท monadic (เช่นฟังก์ชันอาร์กิวเมนต์เดี่ยว) จะส่งกลับค่าเป็นลบกล่าวคือ –nในขณะที่การส่งรายการอะตอมเหล่านั้นไปยังฟังก์ชัน type จะส่งกลับค่าเป็นบวก n.
ตัวอย่างที่ 1 - อะตอมและการสร้างรายการ
/ Note that the comments begin with a slash “ / ” and cause the parser
/ to ignore everything up to the end of the line.
x: `mohan / `mohan is a symbol, assigned to a variable x
type x / let’s check the type of x
-11h / -ve sign, because it’s single element.
y: (`abc;`bca;`cab) / list of three symbols, y is the variable name.
type y
11h / +ve sign, as it contain list of atoms (symbol).
y1: (`abc`bca`cab) / another way of writing y, please note NO semicolon
y2: (`$”symbols may have interior blanks”) / string to symbol conversion
y[0] / return `abc
y 0 / same as y[0], also returns `abc
y 0 2 / returns `abc`cab, same as does y[0 2]
z: (`abc; 10 20 30; (`a`b); 9.9 8.8 7.7) / List of different types,
z 2 0 / returns (`a`b; `abc),
z[2;0] / return `a. first element of z[2]
x: “Hello World!” / list of character, a string
x 4 0 / returns “oH” i.e. 4th and 0th(first)
element