1.Oracle 与 MySQL的区别:
1.Oracle是没有数据库的概念而Mysql是中小型数据库,
2.Oracle支持大并发,大访问量,是OLTP最好的工具。
3. Oracle 没有自动增长类型,
4. 单引号的处理上; mysql 字符串可以用双引号,Oracle 只能用单引号包起字符串,在插入和修改字符串前必须做单引号的替换,把所有出现的单引号替换成双引号,
5. 在字符串的处理上有差别,具体查度娘;
6.模糊查询:MYSQL里用 字段名 like '%字符串%',ORACLE里也可以用 字段名 like '%字符串%' 但这种方法不能使用索引, 速度不快。
7.
- 分页查询:
这个应该是两者最明显的区别了,很多人都知道MySql中分页很简单,因为他有专门的关键字limit来实现分页查询;但是Oracle里面没有这种关键字来实现分页查询的,所以它实现起来就比MySql要繁琐得多了,在每个结果集中只有一个rownum字段标明它的位置,并且只能用rownum<=某个数,不能用rownum>=某个数,因为ROWNUM是伪列,在使用时所以需要为ROWNUM取一个别名,变成逻辑列,然后来操作。
二,
主键:
1. 语句创建主键;
a. 单个 主键;———— 格式: alter table 表名 add constraint 约束名 paimary key (字段名);
例:
//*创建主键*/
alter table student add constraint pk_student primary key(sno);
b. 多个主键: -----格式: alter table 表名 add constraint 约束名 paimary key (字段名,字段名);
例2.:
/*创建多个主键*/
alter table student add constraint pk_student primary key(sno, sclass);
删除主键:———— 格式: alter table 表名 drop constraint 约束名:
例3:
/* 删除主键*/
alter table student drop constraint pk_student;
约束:
1. 建表时创建检查约束:check
例:
CREATE TABLE BOOKINFO
(
BOOKID NUMBER,
BOOKNAME VARCHAR2(20),
PUBDATE VARCHAR2(20),
PRICE NUMBER(6,3),
STORE VARCHAR2(1),
CONSTRAINT CK_PRICE CHECK(PRICE>=10 AND PRICE <= 100)
);
2.在现有的表中添加检查约束:格式:alter table 表名 add constraint 约束名 check(约束字段名 范围 and 约束字段名范围)
例:
alter table BOOKINFO add CONSTRAINT CK_PRICE CHECK(PRICE>=10 AND PRICE <= 100)
3.非空约束:
1..创建表时直接创建非空约束:————》;直接在要非空的字段 的后面加上: Not null;
2.. 在表中添加非空约束:
例:
alter table BOOKINFO add CONSTRAINT CK_PRICE CHECK(BOOKID IS NOT NULL)
4.唯一约束:
unique 唯一约束,值不能重复(空值除外);
电话不重复
create table person(
pid number primary key,
name varchar2(20),
tel varchar2(20) unique
);
insert into person(pid,name,tel) values(1,'zhangsan','1234567890');--成功插入
insert into person(pid,name,tel) values(2,'lisi','1234567890');--电话重复,操作失败