Oracle学习(二)——15天Oracle入门
????????????????????????????????????????????????????????????????????? Oracle入门(二)? SQL部分
??
???
??一: 数据库定义语句:DDL (Data Definition Language )操作:
????? (1):表的建立? 关健词:create table 表名。
?????????? eg:
??????????????? create table student --创建一个学生表
??????????????? (
????????????????????? ID? varchar(36)?? primary key,???
??????????????????????S_NAME varchar2(36) not null,
??????????????????????S_TEL number(8) unique??
?????????????? ?)
???????? 首先我们创建了一个名为student的学生表,他含有ID,?S_NAME ,S_TEL三列.且这三例对应的约束分别为主健:primary key,非空:not null,唯一:unique约束:
?????? 主健约束(PK):该例必须唯一且非空。等同于not null?且 unique;
?????? 非空约束(NT):故名思意;
?????? 唯一约束(UQ):unique为不能包含重复的值
???? 特别提醒 :一行既可以定义unique又可以定义not null,若只定义了unique 而没有定义 not null则该字段可以有多个null值(这一点初学着一定死记)
????
???? (2):表的删除? 关健词 delete / truncate / drop ?table? 表名
???????? 他们的区别在于:
???????? delete table 表名?? ——删除所有行,只删除数据 不删除表的结构;
???????? truncate table 表名 ——实现的功能与delete一样只是truncate删除时要更快且不会触发触发器;
???????? drop? table 表名—— 删除表结构;
?
????? 特别提醒:我们可以把 delete table 表名简写成?delete 表名,但却不能把drop? table 表名 简写成drop? 表名
?
???? (3):用户以及表空间的操作 关健词 create user 用户名/ Drop user 用户名
????????????eg:
???????????????? ?create user li identified by li--创建用户
????????????????? Drop user li? --??删除用户li
???????特别提醒: 删除用户时,如果该用户账号中已经存在一个模式对像,我们可以使用强制删除关健字:CASCADE
??????????? eg:
????????????????? drop user li cascade CASCADE;
?
?二:数据库控制语句:DCL (Data Control Language)操作.
???? ? ?(1):授权 关健字 grant 权限 to? 对像
????????????? ?eg?: grant dba to li;--授权
?????? ?(2):回收权限 关健字 evoke 权限 rom? 对像
????????????? ?eg: revoke dba from li;
?
?
三:数据库操作语句:DML (Data Manipulation Language)
????????(1):插入数据:关健字 insert into 表名(列名列表)values(值列表);
????????????? eg: insert into?student(ID,S_NAME) values('SD0001','张三');
?????????? 如果我们向表中每一列都插值可以省去列名列表
????????????? eg:insert into?student values('SD0001','张三','137******88');
??????? (2):删除数据:关健字 delete table 表名 where
???????????? eg: delete table stedent ——删除全部数据
???????????????????delete table stedent where id = 'SD0001' 删除满足条件的数据,可以是一条或是多条。
??????? (3):修改数据:关健字 update 表名 set 值 where 条件
??????????? eg: update? stedent set S_name = '李四' where id = 'SD0001'?
??????? (4):数据的查询:关健词: select 列名列表?from 表名列表 where where 子句, group by 子句 having 子句
????????????????order by子句
??????????特别注意:
?????????????? Select 可选的distinct? 选择列表 from 表
????????????????? ?? where 子句
??????????????????? ?group by 子句
?????????????????? ? having 子句
??????????????????? ?order by子句
????? ?执行顺序 先where,后group by,然后分组函数,后having子句,最后order by子句
????? ?遵从从左到右从上到下的原则
??????? (写到重要点了,但很晚了,先去洗澡睡觉了,以后有空再补上,不好意思)
????????????????????