วันจันทร์ที่ 1 ธันวาคม พ.ศ. 2557

SQL ภาษาที่ใช้ในการเขียนโปรแกรมเพื่อจัดการกับฐานข้อมูลโดย

SQL คืออะไร
     SQL ย่อมาจาก structured query language คือภาษาที่ใช้ในการเขียนโปรแกรม เพื่อจัดการกับฐานข้อมูลโดยเฉพาะ เป็นภาษามาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์และเป็นระบบเปิด (open system) หมายถึงเราสามารถใช้คำสั่ง sql กับฐานข้อมูลชนิดใดก็ได้ และ คำสั่งงานเดียวกันเมื่อสั่งงานผ่าน  ระบบฐานข้อมูลที่แตกต่างกันจะได้ ผลลัพธ์เหมือนกัน ทำให้เราสามารถเลือกใช้ฐานข้อมูล ชนิดใดก็ได้โดยไม่ติดยึดกับฐานข้อมูลใดฐานข้อมูลหนึ่ง นอกจากนี้แล้ว SQL ยังเป็นชื่อโปรแกรมฐานข้อมูล ซึ่งโปรแกรม SQL เป็นโปรแกรมฐานข้อมูลที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็นภาษาหนึ่ง ซึ่งแบ่งการทำงานได้เป็น 4 ประเภท ดังนี้
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
2. Update query ใช้สำหรับแก้ไขข้อมูล
3. Insert query ใช้สำหรับการเพิ่มข้อมูล
4. Delete query ใช้สำหรับลบข้อมูลออกไป
     ปัจจุบันมีซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS ) ที่สนับสนุนการใช้คำสั่ง SQL เช่น  Oracle , DB2, MS-SQL, MS-Access 
นอกจากนี้ภาษา SQL ถูกนำมาใช้เขียนร่วมกับโปรแกรมภาษาต่างๆ เช่น ภาษา c/C++ , VisualBasic และ Java 

ประโยชน์ของภาษา SQL
1. สร้างฐานข้อมูลและ ตาราง    
2. สนับสนุนการจัดการฐานข้อมูล ซึ่งประกอบด้วย การเพิ่ม การปรับปรุง และการลบข้อมูล
3. สนับสนุนการเรียกใช้หรือ ค้นหาข้อมูล    
    
ประเภทของคำสั่งภาษา SQL
1. ภาษานิยามข้อมูล(Data Definition Language : DDL) เป็นคำสั่งที่ใช้ในการสร้างฐานข้อมูล กำหนดโครงสร้างข้อมูลว่ามี  Attribute ใด
 ชนิดของข้อมูล รวมทั้งการเปลี่ยนแปลงตาราง และการสร้างดัชนี คำสั่ง : CREATE,DROP,ALTER
2. ภาษาจัดการข้อมูล (Data Manipulation Language :DML) เป็นคำสั่งที่ใช้ในการเรียกใช้ เพิ่ม ลบ และเปลี่ยนแปลงข้อมูลในตาราง    คำสั่ง : SELECT,INSERT,UPDATE,DELETE
3. ภาษาควบคุมข้อมูล (Data Control Language : DCL) เป็นคำสั่งที่ใช้ในการกำหนดสิทธิการอนุญาติ หรือ ยกเลิก การเข้าถึงฐานข้อมูล เพื่อป้องกันความปลอดภัยของฐานข้อมูล คำสั่ง : GRANT,REVOKE


ตัวอย่าง

MYSQL CONCAT()
เป็นคำสั่งของ MySQL ใช้ในการนำ String มารวมกันหรือต่อกัน


Database : MySQL

Syntax

CONCAT(str1,str2,...)


Sample

SELECT CONCAT('My', 'S', 'QL');
-> MySQL

SELECT CONCAT('My', NULL, 'QL');
-> NULL

SELECT CONCAT(14.3);
-> 14.3



SQL LEN
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการนับจำนวนตัวอักษร

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT LEN(ColumnName) FROM table_name


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 เลือกข้อมูล Column ชื่อ Name โดยทำการนับจำนวนตัวอักษร

SELECT Name, LEN(Name) As LenName FROM customer

Output 

Name
LenName
win weerachai
13
john smith
10
jame born
9
chalee angel
12

SQL AUTO_INCREMENT For MySQL
เป็นคำสั่งที่ใช้สำหรับการสร้าง Auto Number หรือตัวเลขรันอัตโนมัติ,

Database : MySQL

Syntax
CREATE TABLE "TableName" 
(
ColumnName1 DataType AUTO_INCREMENT,
ColumnName2 DataType ,
ColumnName3 DataType ,
ColumnName4 DataType ,
...
PRIMARY KEY (ColumnName1)
)

หรือในกรณี ALTER

ALTER TABLE "TabmeName" CHANGE ColumnName1 ColumnName1 DataType AUTO_INCREMENT

Sample 1 ต้องการสร้างตารางชื่อ audit ประกอบด้วย Column ชื่อ AuditID , CustomerID , Date , Used มี AuditID เป็น AUTO_INCREMENT 

CREATE TABLE audit (
AuditID int(4) NOT NULL auto_increment,
CustomerID varchar(4) NOT NULL,
Date date NOT NULL,
Used double NOT NULL,
PRIMARY KEY (AuditID)
);

โดยค่าจะเริ่มต้นเป็น 1,2,3,4,5,6 .... แต่ถ้าต้องการให้มี 0 ข้างหน่้าเช่น 0001,0002,0003 สามารถใส่ Attributes ชื่อ UNSIGNED ZEROFILL

ALTER TABLE audit CHANGE AuditID AuditID INT( 4 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT


SQL UNIQUE
เป็นคำสั่งที่ใช้สำหรับการสร้าง UNIQUE ต้องการให้ฟิวด์หรือ Column นั้น ๆ มีค่าไม่ซ้ำกันของ Rows ทั้งหมด

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax
CREATE TABLE "TableName" 
(
ColumnName1 DataType ,
ColumnName2 DataType ,
ColumnName3 DataType ,
ColumnName4 DataType ,
...
UNIQUE (ColumnName1,ColumnName2...)
)

หรือในกรณี ALTER

ALTER TABLE "TabmeName" ADD UNIQUE (Column1,Column2)

Table : customer

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000

Sample 1 ต้องการทำ UNIQUE ของ Table customer สำหรับ Column ชื่อ Email (กรณีแก้ไข Table) 

ALTER TABLE customer ADD UNIQUE (Email)


Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.smith@thaicreate.com
EN
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


เมื่อทำ UNIQUE แล้ว Column Email จะไม่สามารถมีค่าซ้ำกันของ Rows ทั้งหมด 


SQL LIKE 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการค้นหาข้อความที่ระบุภายในฟิวด์ที่กำหนด

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Filed] LIKE '%Value%'


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลตารางที่ฟิวด์ Name มีคำว่า ee อยู่ 

SELECT * FROM customer WHERE Name LIKE '%ee%'

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample2 การเลือกข้อมูลตารางที่ฟิวด์ Email มีคำว่า j นำหน้า 

SELECT * FROM customer WHERE Name LIKE 'j%'

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000


Sample3 การเลือกข้อมูลตารางที่ฟิวด์ Name มีคำว่า i ลงท้าย

SELECT * FROM customer WHERE Name LIKE '%i'

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000


การใช้งาน LIKE ที่หลายเงื่อนไข หรือ OR ใน Statement สามารถใช้ [x,y] ได้

เช่น

SELECT * FROM customer WHERE Name LIKE '%[John,jame]%'



SQL LIMIT 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) ที่สามารถกำหนดจำนวน Record ที่แสดงผลออกมาได้

Database : MySQL 

Syntax

SELECT Column1, Column2, Column3,... FROM [Table-Name] ORDER BY [Fields] [ASC/DESC] LIMIT [Int-Start] , [Int-End]


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลที่มีการใช้ยอดเงินมากที่สุดจำนวน 2 Record 

SELECT * FROM customer ORDER BY Used DESC LIMIT 0,2

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000



MYSQL REPEAT()
เป็นคำสั่งของ MySQL ใช้ในการแทนที่แสดงจำนวนข้อความ ตามจำนวน Loop ที่ต้องการ

Database : MySQL

Syntax

REPEAT(str,count)


Sample

SELECT REPEAT('MySQL', 3);
-> MySQLMySQLMySQL

SELECT REPEAT('ThaiCreate', 5);
-> ThaiCreateThaiCreateThaiCreateThaiCreateThaiCreate


SQL NOW()
เป็นคำสั่งที่ใช้ในอ่านวันที่ปันจุบันของ MySQL Database 

Database : MySQL Database

Syntax

SELECT NOW()
SELECT * FROM table WHERE Column = NOW()
INSERT INTO table (Column1,Column2) VALUES ('Value1',NOW())


SQL USE
เป็นคำสั่งที่ใช้ในการเปลี่ยนหรือเรียกใช้ฐานข้อมูลปัจจุบัน

Database : MySQL , SQL Server 

Syntax

USE DatabaseName



MYSQL CEILING()
เป็นคำสั่งของ MySQL ใช้ในการปัดเศษทศนิยม ให้มีค่ามากขึ้น เช่น 2.01 จะปัดเป็น 3 หรือ 2.5 ก็จะได้เป็นค่า 3

Database : MySQL

Syntax

CEILING(expression)


Sample 1

SELECT CEILING(2.01)

Output 

3


Sample 2

SELECT CEILING(2.5)

Output 

3


สำหรับการใง้งานรวมกับ Column หรือ ฟิวด์ใน MySQL ก็สามารถทำการครอบ Column นั้น ๆ ได้เช่นเดียวกัน 

SELECT Column1, CEILING(Column2) As AliasColumn2 FROM table_name

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

แบบสอบถามประเมินความพึงพอใจที่มีต่อเว็บไซต์