序列
序列要学怎么创建序列,需要注意什么,提问:怎么应用序列
含义:序列是ORACLE提供的一组能够自动递增或递减的序号,常用来生成主键自增
语法:CREATE SEQUENCE 序列名 –创建序列名START WITH N1 –初始值N1INCREMENT BY N2 –增长幅度N2MINVALUE N3 –最小值N3 NOMINVALUEMAXVALUE N4 –最大值N4 NOMAXVALUECACHE N5 –缓存N5 NOCACHECYCLE; –循环 NOCYCLE
12345678910create sequence seq_class37 st ...
约束
约束
一个字段可以有多个约束(前提不冲突)
什么是约束?
给表增加规则和条件(限制)。
约束的作用:
可以让表更加符合实际要求。因为约束具有不符合条件的数据不予录入的特点。
约束的分类:
列级约束(六种):主键(PRIMARY KEY),外键(FOREIGN KEY),唯一(UNIQUE),检查(CHECK),非空(/空值)(NOT NULL/NULL) ,默认(DEFAULT)
表级约束(四种):主键(PRIMARY KEY),外键(FOREIGN KEY),唯一(UNIQUE),检查(CHECK)
(主键=非空+唯一)
列级约束和表级约束的区别:
当一个约束只约束一个列时,他是列级约束;
当一个约束同时约束多个列时,他是表级约束;
一、非空约束 (NOT NULL/NULL)1.可以在创建表的时候创建非空约束语法:CREATE TABLE 表名 (字段1 数据类型 NULL,字段2 数据类型 NOT NULL,…)–限制可以为空值写不写NULL影响不大
1234CREATE TABLE EMP3(EMPNO NUMBER ...
简单查询
简单查询
1234SELECT * FROM EMP;* 号不能直接与字段连用, 若需要连用需要写全 如:emp.*单行注释 --单行注释多行注释 /* 多行注释 */
数据为数值时:右顶格显示数据为字符时:左顶格显示
别名:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849给字段起别名select 字段 AS "别名" from 表名;--as 可以省略,别名含有数字,特殊符号时,需要用双引号括起来。select empno "员工编号",ename 员工姓名 from emp;--别名只对当此查询有效。别名是临时的修改字段名,不会永久存在。select * from emp;select empno "***",ename "¥¥¥" from emp;给表起别名 注意:表别名没有Aselect 字段 from emp "员工信息表";select ...
天马行空
天马行空
本文收录所有零碎想法,也许不切实际,也许很魔幻…
一、万能MarkDown⭐Typora + Jupyter
简介:
特点
实现
1.实时渲染
2.自定义样式
3.代码样式支持
4.实时运行SQL
二、可视化解析代码2.1 可视化生成LINUX语句1.简化学习linux命令的成本
2.命令翻译
3.快速生成命令
2.2 可视化生成PLSQL语句实现可能:
1.参考拖拽编程block
2.程序员鱼皮json转sql
三、共享API共享API –> 服务器负载提升 –> 负载均衡
理念:
1.所有需要使用此api的用户,都有将此api共享的义务(即在用户服务器上对外共享此api)
注意点:
1.需要统一管理用户开放的api
2.避免用户使用恶意代码
四、小白玩转互联网要求:需要从老年人的角度开发,针对老年用户开发
功能点:
一键下载/删除软件
快速打开应用
简化操作步骤(如:网购,快递)
五、Markdown导航页示例:https://nav.sankki.com/
使用markdown语法快速生成导航页
六、语音自动写 ...
补充知识
on与where的区别1.在内连接即inner join中==没有区别==,
2.在使用left jion时,on和where条件的区别如下:1、on条件是==在生成临时表时使用的条件==,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是==在临时表生成好后,再对临时表进行过滤的条件==。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
ROWNUM1.只能从1开始
删除表内重复数据PLSQL中的字符串1.在使用execute immediate时1v_sql := 'select * from emp where ename='||''''||v_ename||'''';
此时需要额外添加单引号,因为这是字符串类型(执行时需要有引号)。
2.在使用select语句时1select * into v ...
命名规范
一、表名和列表规范
必须以字母开头
长度不能超过30字符
不能使用oracle的保留字
只能使用如下字符 A-Z,a-z,0-9,$,#等
二、数据类型1.char
定长 最大2000个字符
例子:char(10) ‘小明’ 前四个字符存放’小明’,后面添加6个空格补全,虽然浪费空间,但是查询速度极快.
2.varchar2(20) 变长
最大4000个字符.
例子:varchar2(20) ‘小明’ oracle分配四个字符.这样可以节省空间.
3.clob(character large object)
字符型大对象 最大4G
4.number(数字类型)
范围-10的38次方到10的38次方 可以表示整数,也可以表示小数.
例子:number(5,2) 表示一个小时有5位有效数,2为小数 范围 -999.99999.99 number(5) 表示一个五位整数 范围-9999999999
5.date(日期类型)
包含年月日和时分秒.
6.timestamp(日期类型)
...
DML语句
Oracle中的语句一、 DQL 语句DQL(Data Query Language)语句:数据查询语言,主要是对数据进行查询操作。常用关键字有 SELECT、FROM、WHERE 等。
二、 DDL 语句DDL(Data Definition Language)语句: 数据定义语言,主要是进行定义/改变表的结构、数据类型、表之间的链接等操作。常用的语句关键字有 CREATE、DROP、ALTER 等。
三、 DML 语句DML(Data Manipulation Language)语句: 数据操纵语言,主要是对数据进行增加、删除、修改操作。常用的语句关键字有 INSERT、DELETE、 UPDATE 等。
四、 DCL 语句DCL(Data Control Language)语句: 数据控制语言,主要是用来设置/更改数据库用户权限。常用关键字有 GRANT、REVOKE 等。
DML语句 数据操纵语言一.INSERT 插入1.插入整行数据12INSERT INTO 表名 VALUES(值1,值2,值...);SELECT * FROM AAA;
插入字符型数据 ...
伪列
伪列排序,100 100 100 100 100 99 99 98 1 1 1 1 1 6/2 6/2 8/3 1 2 3 4 5 6 7 8
伪列有两个东西:ROWID ROWNUM
什么是伪列:–隐藏起来的列
ROWID:身份识别码,在数据库中为数据生成的独一无二的身份识别码;ROWNUM:生成一列从1开始的升序的序号,并不会收到其他因素的干扰。
1234SELECT EMP.*,ROWID,ROWNUM FROM EMP;SELECT * FROM EMP WHERE ROWID = 'AAAR3sAAEAAAACXAAA';SELECT * FROM EMP WHERE ROWNUM =1;SELECT * FROM EMP WHERE ROWNUM =2;--找不到东西
–伪列必须从1开始
12345SELECT * ...
SQL优化
SQL优化
避免在索引列上使用计算和函数
避免在索引列中发生隐式转换
避免使用OR
避免使用
避免使用LIKE
表连接代替子查询
EXISTS代替IN
用<和>代替<>
能放在WHERE后面的就不要放在HAVING后面
索引失效
1.索引本身失效
2.隐式转换导致索引失效
3.查询的数据量为一个表的大部分数据
4.对小表查询
5.B-TREE索引 IS NULL 不走索引 IS NOT NULL 走索引
PLSQL存储过程
存储过程procedure –简单的说就是专门干一件事一段sql语句。
百度百科上是这样解释的,存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数来调用存储过程。可以由数据库自己去调用,也可以由java程序去调用。
为什么要写存储过程?1.效率高 存储过程编译一次后,就会存到数据库,每次调用时都直接执行。而普通的sql语句我们要保存到其他地方(例如:记事本上), 都要先分析编译才会执行。所以想对而言存储过程效率更高。
2.降低网络流量存储过程编译好会放在数据库,我们在远程调用时,不会传输大量的字符串类型的sql语句。
3.复用性高存储过程往往是针对一个特定的功能编写的,当再需要完成这个特定的功能时,可以再次调用该存储过程。
4.可维护性高当功能要求发生小的变化时,修改之前的存储过程比较容易,花费精力少。
5.安全性高完成某个特定功能的存储过程一般只有特定的用户可以使用,具有使用身份限制,更安全。
1.匿名块:没有名字,运行后不会 ...