| Document
Details :
การใช้
Oracle Database โดยผ่าน SQLPlus
ในการติดต่อกับ
Oracle Database นั้น เราต้องใช้ภาษา SQL ซึ่งก่อนอื่น คุณต้องมี
Database ที่สร้างไว้เรียบร้อยแล้ว และมี User ที่มีสิทธิในการใช้งานก่อน
(ดูรายละเอียดเพิ่มเติม ที่นี่)
ตอนที่เริ่มใช้
SQLPlus ก็ขึ้นอยู่กับว่า SQLPlus นั้น install อยู่บน OS ประเภทอะไร
ถ้าเป็นจำพวก Windows คุณก็จะเห็น Icon ของ SQLPlus แต่ถ้าเป็น
Unix คุณก็สามารถเริ่มโปรแกรม SQLPlus ได้โดยใช้คำสั่ง
| $
sqlplus user/password@connectionstring |
เช่น
| $
sqlplus scott/tiger@fuju |
ก็หมายความว่า
คุณใช้โปรแกรม SQLPlus ในการติดต่อกับ Database โดยใช้ User scott
และ Password tiger และติดต่อ Database โดยผ่าน Connection String
ที่ชื่อว่า fuju (ข้อมูลเพิ่มเติมเกี่ยวกับ Connection String
อ่านได้ที่นี่ค่ะ)
หลังจากที่คุณ
Connect Oracle Database ได้แล้ว ก็จะเจอ prompt ของ SQLPlus ซึ่งในบทความนี้จะเป็นการยกตัวอย่างการสร้าง
Table และการจัดการข้อมูลใน Table เบื้องต้น รวมทั้งการลบ Table
ทิ้งด้วย
เรามาเริ่มสร้าง
Table ที่ไว้เก็บข้อมูลรายชื่อพนักงาน โดยมี Column ดังต่อไปนี้
คือ รหัสพนักงาน, ชื่อ, นามสกุล, เงินเดือน, วันที่เริ่มงาน โดยให้รหัสพนักงานเป็น
Primary Key
| SQL*Plus:
Release 8.0.5.0.0 - Production on Tue Jan 2 15:6:40 2001
(c)
Copyright 1998 Oracle Corporation. All rights reserved.
Connected
to:
Oracle8 Enterprise Edition Release 8.0.5.0.0 - Production
With the Objects option
PL/SQL Release 8.0.5.1.0 - Production
SQL> connect scott/tiger@fuju
Connected.
SQL>
SQL>
Create Table Employees
2 (
3 EmpId varchar2(3),
4 Ename varchar2(30),
5 EsurName varchar2(40),
6 Salary number(10,2),
7 StartDate date,
8 PRIMARY KEY(EmpId)
9 );
Table
created.
SQL> |
จากตัวอย่างข้างบน
เป็นการสร้าง Table ที่ชื่อว่า Employees โดยจะเก็บไว้ใน Schema
scott ซึ่งมี Field ตามที่เราต้องการ
ตอนนี้เราก็มี
Table ไว้ใส่ข้อมูลแล้ว เรามาลองใส่ข้อมูลลงไปใน Table นี้กัน
ซึ่งก็มีวิธีใส่ข้อมูลหลายวิธีด้วยกัน วิธีแรกจะเป็นดังนี้
| SQL>
SQL> insert into employees values(
2 '001','Nariza','Pretty',
3 1000,to_date('01-01-2001','dd-mm-yyyy'));
1 row created.
SQL> |
ในตอนนี้เราก็ได้
Insert ข้อมูลลงใน Table employee และถ้าไม่มีอะไรผิดพลาด เราก็จะได้
Return Message เป็น 1 row created. อย่างด้านบน แต่ถ้าไม่เป็นอย่างที่เห็น
ลองตรวจสอบดูนะคะว่า มีการสะกดชื่อ Table หรือคำสั่งผิดหรือเปล่า
นอกจากวิธีในเบื้องต้นแล้ว
เรายังสามารถใส่ข้อมูลได้โดยวิธีการรับค่า ซึ่งก็จะเหมาะสมในกรณีที่เรามีข้อมูลหลาย
Record ซึ่งจะสามารถทำได้โดยการกำหนดเป็นค่าตัวแปรดังนี้
| SQL>
insert into employees values(
2 '&eid','&ename','&esurname',
3 &salary,to_date('&edate','dd-mm-yyyy'));
Enter value for eid: 002
Enter value for ename: teddy
Enter value for esurname: G
old 2: '&eid','&ename','&esurname',
new 2: '002','teddy','G',
Enter value for salary: 1000
Enter value for edate: 25-12-2000
old 3: &salary,to_date('&edate','dd-mm-yyyy'))
new 3: 1000,to_date('25-12-2000','dd-mm-yyyy'))
1 row created.
SQL> |
วิธีแบบนี้
ก็จะมี Prompt ขึ้นมาถามเราให้ใส่ค่าต่างๆ ที่ตรงกับตัวแปรที่เรากำหนด
และถ้าเราต้องการใส่ข้อมูล Record ต่อมาเพิ่มอีก เราก็เพียงแต่ใส่เครื่องหมาย
/ ก็จะมี Prompt มาถามค่าให้เราใส่ได้เลย โดยที่เราไม่ต้อง Key
คำสั่ง Insert ยาวๆ ใหม่
| SQL>
/
Enter value for eid: 003
Enter value for ename: cupid
Enter value for esurname: N
old 2: '&eid','&ename','&esurname',
new 2: '003','cupid','N',
Enter value for salary: 2000
Enter value for edate: 01-06-2000
old 3: &salary,to_date('&edate','dd-mm-yyyy'))
new 3: 2000,to_date('01-06-2000','dd-mm-yyyy'))
1 row created.
SQL> |
แต่ถ้าเรามีข้อมูลที่จำนวนมากจริงๆ
แนะนำให้เขียนเป็น Script ในการ Insert หรือใช้ Oracle
SQLLoader ซึ่งจะสะดวกกว่า
จากนั้น
เมื่อเราใส่ข้อมูลจนครบแล้ว เราสามารถดูข้อมูลที่เรา Insert ได้โดยใช้
SQL command ดังนี้
| SQL>
select * from employees; |
ซึ่งก็จะได้ผลลัพธ์ดังนี้
| EMP
ENAME ESURNAME SALARY STARTDATE
--- ------------ ---------------- ------ ---------
002 teddy G 1000 25-DEC-00
001 Nariza Pretty 1000 01-JAN-01
003 cupid N 2000 01-JUN-00
SQL> |
และเพื่อเป็นการยืนยันว่า
ข้อมูลที่เรา Insert เป็นข้อมูลที่ถูกต้องแล้ว ให้เราใช้คำสั่ง
commit เป็นการยืนยัน แต่ถ้าต้องการยกเลิกก็ให้ใช้คำสั่ง rollback
| SQL>
commit;
Commit complete.
SQL> |
และจากนี้
เราก็สามารถพัฒนา Program ที่เป็น Client/Server โดยผ่าน ODBC
เข้ามา หรือเขียนเป็นลักษณะที่เป็น Server Side อย่าง ASP, Servlets/JSP
หรือ PHP ก็สามารถทำได้
ในกรณีที่เรามีผู้ใช้งานหลายคน
เราอาจมีความต้องการให้ User คนอื่น สามารถดูข้อมูลเราใน Oracle
Server ได้นั้น เราสามารถทำได้โดย
| SQL>
grant select on employees to nicole;
Grant succeeded.
SQL> |
ซึ่งก็หมายความว่า
user scott นั้น ได้ให้สิทธิในการ select ข้อมูลกับ Table employees
กับ user ที่ชื่อ nicole
และในทางกลับกัน
เราก็ถอดถอนสิทธิได้โดย
| SQL>
revoke select on employees from nicole;
Revoke succeeded.
SQL> |
คำสั่งเพิ่มเติม
ใน
SQLPplus เราสามารถตรวจสอบว่า เรามี Table อะไรอยู่บ้างได้โดย
select ข้อมูลจาก table ที่ชื่อ tab ซึ่งเป็น table เฉพาะ
| SQL>
select * from tab;
TNAME
TABTYPE CLUSTERID
------------------------------ ------- ---------
EMPLOYEES TABLE
LCDEPT TABLE
LCEMP TABLE
3
rows selected. |
และเราสามารถดูว่า ใน Table ที่เราสนใจนั้น มี Column อะไรอยู่บ้างได้โดยใช้คำสั่ง
desc และตามด้วยชื่อ table
| SQL>
desc employees;
Name Null? Type
------------------------------- -------- ----
EMPID NOT NULL VARCHAR2(3)
ENAME VARCHAR2(30)
ESURNAME VARCHAR2(40)
SALARY NUMBER(10,2)
STARTDATE DATE
SQL> |
นอกจากนั้น
เราสามารถตรวจสอบว่า เราใช้งาน user เป็นอะไรอยู่ได้โดย
| SQL>
select username from user_users;
USERNAME
------------------------------
SCOTT |
หรือ
| SQL>
show user
USER is "SCOTT"
SQL> |
และถ้าเราต้องการลบ
Table นั้นทิ้ง ก็สามารถทำได้โดย
| SQL>
drop table employees;
Table dropped.
SQL> |
ข้อมูลเพิ่มเติม
Recommend
Website
Magazine
and Online Learning
e-book
Books
( You can download Oracle books from http://technet.oracle.com)
- Oracle
Concepts, 1999, Oracle Corporation.
- SQL*PLUS
user's Guide and Reference, 1999, Oracle Corporation
- Oracle
SQL*Plus: The Definitive Guide - A good reference for learning
how to use SQL*Plus. http://www.oreilly.com/catalog/orsqplus/
See
Also:
|