วันอังคารที่ 30 สิงหาคม พ.ศ. 2559

SQL - วิธีเปลี่ยนชื่อ Tables

          การเปลี่ยนชื่อ Tables สามารถทำได้โดยใช้คำสั่ง RENAME TABLE ..... TO ..... หรือ ALTER TABLE ..... TO ..... การเปลี่ยนแปลงชื่อข้อมูลอื่นๆ ภายใน Database ที่อ้างอิงมาที่ Table นี้ก็จะถูกเปลี่ยนแปลงตามไปด้วย




การเปลี่ยนชื่อ Tables สามารถทำได้โดยใช้คำสั่ง RENAME TABLE ..... TO ..... หรือ ALTER TABLE ..... TO ..... การเปลี่ยนแปลงชื่อข้อมูลอื่นๆ ภายใน Database ที่อ้างอิงมาที่ Table นี้ก็จะถูกเปลี่ยนแปลงตามไปด้วย

ตัวอย่างคำสั่งการเปลี่ยนชื่อ Table
RENAME TABLE PLAYERS TO TENNIS_PLAYERS
หรือ
ALTER TABLE PLAYERS TO TENNIS_PLAYERS

SQL WHERE

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

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT Column1, Column2, Column3,... FROM Table-Name WHERE [Field] = 'Value'


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachai win.weerachai@thaicreate.com
TH
1000000 600000
C002
John Smith john.smith@thaicreate.com
EN
2000000 800000
C003
Jame Born jame.born@thaicreate.com
US
3000000 600000
C004
Chalee Angel chalee.angel@thaicreate.com
US
4000000 100000


Sample1 การเลือกข้อมูลโดยใช้ Operators = (เท่ากับ)

SELECT * FROM customer WHERE CountryCode = 'US'
หรือ แบบ 2 เงื่อนไข ใช้ and เข้ามาเชื่อม วลี
SELECT * FROM customer WHERE CountryCode = 'US' and Budget = '4000000'

Output

CustomerID
Name
Email
CountryCode
Budget
Used
C003
Jame Born jame.smith@thaicreate.com
US
3000000 600000
C004
Chalee Angel chalee.angel@thaicreate.com
US
4000000 100000

CustomerID
Name
Email
CountryCode
Budget
Used
C004
Chalee Angel chalee.angel@thaicreate.com
US
4000000 100000


Sample2 การเลือกข้อมูลโดยใช้ Operators != (ไม่เท่ากับ)

SELECT * FROM customer WHERE CountryCode != 'US'
หรือ แบบ 2 เงื่อนไข ใช้ and เข้ามาเชื่อม วลี
SELECT * FROM customer WHERE CountryCode != 'US' and CountryCode != 'EN'
หรือจะใช้ or
SELECT * FROM customer WHERE CountryCode != 'US' or Budget = '1000000'

Output

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachai win.weerachai@thaicreate.com
TH
1000000 600000
C002
John Smith john.smith@thaicreate.com
EN
2000000 800000

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachai win.weerachai@thaicreate.com
TH
1000000 600000

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachai win.weerachai@thaicreate.com
TH
1000000 600000
C002
John Smith john.smith@thaicreate.com
EN
2000000 800000

Oracle คืออะไร

Oracle คืออะไร
     Oracle คือ โปรแกรมจัดการฐานข้อมูล ผลิตโดยบริษัทออราเคิล ซึ่งเป็นโปรแกรมจัดการฐานข้อมูลเชิงสัมพันธ์ หรือ DBMS (Relational Database Management System) ตัวโปรแกรมนี้จะทำหน้าที่เป็นตัวกลางคอยติดต่อ ประสาน ระหว่างผู้ใช้และฐานข้อมูล ทำให้ผู้ใช้งานสามารถใช้งานฐานข้อมูลได้สะดวกขึ้น เช่นการค้นหาข้มูลต่างๆภายในฐานข้อมูลที่ง่ายและสะดวก โดยผู้ใช้ไม่จำเป็นต้องทราบถึงโครงสร้างภายในของฐานข้อมูลก้สามารถเข้าใช้ ฐานข้อมุลนั้นได้
ข้อดีของ Oracle
1.เทคโนโลยี Rollback Segment ถูกนำมาใช้ในโปรแกรม Oracle ประโยชน์ Rollback Segment คือ สามารถจัดการกับข้อมูลในกรณีที่เกิดการล้มเหลวของระบบ หรือภาวะระบบไม่สามารถให้บริการได้ ด้วยเทคโนโลยี Rollback Segment จะจัดการ Instance Recovery ข้อมูลไม่ให้เกิดความเสียหายอันเนื่องมาจาก การล้มเหลวของระบบ ได้อย่างดีมาก 
2. Oracle ยังมีส่วนที่เรียกว่า Timestamp ทำงานเกี่ยวข้องกับ Concurrency Control เป็นส่วนที่จัดการการทำงานกับหลาย ๆ Transaction ในเวลาเดียวกัน โดยทุก ๆ Transaction จะมี Timestamp เป็นตัวกำหนดเวลาเริ่มต้นของการประมวลผล (Process) ซึ่งช่วยในการขจัดปัญหาหลักของ Concurrency Problems
3.Oracle ใช้ได้กับฐานข้อมูลกว่า 80 แพลตฟอร์ม ซึ่งครอบคลุมเกือบทุกแพลตฟอร์มที่มีอยู่ในปัจจุบัน เริ่มตั้งแต่เครื่องคอมพิวเตอร์บนเมนเฟรม, มินิคอมพิวเตอร์, พีซี บนระบบปฏิบัติการตั้งแต่ Window 9x, NT, Window CE, UNIX, SOLARIS, LINUX  โดยที่ในทุกพอร์ตมีโครงสร้างการเหมือนกันๆหมด คำสั่งที่ใช้ก็เป็นแบบเดียวกัน สามารถทำงานร่วมกันได้ สามารถนำข้อมูลจากพอร์ตหนึ่งไปพอร์ตอื่นได้อย่างไม่มีปัญหา
ประเภทของ Oracle1. Personal Oracle
2. Oracle Server
     ทั้ง 2 แบบนี้มีลักษณะการใช้งานและคำสั่งเหมือนกัน แต่ต่างกันที่ Personal Oracle คือฐานข้อมูลที่เมื่อติดตั้งบนเครื่องคอมพิวเตอร์แล้ว ผู้ใช้จะต้องนั่งทำงานกับ Oracle นี้ที่หน้าเครื่องท่านั้น ส่วนของ Oracle Server คือ ฐานข้อมูลในลักษณะเซิร์ฟเวอร์ คือเครื่องคอมพิวเตอร์ที่ติดตั้งโปรแกรมของ Oracle Server ไว้ และยอมให้ผู้ใช้งานเรียกฐานข้อมูล หรือจัดการกับข้อมูลจากเครื่องคอมพิวเตอร์อื่น ๆ ได้(เรียกเครื่องอื่นๆ เป็นไคลเอนต์) ดังนั้นถ้าต้องการให้มีผู้เรียกใช้ข้อมูลจากฐานข้อมูลหลาย ๆ คนได้ ก็ควรต้องเลือกแบบที่เป็น Oracle Server
Oracle คืออะไร ออราเคิลโปรแกรมจัดการฐานข้อมูล


ข้อมูลอ้างอิง
http://www.phpparty.com
http://www.oracle.2ko.co.za

DBMS คืออะไร

DBMS  ย่อมาจาก Database Management System
DB คือ Database  หมายถึง ฐานข้อมูล
M คือ Management หมายถึง การจัดการ
S คือ System หมายถึง ระบบ
   DBMS คือ ระบบการจัดการฐานข้อมูล หรือซอฟต์แวร์ที่ดูแลจัดการเกี่ยวกับฐานข้อมูล โดยอำนวยความสะดวกให้แก่ผู้ใช้ทั้งในด้านการสร้าง การปรับปรุงแก้ไข
การ เข้าถึงข้อมูล และการจัดการเกี่ยวกับระบบแฟ้มข้อมูลทางกายภาพ ภายในฐานข้อมูลซึ่งต่างไปจากระบบแฟ้มข้อมูลคือ หน้าที่เหล่านี้จะเป็นของโปรแกรมเมอร์ ในการติดต่อฐานข้อมูลไม่ว่าจะด้วยการใช้คำสั่งในกลุ่ม DML หรือ DDL หรือ จะด้วยโปรแกรมต่างๆ ทุกคำสั่งที่ใช้กระทำกับฐานข้อมูลจะถูกโปรแกรม DBMS นำมาแปล (Compile) เป็นการกระทำต่างๆภายใต้คำสั่งนั้นๆ เพื่อนำไปกระทำกับตัวข้อมูลใน ฐานข้อมูลต่อไป
   DBMS ถูกพัฒนาขึ้นเพื่อแก้ไขปัญหาด้าน Data Independence ที่ไม่มีในระบบแฟ้มข้อมูล ทำให้มีความเป็นอิสระจากทั้งส่วนของฮาร์ดแวร์ และข้อมูลภายในฐานข้อมูลกล่าวคือโปรแกรม DBMS นี้จะมีการทำงานที่ไม่ขึ้นอยู่กับรูปแบบ (Platform) ของตัวฮาร์ดแวร์ ที่นำมาใช้กับระบบฐานข้อมูลรวมทั้งมีรูปแบบในการอ้างถึงข้อมูลที่ไม่ขึ้น อยู่กับโครงสร้างทางกายภาพของข้อมูลด้วยการใช้ Query Language ในการติดต่อกับข้อมูลในฐานข้อมูลแทนคำสั่งภาษาคอมพิวเตอร์ในยุคที่ 3 ส่งผลให้ผู้ใช้สามารถเรียกใช้ข้อมูลจากฐานข้อมูลได้โดยไม่จำเป็นต้องทราบถึง ประเภทหรือขนาดของข้อมูลนั้นหรือสามารถกำหนดลำดับที่ของฟิลด์ ในการกำหนดการแสดงผลได้โดยไม่ต้องคำนึงถึงลำดับที่จริงของฟิลด์ นั้น
   หน้าที่ของ DBMS
1.) ทำหน้าที่แปลงคำสั่งที่ใช้จัดการกับข้อมูลภายในฐานข้อมูลให้อยู่ในรูปแบบที่ข้อมูลเข้าใจ
2.) ทำหน้าที่ในการนำคำสั่งต่างๆ ซึ่งได้รับการแปลแล้วไปสั่งให้ฐานข้อมูลทำงาน เช่น การเรียกใช้ข้อมูล (Retrieve) การจัดเก็บข้อมูล (Update) การลบข้อมูล (Delete) หรือ การเพิ่มข้อมูลเป็นต้น (Add) ฯลฯ
3.) ทำหน้าที่ป้องกันความเสียหายที่จะเกิดขึ้นกับข้อมูลภายในฐานข้อมูล โดยจะคอยตรวจสอบว่าคำสั่งใดที่สามารถทำงานได้และคำสั่งใดที่ไม่สามารถทำได้
4.) ทำหน้าที่รักษาความสัมพันธ์ของข้อมูลภายในฐานข้อมูลให้มีความถูกต้องอยู่เสมอ
5.) ทำหน้าที่เก็บรายละเอียดต่าง ๆ ที่เกี่ยวข้องกับข้อมูลภายในฐานข้อมูลไว้ใน data dictionary ซึ่งรายละเอียดเหล่านี้มักจะถูกเรียกว่า "ข้อมูลของข้อมูล" (Meta Data)
6.) ทำหน้าที่ควบคุมให้ฐานข้อมูลทำงานได้อย่างถูกต้องและมีประสิทธิภาพ

ตัวอย่างฐานข้อมูลที่เป็น
DBMS
  • Mysql
  • Oracle คืออะไร ออราเคิล คือโปรแกรมจัดการฐานข้อมูล
  • มารู้จักและติดตั้ง PostgreSQL
  • MSSQL

ข้อมูลอ้างบอิง
http://www.ismed.or.th
http://sites.google.com
http://th.wikipedia.org

คำสั่ง SQL เบื้องต้น

คำสั่ง SQL เบื้องต้น


ก่อน อื่นต้องบอกเลยครับว่ามันไม่ได้ดีมากนักสำหรับหน้าเวปนี้เพราะผมอ่านหนังสือ และสรุปอย่างคร่าวๆ แล้วรูปแบบมันอาจจะเพี้ยนๆ เพราะผมเขียนใน 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 > 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 ใส่ทีละข้อมูล เหมาะกับข้อมูลที่น้อยๆ ที่เราเพิ่มเติมเข้าไป เช่น
mysql > INSERT INTO pet VALUES (‘natsusencho’, ‘1992-03-25’, ‘M’);

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 หรือ
< น้อยกว่า 
 > มากกว่า
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
<> ไม่เท่ากับ
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 มหาวิทยาลัยบูรพา

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


ข้อมูลอ้างอิง
www.satit.su.ac.th
www.chandra.ac.th
www.softwaresiam.com

วันศุกร์ที่ 19 สิงหาคม พ.ศ. 2559

ASP Comment

Comment เป็นส่วนที่ละไว้ไม่ให้ ASP ทำการประมวลผลในส่วนนั้น ๆ Comment/คำอธิบาย ของ ASP จะใช้ด้วยเครื่องหมาย ' หรือ //



ตัวอย่างการใช้ ' และ //

comment.asp


1.<%
2.Response.write("Welcome to www.ThaiCreate.Com<br>")
3.Response.write("ASP,PHP and ASP.NET Tutorial<br>")
4.'Response.write("Programmer By Mr.Weerachai Nukitram<br>")
5.//Response.write("Nick Name : Win<br>")
6.Response.write("Update Version 2008<br>")
7.%>




ASP Comment
Screenshot

ASP Comment

 

วันพุธที่ 17 สิงหาคม พ.ศ. 2559

IIS SMTP Virtual Server

IIS SMTP Virtual Server ในการที่จะใช้ SMTP ในการส่งอีเมล์นั้นในกรณีที่ได้ทำการติดตั้ง IIS แล้วสามารถที่จะเปิด SMTP ใช้งานได้ในทันทีครับ เดียวมาลองดูการ Config ในการใช้งานครับ


เปิดโปรแกรมได้ที่


Start -> Control Panel -> Administrative Tools -> Internet Information Services


IIS SMTP

Start Default SMTP Virtual Server


IIS SMTP

คลิกขวา Default SMTP Virtual Server -> Properties

IIS SMTP

คลิกที่ Relay


IIS SMTP

เลือก Option ดังรูป

เพียงเท่านี้ก็มี SMTP ที่สามารถเขียน Script PHP,ASP หรือ ASP.NET ไว้สำหรับส่งอีเมล์ได้แล้วครับ โดย Script PHP,ASP หรือ ASP.NET ถ้ามีการส่งอีเมล์ตัว Script จะทำการเรียก SMTP ตัวนี้และทำการส่งอีเมล์ออกไป โดยที่อีเมล์ในส่วนของคิวส่งออก จะถูกจัดเก็บไว้ที่

C:\Inetpub\mailroot\Queue


IIS SMTP



PHP Send Email



ASP Send Email



ASP.NET Send Email

Install IIS/IIS7 + Windows 7 + Vista (Internet Information Service, Windows 7,Vista)

Install IIS/IIS7 + Windows 7 + Vista (Internet Information Service, Windows 7,Vista) เป็นวิธีการติดตั้ง IIS 7 บน Windows 7 ครับ ซึ่งให้เรียกการติดตั้งที่ Turn Windows features on or off


Windows Vista


Start -> Control Panel

เลือก Programs and Feature (Truen Windows feature on or off)

เลือกที่ Option ของ Internet Information Service



Windows 7

เปิด Control Panel ได้ที่

Start -> Control Panel


จะแสดงหน้าจอของ Control Panel
เลือก Uninstall a Program ดังรูป

คลิกที่ Turn Windows features on or off ซ้ายมือ และคลิกเลือกที่ Option ของ Internet Information Service

ถ้าทดสอนการทำงานโดยรัน http://localhost แล้วปรากฏดังหน้าจอแสดงว่าสามารถใช้งาน IIS7 กับ Windows 7 ได้แล้วครับ


การ Config IIS7 บน Windows 7

เลือกที่เมนู Administrative Tools
Internet Information Services (IIS) Manager
หน้าจอ ของ Internet Information Services (IIS) Manager

IIS7 for ASP Classic (Windows 7 , Windows Vista)


Config IIS7 for ASP.NET and Application (Windows 7)


ติดตั้ง PHP บน IIS และการ Setup ให้ปรับแต่ง PHP สามารถทำงาน Run บน IIS Web Serverได้


การทำ mod_rewrite บน IIS การแปลง Convert .htaccess เป็น Web.Config (IIS and PHP)

IIS7 for ASP Classic (Windows 7 , Windows Vista)



IIS7 for ASP Classic (Windows 7 , Windows Vista) เป็นวิธีการ Setup IIS กับ ASP บน Windows 7 และ Windows Vista ใช้งานกับ ASP ในการใช้งาน IIS7 จะต้องสร้างเป็น Site ซึ่งการทำงานจะแยกกันอย่างชัดเจนในแต่ล่ะ Site หรือ Project



เปิดโปรแกรม IIS ได้ที่


Control Panel\All Control Panel Items\Administrative Tools\Internet Information Services (IIS) Manager




คลิกวาที่ Site -> Add Web Site



ในที่นี้ผมสร้าง project ชื่อ myasp และเก็บไว้ที่ C:\myasp และกำหนด Port ในที่นี้ผมกำหนดเป็น 99

ซึ่งตอนที่รันโปรแกรมผมจะต้องรันที่ http://localhost:99


หาก Service ไม่ทำงานให้ Start Service ก่อนครับ


ทดสอบการทำงานของ IIS7 กับ ASP

สร้างไฟล์ Test.asp เก็บไว้ที่ C:\myasp\Test.asp


จากนั้นให้ทดสอบรันโปรแกรมโดนรันที่ http://localhost:99/Test.asp




HTTP Error 404.3 - Not Found
The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.


ถ้าหน้าจอปรากฏดังรูป ให้ทำการ Config ในส่วนของ Application Development Features


ไปที่ Turn Windows features on or off ของ Control Panel

Internet Information Services -> World Wide Web Servies -> Application Development Features -> คลิกเลือก ASP

รอซักครู่

เสร็จแล้วของทดสอบโปรแกรมใหม่อีกครั้ง ก็จะได้ผลดังรูปครับ

ASP System Requirement

ASP System Requirement ความต้องการของ ASP ในการพัฒนาโปรแกรม


- Web Server (PWS or IIS)
- MySQL Database
- ASP (ตัวแปรภาษา ASP ซึ่งมาพร้อมกับ PWS,IIS)


ในการพัฒนาโปรแกรมด้วยภาษา ASP ในปัจจุบันถูกใช้งานบน Windows OS มากที่สุดครับ สำหรับ Platform ยังไม่มีคำยืนยันถึงประสิทธิ์การใช้งานได้สมบูรณ์แบบเหมือน Windows ครับโดยผมจะแยกการติดตั้งเป็น 2 ประเภทคือ



1.Windows 95,98,Me ใช้โปรแกรมชื่อ PWS

หา PWS ได้จากไหน ?
PWS เป็น Shareware ที่สามารถใช้งานได้ฟรี ซึ่งจะมีแถมมากับแผ่น Win98 อยู่ใน folder add-ons ชื่อ PWS ( Personal Web Server )

Install PWS (Personal Web Server)
http://www.thaicreate.com/asp/install-pws.html




2.Windows NT,XP,2000,2003,VISTA,200X ใช้โปรแกรมชื่อ IIS (Internet Infomation Service)

หา IIS ได้จากไหน ?
IIS เป็น Add-Ons ที่สามารถใช้งานได้ฟรีซึ่งมากับ Windows NT,XP,2000,2003,VISTA,200X )

Install IIS (Internet Infomation Service)
http://www.thaicreate.com/asp/install-iis.html


สำหรับการติดตั้งเรียนรู้ได้จากข้อถัดไป

ASP คืออะไร ??

ASP คืออะไร ??
เอเอสพี (ASP ย่อมาจาก Active Server Page) เป็นเทคโนโลยีประเภท Server-Side Script (โปรแกรมที่ทำงานบนเครื่อง Server) ที่นิยมใช้อย่างแพร่หลาย สำหรับ ASP ใช้รูปแบบคำสั่ง Visual Basic หรือ VBScript เป็นพื้นฐานสำคัญ ซึ่งสร้างโดยบริษัท ไมโครซอฟท์ สำหรับระบบปฏิบัติการ ไมโครซอฟท์ วินโดวส์ ซึ่งใช้ร่วมกับโปรแกรม Internet Infomation Service หรือ IIS. ASP นั้นใช้ภาษาสคริปต์ VBScript, JScript หรือ PerlScript ในการเขียน โดยเว็บเพจที่ใช้ ASP เขียน จะระบุเป็นตระกูลไฟล์ที่ลงท้ายด้วย .asp ซึ่ง ASP ยังสามารถใช้เขียนเพื่อควบคุมฐานข้อมูลต่างๆ ผ่าน ODBC ADO DAO JET และอื่นๆ


ASP Logo


ปัจจุบันนี้ไมโครซอฟท์ได้ยกเลิกการพัฒนาเทคโนโลยี ASP แล้วและได้เปลี่ยนเป็น ASP.NET แทน. ซึ่งคำว่า Classic ASP นั้นอาจใช้เรียกแทนเอเอสพีเดิม


ASP (Active Server Page) เป็นเทคโนโลยีที่ทำงานทางฝั่งด้านเซิร์ฟเวอร์ ที่ถูกออกแบบมาให้ง่ายต่อการพัฒนาแอปพลิเคชันผ่านเว็บเซิร์ฟเวอร์สำหรับนัก พัฒนาเว็บไซต์ การใช้งาน ASP สามารถกระทำได้โดยเขียนคำสั่งหรือสคริปต์ต่างๆ ในรูปของเท็กซ์ไฟล์ธรรมดาทั่วๆไป แล้วนำมาเก็บไว้ที่เซิร์ฟเวอร์ เมื่อมีการเรียกใช้งานจากเบราว์เซอร์ ไฟล์เอกสาร ASP ก็จะถูกแปลโดย Server Interpreter แล้วส่งผลที่ได้ส่งกลับไปเป็นภาษา HTML ให้เบราว์เซอร์ที่เรียกดังกล่าว เนื่องจาก ASP สามารถรองรับได้หลายภาษา เช่น VBScript ,Jscript ,Perl และภาษาสคริปต์อื่นๆ ดังนั้นนักพัฒนาเว็บไซต์จึงไม่มีความจำเป็นต้องมีความรู้หรือต้องศึกษาในทุก ภาษาเนื่องจาก ASP ได้ถูกออกแบบมาให้ขึ้นกับความรู้ของนักพัฒนาเว็บไซต์นั่นเอง การทำงานของโปรแกรม ASP นั้นจะทำงานอยู่ที่ฝั่งของ Server เท่านั้น เราจึงเรียกว่าเป็นการทำงานแบบ Server Side ซึ่งจากการทำงานทางฝั่ง Server ของ ASP นั้น ทำให้ Web Browser ของฝั่ง Client จะทำหน้าที่เพียงรับผลลัพธ์ที่ได้จากการทำงานทางฝั่ง Server เท่านั้น โดยอ้าย


Install PWS (Personal Web Server)




Install IIS (Internet Infomation Service)


Reference : http://th.wikipedia.org/wiki/เอเอสพี

อินพุต เอาต์พุต พื้นฐาน

ในการเขียนโปรแกรมนั้น สิ่งที่สำคัญคือการที่โปรแกรมสามารถติดต่อกับผู้ใช้ ซึ่งจะมีในสองลักษณะคือ Input คือการรับข้อมูลมาจากผู้ใช้ และนำมาประมวลผลในโปรแกรม และ Output คือการส่งข้อมูลกลับและแสดงผลให้กับผู้ใช้ สำหรับบทเรียน Java นี้ เราจะพูดเกี่ยวกับการรับค่าข้อมูลจากคีย์บอร์ดและแสดงผลออกทางหน้าจอของ คอมพิวเตอร์เท่านั้น อย่างไรก็ตามมันสามารถมีได้หลายวิธี

การแสดงผลด้วยเมธอด System.out.println() และ System.out.print()

การแสดงผลข้อมูลที่ง่ายที่สุดในการเขียนโปรแกรมภาษา Java คุณสามารถใช้เมธอด System.out.println() และเมธอด System.out.print() เพื่อแสดงข้อความ ตัวเลข และค่าอื่นได้ สิ่งที่แตกต่างกันของมันคือเมธอด System.out.println() จะขึ้นบรรทัดใหม่ด้วย คุณได้เห็นการใช้งานมาก่อนหน้านี้แล้ว มาดูตัวอย่างเพิ่มเติม
public class Output {
    public static void main (String[] atgs) {        
        
        System.out.print("MateoCode");
        System.out.println(" Tutorials");
        
        int number = 10;
        System.out.println("Number is " + number);
        
        float f = 43.12f;
        System.out.println("Floating number is " + f);
        
        boolean a = true;
        System.out.println(a);
    }
}
ใน โปรแกรมเป็นการแสดงผลโดยการใช้เมธอดทั้งสองในการแสดงข้อมูลประเภทต่างๆ คุณจะเห็นว่าหลังจากแสดงคำว่า "MateoCode" โปรแกรมไม่ขึ้นบรรทัดใหม่เพราะว่าการทำงานของเมธอด System.out.print() นั่นเอง ซึ่งจะได้ผลลัพธ์ดังนี้
MateoCode Tutorials
Number is 10
Floating number is 43.12
true

Escape Characters

ใน ภาษา Java นั้นตัวอักษรบางตัวนั้นไม่สามารถใช้เพื่อแสดงผลในรูแบบปกติได้ เพราะมันได้ถูกนำไปใช้สำหรับรูปแบบในภาษา หรือไม่เหมาะสมที่จะนำมาใช้โดยตรง จึงได้มีการกำหนดสัญลักษณ์ที่เรียกว่า Escape Sequence ขึ้นมาทดแทน เพื่อให้มันนำมาใช้ได้

ตาราง Escape Characters ในภาษา Java

Escape Sequence NameSymbol
\tTab[Tab]
\bBackspace [Backspace ]
\nNewline [Newline]
\rCarriage [Enter]
\fFormfeed [Formfeed ]
\'Single quote'
\"Double quote"
\\Bbackslash \
ในตารางข้างบน เราก็สามารถนำมาใช้ร่วมกันกับเมธอดในการแสดงผลได้เช่นกัน เช่น \n ใช้สำหรับขึ้นบรรทัดใหม่ หรือ \t สำหรับ Tab มาดูตัวอย่างการใช้งาน
public class EscapeCharacters {
     public static void main (String[] atgs) {   
        // using newline (\n)
        System.out.print("Today, I went to a beach.\n");
        System.out.print("I see a lot of people in this\nweekend.");
        System.out.print("\n");
        // using tab (\t)
        System.out.println("MateoCode\ttutorials");
        System.out.println("is the best\ttutorial.");
    }
}
จากตัวอย่างเป็นการใช้ Escape Characters ในภาษา Java สังเกตุในโค้ดที่มีตัวหนา ซึ่งมันจะทำให้ได้ผลลัพธ์ดังนี้
Today, I went to a beach.
I see a lot of people in this
weekend.
MateoCode tutorials
is the best tutorial.
ตอน นี้เราสามารถแสดงบรรทัดใหม่ได้ด้วย Newline (\n) คุณจะเห็นว่ามันค่อนข้างยากในการใช้งาน ดังนั้นเมธอด System.out.println() จึงช่วยให้คุณไม่ต้องใส่ \n ทุกครั้งนั่นเอง และจัดรูปแบบการแสดงผลให้ตรงกันด้วย Tab (\t)

การรับค่าจากคีย์บอร์ดด้วย Scanner class

หลังจากที่ได้เรียนรู้การแสดงผลแล้ว ต่อไปเป็นการรับข้อมูลจากผู้ใช้ผ่านทางคีย์บอร์ดของคอมพิวเตอร์ โดยในภาษา Java นั้นมีคลาส Scanner ที่ช่วยอำนวยความสะดวกในเรื่องนี้ มาดูตัวอย่างการใช้งาน
import java.util.Scanner;

public class GettingInput {
    public static void main (String[] atgs) {   
        
        Scanner sn = new Scanner(System.in);
        
        String name;  
        int number;
        
        System.out.println("\tGreeting program");
        
        System.out.print("Enter your name: ");
        name = sn.next();
        
        System.out.print("Enter your favorite number: ");
        number = sn.nextInt();
        
        System.out.print("Hello " + name);
        System.out.println(", your favorite number is " + number);
        
    }
}
จาก ตัวอย่างด้านบน เป็นโปรแกรมทักทาย โดยจะให้ผู้ใช้กรอกชื่อและเลขจำนวนเต็มที่ชอบ และโปรแกรมจะแสดงข้อความทักทายแล้วบอกว่าเลขที่คุณชอบคือเลขอะไร เราเริ่มต้นสร้างออบเจ็คจากคลาส Scanner ด้วยคำสั่ง
Scanner sn = new Scanner(System.in);
โดยการใส่อากิวเมนต์ System.in สำหรับการรับค่าจากคีย์บอร์ด และในการใช้คลาสนี้ คุณจะต้องทำการ import package library ของภาษา Java เข้ามายังโปรแกรม โดยการใช้คำสั่ง import ทำการนำเข้า package มายังโปรแกรม
import java.util.Scanner;
ต่อไปเราใช้เมธอด next() ด้วยคำสั่ง sn.next(); ในการอ่านค่าชื่อเข้ามายังตัวแปร name และอ่านค่าตัวเลขด้วยคำสั่ง sn.nextInt();มาเก็บไว้ในตัวแปร number ในการรับค่านั้นเมื่อกดปุ่ม Return จะเป็นการสิ้นสุดการรับค่าของคำสั่งนั้น และค่าที่รับเข้ามาควรถูกต้องในรูปแบบของเมธอดที่เรียกใช้
Note: sn.nextLine() ที่คุณเห็นนั้นคือการโปรแกรมแบบออบเจ็คที่คุณจะได้เรียนในภายหลังของบทเรียน นี้ ในตอนนี้แค่เข้าใจว่ามันคือวิธีในการรับข้อมูล ไม่ต้องกังวลเกี่ยวกับเรื่องนี้ถ้าคุณยังไม่เข้าใจในตอนนี้
และหลังจากโปรแกรมรัน จะได้ผลลัพธ์ดังนี้ โดยผลลัพธ์นั้นจะรวมข้อมูลที่ผู้ใช้กรอกด้วย ซึ่งจะเป็นตัวหน้า
 Greeting program
Enter your name: Marcus
Enter your favorite number: 16
Hello Marcus, your favorite number is 16
ยังมีเมธอดต่างๆ อีกในคลาส Scanner ที่คุณสามารถใช้ได้ เช่น เมธอด nextFloat() รับค่าตัวเลขทศนิยม หรือเมธอด nextLine() รับค่า String ทีละบรรทัด คุณสามารถดูได้โดยการใช้ Auto Suggestion ใน IDE ที่คุณใช้ โดยการพิมพ์ sn. แล้วจะมีเมธอดและ property ต่างแสดงขึ้นมาให้คุณเลือกใช้พร้อมคำอธิบายการใช้งานคุณใช้เคล็ดลับนี้ได้กับทุกบทในบทเรียนนี้
ใน บทนี้ คุณได้เรียนรู้วิธีการแสดงผลบนหน้าจอคอมพิวเตอร์ และการรับข้อมูลจากผู้ใช้จากคีย์บอร์ดมาเก็บไว้ในตัวแปร เพื่อนำไปใช้ในโปรแกรมต่อไป

ตัวดำเนินการ

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา Java และการใช้งานตัวดำเนินการ ในภาษา Java มีตัวดำเนินการประเภทต่างๆ ดังนี้

String concatenating operator (+)

String concatenating operator หรือเครื่องหมายในการเชื่อมต่อ String นั้นจะใช้สำหรับต่อ String เป็น String เดียวกัน ตัวแปรแบบ String นั้นเป็นคลาสที่สร้างมาเพื่อสนับสนุนการเขียนโปรแกรมในภาษา Java เพื่อให้ง่ายขึ้น โดยเราใช้เครื่องหมาย + เมื่อใช้กับ String นั่นหมายถึงเป็นการนำมาต่อกันซึ่งเกิดจาก Overloading Operators คุณจะได้เรียนในภายหลัง ซึ่งโดยปกติเครื่องหมายนี้จะใช้กับตัวเลขเพื่อบวกเลขเข้าด้วยกัน
เมื่อ คุณนำ String ไปต่อกับตัวเลขโดยใช้เครื่องหมาย concatenating จะให้ตัวเลขนั้นกลายเป็น String คุณได้เห็นว่าเราได้ใช้งานมันไปบ้างแล้วจากบทเรียนก่อนหน้า ต่อไปมาดูตัวอย่างการใช้เครื่องหมาย String concatenating
public class StringConcatenating {
    public static void main (String[] atgs) {
        String firstName = "Mateo";
        String lastName = "Marcus";  
        int number = 34;
        
        System.out.println(firstName + lastName);
        System.out.println(firstName + " " + lastName);
        System.out.println(firstName + number);
        System.out.println(lastName + true);
    }
}
ใน ตัวอย่างเราได้ทำการนำตัวแปร String มาต่อกันและ String ต่อกับตัวเลข และค่าของ Boolean มันสามารถต่อได้กับข้อมูลทุกประเภทและข้อมูลเหล่านั้นจะถูกแปลงเป็น String ซึ่งจะได้ผลลัพธ์การรันดังข้างล่าง
MateoMarcus
Mateo Marcus
Mateo34
Marcustrue

Assignment operator

Assignment operator (ตัวดำเนินการกำหนดค่า) เป็นตัวดำเนินการที่ให้กับหนดค่าให้กับตัวแปร จาก Literal หรือ Expression โดยใช้เครื่องหมายเท่ากับ (=) ตัวอย่างการใช้งานตัวดำเนินการกำหนดค่าเป็นดังนี้
int a = 10;
float b = 5.3f;
String name = "Marcus";
Random r = new Random();
MyClass object1 = new MyClass();
จาก ตัวอย่าง เป็นการใช้ตัวดำเนินการกำหนดค่า ในการกำหนดค่าให้กับตัวแปรประเภทต่างๆ ตัวแปรที่คุณเห็นสองแบบแรกเป็น primitive data type ในภาษา Java ส่วน String และ Random เป็นคลาสไลบรารี่ที่มีอยู่ในภาษา Java เราสามารถใช้งานได้เลย สำหรับอันสุดท้ายเป็นคลาสที่ผู้ใช้สร้างขึ้นเอง ซึ่งมันอยู่ในเรื่องการเขียนโปรแกรมแบบออบเจ็คที่คุณจะได้เรียนต่อไปในบทนี้

Arithmetic operators

Arithmetic operators (ตัวดำเนินการทางคณิตศาสตร์) เป็นตัวนำเนินการที่เกิดจาก Operand และ Operator ตั้งแต่ 1 ตัวขึ้นไปมาคำนวณเพื่อให้ได้ผลลัพธ์ใหม่ มันทำงานร่วมกับตัวดำเนินการกำหนดค่า (=) โดยตัวดำเนินการมี 5 แบบ

ตารางของตัวดำเนินการทางคณิตศาสตร์ในภาษา Java

SymbolNameExample
+Additionc = a + b
-Subtractionc = a - b
*Multiplicationc = a * b
/Divisionc = a / b
%Moduloc = a % b
คุณอาจจะเห็นบางอย่างใหม่ก็คือ ตัวดำเนินการ Modulo (%) เป็นตัวดำเนินการในการหารเอาเศษ (reminder) ที่มันจำเป็นมากๆ ในการเขียนโปรแกรมคอมพิวเตอร์ ต่อไปดูตัวอย่างการใช้ตัวดำเนินการทางคณิตศาสตร์
public class ArithmeticOperator {
    public static void main (String[] atgs) {
        int a = 5;
        int b = 3;
        
        System.out.println(a + " + " + b + " = " + (a + b));
        System.out.println(a + " - " + b + " = " + (a - b));
        System.out.println(a + " * " + b + " = " + (a * b));
        System.out.println(a + " / " + b + " = " + (a / b));
        System.out.println(a + " % " + b + " = " + (a % b));
    }
}
คุณ จะเห็นว่ามันก็คือ การ บวก ลบ คูณ หาร เท่านั้นเอง ในคอมพิวเตอร์นั้นก็มีการคำนวณเช่นเดียวกัน และผลลัพธ์ของมันตรงไปตรงมาดังข้างล่าง
5 + 3 = 8
5 - 3 = 2
5 * 3 = 15
5 / 3 = 1
5 % 3 = 2

Compound assignment

Compound assignment ถูกใช้เพื่ออัพเดทค่าของตัวแปรจากค่าเดิมของมันที่มีอยู่ โดยมันจะเป็นรูปแบบย่อของตัวดำเนินการแบบ Arithmetic Operator และตัวดำเนินการ Bitwise operators เพื่อให้เขียนได้รวดเร็วและลดความผิดพลาดในการเขียนโปรแกรมได้มากกว่า

ตารางของตัวดำเนินการ Compound assignment ในภาษา Java

OperatorExampleEquivalent to
+=a += 2;a = a + 2
-=a -= 2;a = a - 2
*=a *= 2;a = a * 2
/=a /= 2;a= a / 2
%=a %= 2;a = a % 2
>>=a >>= 2;a = a >> 2
<<=a <<= 2a = a << 2
&=a & = 2;a = a & 2
^=a ^= 2;a= a ^ 2
|=a |= 2;a = a | 2

Increment and decrement

ตัว ดำเนินการต่อไปที่ใช้บ่อยในการเขียนโปรแกรมก็คือ Increment Operator (ตัวดำเนินการเพิ่มค่า) และ Decrement Operator (ตัวดำเนินการลดค่า) มันถูกใช้เพื่อเพิ่มหรือลดค่าของตัวแปรครั้งละ 1 โดยแบ่งออกได้เป็นดังนี้

ตารางของตัวดำเนินการเพิ่มค่าและลดค่าในภาษา Java

OperatorExampleEquivalent to
++ (prefix)++a;a = a + 1;
++ (posfix)a++;a = a + 1;
-- (prefix)--a;a = a - 1;
-- (postfix)a--;a = a - 1;
ตัว ดำเนินการทั้งสองแบบนั้นจะแบ่งย่อยลงไปอีกเป็น prefix และ postfix ตัวดำเนินการที่เป็นแบบ prefix จะทำการเพิ่มค่าของตัวแปรขึ้นทันทีก่อนที่จะประมวลผลคำสั่งนั้น ส่วนตัวดำเนินการแบบ posfix จะเพิ่มค่าหลังจากที่ประมวลผลคำสั่งนั้นเสร็จสิ้นแล้ว ก็คือคำสั่งที่จบด้วยเครื่องหมาย ; มาดูตัวอย่างที่จะช่วยให้คุณเข้าใจได้ง่ายขึ้น
public class IncrementDecrement {
    public static void main (String[] atgs) {
        int i = 5;
        int j = 5;
        System.out.println("++i = " + (++i));
        System.out.println("j++ = " + (j++));
        // At this line either i and j are 6
    }
}
จากโค้ดตัวอย่างข้างบน เป็นการใช้ตัวดำเนินการเพิ่มและลดค่า เราได้กำหนดค่าให้กับตัวแปร i และ j มีค่าเท่ากัน และแสดงผลออกทางหน้าจอ ++i นั้นจะเพิ่มค่าก่อนที่แสดงผล ส่วน j++ นั้นจะเพิ่มค่าหลังจากที่แสดงผลค่าเสร็จแล้ว จึงทำให้ผลลัพธ์ของ i ที่แสดงออกมาเป็น 6 และ j เป็น 5 ดังผลการทำงานข้างล่าง
++i = 6
j++ = 5

Relational and comparison operators

Relational and comparison operators (ตัวดำเนินการเปรียบเทียบ) ใช้สำหรับเปรียบเทียบข้อมูล โดยการสร้าง expression ขึ้นมา ค่าที่ได้จากการเปรียบเทียบจากตัวดำเนินการเหล่านี้จะเป็น Boolean Value (true or false) มันมักจะใช้กับคำสั่งเปรียบเทียบเช่น if while do-while for เพื่อสร้างเงื่อไขบางอย่าง

ตารางของตัวดำเนินการเปรียบเทียบในภาษา Java

OperaterExampleResult
==a == btrue if a equal to b, otherwise false
!=a != btrue if a not equal to b, otherwise false
<a < btrue if a less than b, otherwise false
>a > btrue if a greater than b, otherwise false
<=a <= btrue if a less than or equal to b, otherwise false
>=a >= btrue if a greater than or equal to b, otherwise false
ต่อไปมาดูตัวอย่างการใช้งานของตัวดำเนินการเปรียบเทียบ
public class ComparisonOperators {
    public static void main (String[] atgs) {
        int a = 5;
        int b = 8;
        
        System.out.println(a + " equal to " + b  + " -> " + (a == b));
        System.out.println(a + " not equal to " + b  + " -> " + (a != b));
        System.out.println(a + " less than " + b  + " -> " + (a < b));
        System.out.println(a + " more than " + b  + " -> " + (a > b));
        System.out.println(a + " less than or equal " + b  + " -> " + (a <= b));
        System.out.println(a + " more than or equal " + b  + " -> " + (a >= b));
    }
}
ข้างบนเป็นการกำหนดค่าให้กับตัวแปน a เป็น 5 และ เป็น 8 และนำมาเปรียบเทียบกันด้วยตัวดำเนินการแบบต่าง ๆ จะได้ผลลัพธ์ดังข้างล่าง
5 equal to 8 -> false
5 not equal to 8 -> true
5 less than 8 -> true
5 more than 8 -> false
5 less than or equal 8 -> true
5 more than or equal 8 -> false

Logical operators

Logical operators (ตัวดำเนินการตรรกศาสตร์) เป็นตัวดำเนินการที่ใช้สำหรับ expression ที่มากกว่า 1 expression ขึ้นไป โดยตัวดำเนินการตรรกศาสตร์ในภาษา Java มีดังนี้
OperatorNameExample
!Not! true
&&Andtrue && true
||Ortrue || false
โดย ตัวดำเนินการตรรกศาสตร์จะใช้เปรียบเทียบกับค่าสองค่า ยกเว้นตัวดำเนินการ Not ค่าที่นำมาเป็นประเมินนั้นจะต้องเป็น Boolean และผลลัพธ์ที่ได้จะเป็น Boolean เช่นกัน

ตารางค่าความจริงของตัวดำเนินการตรรกศาสตร์ Not

Value 1ExpressionResult
true! truefalse
false!falsetrue
ตัวดำเนินการทางตรรกศาสตร์ Not จะกลับค่าจาก true เป็น false และในทางกลับกัน

ตารางค่าความจริงของตัวดำเนินการตรรกศาสตร์ And

Value 1Value 2ExpressionResult
truetruetrue && true true
truefalsetrue && falsefalse
falsefalsefalse && falsefalse
ตัวดำเนินการทางตรรกศาสตร์ And ถ้า expression ย่อยทั้งสองเป็น true จะได้ผลลัพธ์เป็น true นอกเหนือจากนั้นจะได้ผลัพธ์เป็น false

ตารางค่าความจริงของตัวดำเนินการตรรกศาสตร์ Or

Value 1Value 2ExpressionResult
truetruetrue || true true
truefalsetrue || falsetrue
falsefalsefalse || falsefalse
ตัว ดำเนินการทางตรรกศาสตร์ Or ถ้า expression ย่อยอย่างน้อยหนึ่งตัวเป็น true จะได้ผลลัพธ์เป็น true นอกเหนือจากนั้นจะได้ผลัพธ์เป็น false
ต่อไปมาดูตัวอย่างการใช่ตัวดำเนอนการตรรกศาสตร์ในการเขียนโปรแกรม เรามักจะใช้กับคำสั่งตรวจสอบเงื่อนไข เช่น if
public class LogicalOperators {
    public static void main (String[] atgs) {
        
        int score = 8;
        int level = 4;
        
        if (score >= 10 && level >= 5) {
            System.out.println("You get a gold badge.");
        }
        
        if (score >= 10 || level >= 3) {
            System.out.println("You get a bronze badge.");
        }
    }
}
จาก ตัวอย่างโปรแกรมด้านบน มีตัวแปรเก็บคำแนนและเลเวล โดยใช้คำสั่ง if ในการเปรียบเทียบ คุณจะได้เรียนในบทต่อไป ถ้าคะแนนของเขาตั้งแต่ 10 และเลเวลตั้งแต่ 5 ขึ้นไปเขาจะได้รับ Gold badge และถ้าคะแนนของเราตั้งแต่ 10 หรือมีเลเวลตั้งแต่ 3 เขาจะได้รับ Bronze badge ดังนั้นเมื่อรันโปรแกรมเขาจึงได้รับแค่ Bronze badge
You get a bronze badge.

Bitwise operators

Bitwise operators (ตัวดำเนินการระดับบิต) จะดำเนินการกับในรูปแบบของหนึ่งบิตหรือมากกว่า หรือในตัวเลขฐานสอง โดยการนำคู่ของบิตแต่ละตัวมาคำนวณโดยการใช้หลักการของตัวดำเนินการทาง คณิตศาสตร์

ตารางตัวดำเนินการระดับบิต

SymbolDescription
&Bitwise AND
|Bitwise inclusive OR
^Bitwise exclusive OR
~bit inversion
<<Shift bits left
>>Shift bits right
ต่อไปมาดูตัวอย่างของตัวดำเนินการระดับบิตแบบต่างๆ ในการเขียนโปรแกรม
public class BitwiseOperators {
    public static void main (String[] atgs) {
        int a = 5;
        int b = 3;
        
        System.out.println(a + " & " + b + " = " + (a & b));
        System.out.println(a + " | " + b + " = " + (a | b));   
        System.out.println("~" + a + " = " + (~a));    
        System.out.println(a + " << 1 = " + (a << 1));
    }
}
จาก ตัวอย่างด้านบน เราได้ใช้ตัวดำเนินการบิต 4 ชนิด โดยทำกับตัวแปร Integer ซึ่งมีขนาด 8 บิต ดังนั้นการทำงานของโปรแกรมแสดงได้ดังตารางนี้
base 10base 2ResultResult base 10
5 & 300000101 & 00000011000000011
5 | 300000101 | 00000011000000017
~5~0000010111111010-6
5 << 100000101 << 10000101010
และ จะได้ผลลัพธ์ต่อไปนี้เมื่อรันโปรแกรม ในตัวอย่างนี้นั้นคุณจะต้องรู้จักเกี่ยวกับเลขฐานเพื่อที่จะเข้าใจมัน ซึ่งอยู่นอกขอบเขตของบทเรียน Java นี้
5 & 3 = 1
5 | 3 = 7
~5 = -6
5 << 1 = 10

Conditional ternary operator

Conditional ternary operator เป็นตัวดำเนินการเปรียบเทียบเงือนไขแบบสั้น ที่ประเมิน expression และให้ผลลัพธ์เป็นค่าหนึ่ง ถ้า expression เป็น true และอีกค่าถ้า expression เป็น false โดยมันมีรูปแบบการใช้งานดังนี้
expression ? valueForTrue : valueForFalse ;
โดย การทำงานของมันนั้นสามารถทำหน้าที่ได้คล้ายคำสั่ง if ถ้าเงื่อนไขและการทำงานไม่ซับซ้อน และมีแค่คำสั่งเดียวที่จะให้ทำงาน โดยมีตัวอย่างการใช้งานดังนี้
public class TernaryOperator {
    public static void main (String[] atgs) {        
        int n = -2;
        String name = "Mateo";
        System.out.println(n < 0 ? "n is a negative number." : "n is a positive number.");
        System.out.println(name.length() <= 5 ? "Your name is accepted." : "Your name is too long." );
    }
}
และมันจะได้ผลลัพธ์ดังข้างล่าง
n is a negative number.
Your name is accepted.
ใน บทนี้ คุณได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา Java อย่างละเอียด ซึ่งมันมีความจำเป็นที่จะในไปใช้ในการเขียนโปรแกรมในบทที่เหลือต่อไป ในบทต่อไปเราจะทำการเขียนโปรแกรมกับตัวอย่างที่จำลองโปรแกรมจริง โดยการรับข้อมูลจากผู้ใช้ทางคีย์บอร์ด

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...