#oracle 数据库特征
##与MySQL的区别
oracle是大型数据库,MySql是中小型数据库。oracle支持大并发,大访问量,是OLTP最好的工具oracle数据库安装完成后占用空间打,和其他机器性能操作上的区别 主键 Mysql一般使用自动增长类型,在创建表时只要指定表的主键是atuo increment类型。插入记录时,不需要在制定该记录的主键值,Mysql 将自动增长;Oracle 没有自动增长类型,插入记录时将序列号的下一个赋给字段即可;只是ORM框架只要是native主键生成策略就可以。单引号处理 Oracle里只能用单引号包起字符串。在插入和修改字符串前必须使用单引号替换:把所有出现的一个单引号替换成两个单引号。翻页的sql语句处理 Oracle处理翻页:每个结果集只有一个ROWNUM字段标明位置,并且只能用ROWNUM<100,不能使用ROWNUM>80长字符串处理 INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串则需要使用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做非空和长度判断,不能为空的字段值和超出长度字段的值都应该给出警告,返回上次操作。空字符串处理 ORACLE数据库的非空字段不允许有空内容。如果为null或者为空字符,则需要把它改成一个空格的字符串。字符串的模糊比较 ORACLE里也可以用字段名 like ‘%字符串%’但这种方法不能使用索引,速度不快。Oracle 实现了ANSII SQL中大部分功能。在建表时复制
CREATE TABLE table_new AS SELECT column1,…|* FROM table_old
例:
create table userinfo_new as select * from userinfo; desc userinfor; select * from userinfo;
creat table userinfo_new1 as select id,username form userinfo;
再添加数据的时候复制
INSERT INTO table_new [(column1,…)] SELECT column1,…|*FROM table_old
例:
insert into userinfo_new select * from userinfo; select id from userinfo_new; insert into userinfor_new(id, username) select id,username from userinfo;
select id,username from userinfo_new;
UPDATE语句
UPDATE table_name SET column1=value1,…[WHERE conditions]
如果最后不加WHERE语句,那么就意味着本次要修改该行的所有字段
无条件更新
例:
update userinfo set userpwd=‘111111’; select userpwd fromuserinfo; update userinfo set userpwd = ‘111’, email = ‘111@126.com’; select userpwd,email form userinfo;
有条件更新
例:
select username from userinfo; update userinfo set userpwd=‘123456’ where username=‘xxx’; select username,userpwd from userinfo;
###删除数据
DELETE语句
DELETE FROM table_name [WHERE conditions]
无条件删除 例:
create table testdel as select * from userinfo; delet from testdel; select * from testdel;
有条件的删除、 例:
select username from userinfo; delete from userinfo where username=‘yyy’; select username from userinfo;
###约束
约束的作用
非空约束
主键约束
外键约束
唯一约束
检查约束
CREAT TABLE table_name(column_name datatype NOT NULL,…);
例: > create table userinfo_1(id number(6,0), username varchar2(20) not null, userpwd varchar2(20) not null); > desc userinfo_1; > insert into userinfo_1 (id) values(1);
在修改表时添加非空约束ALTER TABLE table_name MODIFY column_name datatype NOT NULL;