加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

笔记_DDL+DCL+oracle边用边记

发布时间:2020-12-12 15:44:02 所属栏目:百科 来源:网络整理
导读:有道云笔记 连接: http://note.youdao.com/noteshare?id=cc7ca02d8310ed408055db7bcfc4344b --------------------------------------------------------------------------------------------------------------------------------------------------------

有道云笔记 连接:

http://note.youdao.com/noteshare?id=cc7ca02d8310ed408055db7bcfc4344b


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以下可忽略:



总体解释:
SQL语言(结构化查询语言)的组成部分包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
DML(data manipulation language):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DDL(data definition language):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL(Data Control Language):是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL




1.安装注意的点: a.OracleXE11,XE指ExpessEdition(精简版); b.安装过程中的DBA密码; c.安装后,看看windows服务里oracle相关的服务是否启动; d.8080端口是Oracle默认的http端口,会与tomcat端口冲突。解决方法是,DBA登陆,运行: BEGIN
dbms_xdb.sethttpport('8088');
END;
/
2.列出当前用户下所有表名 SELECT table_name FROM user_tables;
3.查询所有用户
 
  
 
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !

4.SQL大小写规范 a.SQL的书写规范是个广义的、经验性的、约定俗成的东西,在此基础上,每个公司都会有相关的文档。 它包括:命名规范、大小写规范、注释规范、换行规范、缩进规范等等。绝壁是个蛋疼却显水准的地方,尤其当你重构前人设计的数据库时;如果自己规范总变,几个月后再看自己写的表名都不认得了。 b.最合理的SQL大小写规则:关键字(语法)大写,表名、字段名小写 这样的好处是,阅读起来很规整。 c.Oracle对用户名、表名、字段名都大小写不敏感(除非建表时加引号),并且解析和存储都按大写 e.最不可取的大小写方案:首字母大写。
5.PL/SQL美化器文件
6.oracle默认角色 一般创建新用户的过程: conn system/xxx; create user scott identified by xxx; grant connect to scott; Oracle常用的默认角色有三个:connect(连接,创建会话),resource(资源,创建表等),dba(管理员)。
7.sql*plus显示结果的宽度、数目。
a.查看目前的pagesize,默认是14:
showpagesize;
pagesize设置好100,则可以一次显示够多行记录了:
setpagesize100;
b.设置行的宽度
查看目前的linesize,默认是80:
showlinesize;
设置成100或者更宽都可以:
setlinesize100;






【DDL】:
>[ ALTER TABLE——列] 注意,针对COLUMN操作(ADD、MODIFY)时,sql*plus和标准sql有出入。 1.增加列(ADD),修改列类型(MODIFY) 例子:往emp表增加列test_num,NUMBER(2)类型。 将test_num列的类型改为NUMBER(3)。 这两条DDL语句须按sql*plus的写法,没有COLUMN关键字,列名和类型可括号也可不加。
2.删除列(DROP COLUMN) 不同于增加列和修改列类型,删除列DROP后有COLUMN关键字。
3.列重命名(RENAME COLUMNxxTOxx) 3点注意区别 a.RENAME后有COLUMN,跟DROP COLUMN一样符合标准SQL语法;区分于ADD和MODIFY。 b.区分于MODIFY,modify虽有“修改”之意,但是MODIFY修改的是列的数据类型和非空,列名称的修改是RENAME COLUMN xx TO xx。 c.区分于下面讲的表名重命名RENAME TO xx。
4.表名重命名(RENAME TOxx)

ALTER TABLE——约束]
Oracle约束CONSTRAINT是我们经常使用的一种数据库规则对象。constraint在数据库中的作用就是从静态角度对数据完整性进行维护。 补充的是,CONSTRAINT有3个属性deferrable、deferred、validated,平时不太用;比如deferrable deferred联合使用可以控制在commit之前约束数据完整的约束都不起作用,只有commit后才报错。总之记住,CONSTRAINT是否启用、何时启用可以手动控制。 补充2:删除表时,该表的约束、索引也自动被删除。
例子:新建了两个空表t_class和t_stu用于练习约束(主外键,CHECK,UNIQE,NOT NULL). 1.添加主键约束 注意到t_class表是组合主键(cno,sno)。 2.添加外键约束
3.添加CHECK约束
4.添加UNIQUE约束
5.添加NOT NULL约束 跟以上四个约束不同,NOT NULL可以直接对列用ALTER COLUMN MODIFY添加/修改。



Oracle 主键自增: 一个序列+一个、 --序列
CREATE SEQUENCE sq_article_id MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE NOORDER NOCYCLE ; --触发器(插入空,默认自增) CREATE OR REPLACE TRIGGER AUTOINCREMENT_TRIGGER_article _id BEFORE INSERT ON article FOR EACH ROW WHEN (new.id is null) begin select sq_article_id.nextval into: new.id from dual; end; / ALTER TRIGGER AUTOINCREMENT_TRIGGER_article _id ENABLE;
补1:plsql developer查看序列、触发器代码:
补2: 修改序列当前值。 比如当前最大id是13241,但是由于某些原因(删除?)查询当前序列值SELECT xx_sequence.corrval FROM DUAL结果是18111,则希望将当前序列值改回为13241. 方法:删除序列重建,初值为13241。( 唯一方法

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读