一、SQL语言的分类:SQL语言大体可分为DDL、DCL和DML三类。其中,DDL又包含CREATE,ALTER和DROP;
DCL包含GRANT和REVOKE,而DML中最常见的有SELECT,INSERT,UPDATE,和DELETE。
1、 DDL(数据定义语言)
◎ CREATE语句
SQL> CREATE TABLE example_1
2 (col_1 number NOT NULL,col_2 varchar2(20));
Table created.
◎ ALTER 语句
SQL> ALTER TABLE example_1 ADD col_3 char(10);
Table altered.
◎ DROP 语句
SQL> ALTER TABLE example_1 DROP COLUMN col_3;
Table altered.
2、 DCL(数据控制语言)
◎ GRANT(授予权限)
SQL> GRANT SELECT ON student TO scott;
--使scott用户有查询当前用户模式下的student表的权限。
Grant succeeded.
--测试授权是否成功
SQL> conn scott;
Enter password:
Connected.
--查询system用户下student表
SQL> SELECT * FROM system.student;
STUNO STUNAME ST ROLLTIME
---------- -------------------- -- --------------
112 duyubo m 08-8月 -09
110 CJ M 12-8月 -09
◎ REVOKE(收回权限)
SQL> conn system/system;
Connected.
--收回权限
SQL> REVOKE SELECT ON student FROM scott;
Revoke succeeded.
测试权限是否成功收回
SQL> conn scott/scott
Connected.
SQL> SELECT * FROM system.student;
SELECT * FROM system.student
*
--错误:表不存在(因为没有权限)
ERROR at line 1:
ORA-00942: table or view does not exist
3、 DML(数据操纵语言)
◎ SELECT语句(使用最为广泛的语句)
SQL> SELECT * FROM student;
STUNO STUNAME ST ROLLTIME
---------- -------------------- -- --------------
112 duyubo m 08-8月 -09
110 CJ M 12-8月 -09
◎ INSERT(插入数据)
--如果要对表中的每一列数据都进行插入操作,则表后的列项可以省略,如
SQL> INSERT INTO student VALUES(100,'JC','M',SYSDATE);
1 row created.
--但当仅对表中部分列进行插入操作时,必须指明字段名称,而且字段名称应该与values后--的值一一对应。
SQL> INSERT INTO student(stuno,stuname,stusex)
2 VALUES(211,'WNT','M');
1 row created.
◎ UPDAET(更新)
SQL> UPDATE student SET stuname='yinxiong'
2 WHERE stuno=100;
1 row updated.
◎ DELETE (删除内容)
--注意,delete是删除内容的,删除过后表结构不变。二drop是删除表或字段,删除表,则对应的表也就不存在了;同理,删除字段,则对应的字段也就不存在了。
SQL> DELETE FROM student WHERE stuname='yinxiong';
--仅仅删除stuname=‘yinxiong’对应列的内容。
1 row deleted.