Exzilla.net
Contact
Home -> Articles -> How to access Oracle Database Server from SQLPlus
 
Features
Forums
Files
Blogs
Document ID: # Howto-orcl-sql-01 August 5, 2004
Document Title : How to access Oracle Database Server from Sqlplus

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:

 

 



Copyright (c) 2001-2009 - Exzilla.net -  All Rights Reserved.
Contact Us | Privacy Policy | Terms & Conditions