欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL学习总结之SQL的分类介绍

程序员文章站 2023-02-28 21:45:52
一、sql语言的分类:sql语言大体可分为ddl、dcl和dml三类。其中,ddl又包含create,alter和drop; dcl包含grant和revoke,而dml中最常见的有select,i...

一、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.