下节课将要学习SQL语言的分类,老师叫我们事先自己写一份预习报告。到时叫学生请讲台上讲课,并会评比哦。下面的是我的预习报告,请大家帮我看看还有什么要补充的。 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/scottConnected.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.
◎ 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/scottConnected.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.
MERGE
表合并
MERGE INTO tab1 USING tab2 ON condition WHEN MATCH THEN ... WHEN NOT MATCH then..
ddl:
TRUNCATE
TRUNCATE TABLE tab1
删除表tab1中的数据(只删除数据,不删除表结构)。
RENAME
RENAME xxx TO yyy
ALTER TABLE xxx RENAME TO yyy
更改名称
COMMENT
COMMENT ON TABLE tab1 IS '***';
COMMENT ON COLUMN tab1.col1 IS '**';
给表或表中字段加注释 其实除了dml,ddl,dcl还有tcl--Transaction Control .
常用的有
COMMIT 提交
SAVEPOINT 设置回滚段
ROLLBACK 回滚