-
--删除唯一约束
--1.禁用启用唯一约束
DISABLE|ENABLE CONSTRAINT 唯一约束名字;
--Z示例
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='XCX_USERINFO_U2'; --查询数据字典
ALTER TABLE xcx_userinfo_u2 DISABLE CONSTRAINT un_username_new ;-- 禁用约束
--2.删除唯一约束
DROP CONSTRAINT 唯一约束名字; --语法
ALTER TABLE xcx_userinfo_u2 DROP CONSTRAINT un_username_new ;-- 删除约束
查看全部 -
--在修改表时添加唯一约束
ADD CONSTRAINT 外键约束名字 UNIQUE (字段名); --语法
--示例
--创建一个表
CREATE TABLE xcx_userinfo_u2
(id varchar2(10) primary key,username varchar2(20));
--修改表添加 唯一约束
ALTER TABLE xcx_userinfo_u2 ADD CONSTRAINT un_username_new UNIQUE (username) ;
查看全部 -
--唯一约束
--作用:保证字段值的唯一性
--唯一约束和主键约束的区别:主键必须是非空,唯一约束可以有一个空置,主键在一个表只能有一个,而唯一约束可以有多个
--在创建表时设置唯一约束
-- 1.在列级设置
CREATE TABLE table_name (column_name datatype UNIQUE,...) --语法
-- UNIQUE 在字段后面加上 unique 就可以了
CREATE TABLE xcx_userinfo_u(
id varchar2(10) primary key ,
username varchar2(20) unique,
userpwd varchar2(20) unique
);
--2.在表级设置唯一约束
CONSTRAINT constraint_name UNIQUE (column_name);--语法
--constraint_name 约束名字
--column_name 字段名
--示例
CREATE TABLE XCX_userinfo_u1(
id varchar2(10) primary key ,
username varchar2(20) ,
userpwd varchar2(20),
CONSTRAINT un_username UNIQUE (username,userpwd)
);
查看全部 -
--删除外键约束
-- 1.禁用外键约束,禁用后,以后还可以恢复
DISABLE|ENABLE CONSTRAINT constraint_name --语法
--constraint_name 外键约束名字
--不知道外键名字了,可以查看,数据字段 ,user_constraints;
select * from user_constraints where table_name='XCX_USERINFO';
--示例_禁用
ALTER TABLE xcx_userinfo DISABLE CONSTRAINT PK_TYPID_ALTER;
--2.删除外键约束
DROP CONSTRAINT constraint_name;--语法
-- constraint_name 外键约束名字
--示例,删除外键
ALTER TABLE xcx_userinfo DROP CONSTRAINT PK_TYPID_ALTER;
查看全部 -
--在修改表时添加外键约束
ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES
table_name (column_name)[ON DELETE CASCADE]
--constraint_name 外键名
--table_name 主表
--创建一个表
CREATE TABLE xcx_userinfo(
id varchar2(10) primary key,
username varchar2(20),
typeid_new varchar2(10)
);
--添加外键
alter table xcx_userinfo ADD CONSTRAINT pk_typid_alter FOREIGN KEY (typeid_new)
REFERENCES typeinnfo(typeid);
查看全部 -
--在创建表时,定义完所有字段,设置外键约束
-- CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES table_name(column_name)[ON DELETE CASCADE]; 语法
--constraint_name 外键名字
-- FOREIGN KEY(column_name) ,column_name 这个是从表的字段
--table_name(column_name) 主表的名字和字段名
--[ON DELETE CASCADE] 级联删除,主表的哪一行数据删除,从表的使用了主表的那一行数据,也会被删除
--示例
CREATE TABLE xcx_info (
id varchar2(10) primary key,
username varchar2(20),
type_new varchar2(10),
CONSTRAINT fk_type_new FOREIGN KEY (type_new) REFERENCES typeinnfo (typeid) ON DELETE CASCADE
);
查看全部 -
--在创建表时设置外键约束
-- CREATE TABLE table1 (column_name datatype REFERENCES table2(column_name),...) 语法
--table1 是从表
--REFERENCES 在要设置外键的字段,后面加上 REFERENCES
--table2 表是主表,要引用的那个表的字段,设置外键约束时,主表的字段必须是主键
-- 主从表中相应的字段必须是同一个数据类型,从表中的外键字段的值必须来自主表中的相应字段的值,或者为null值
CREATE TABLE typeinnfo
(typeid varchar2(10) primary key,
typename varchar2(20));
CREATE TABLE typeinnfo_f
(id varchar2(10) primary key,
usernmae varchar2(20),
typeid_new varchar2(10) references typeinnfo(typeid)
);
INSERT INTO typeinnfo values(1,1);
INSERT INTO typeinnfo_f (id,typeid_new) values(1,1);
INSERT INTO typeinnfo_f (id,typeid_new) values(2,null);
查看全部 -
Decode函数的使用:
decode与case...when类似
decode(字段名,值,结果,....,默认值)
decode(col_name,value1,result1,value2,result2,...,[defaulvalue]) ;
例如: select username,decode(username,'aaa','计算机部门','bbb','市场部门','其他') as 部门 from users;
查看全部 -
对查询结果排序:
语法:SELECT [DISTINCT] column_name1,...|* FROM table_name [WHERE ...] ORDER BY column_name1 DESC/ASC,...
其中,DESC是降序排序,ASC是升序排序,默认情况下是升序排序
eg: username按降序拍排列,salary按升序排列
select * from users order by username desc,salary asc;
查看全部 -
范围查询:
1、BETWEEN...AND...:查询的是一个闭合区间的结果,包含头也包含尾。
如查找工资在800到2000的(包括了800和2000):
select * from users where salary between 800 and 2000;
如果想要不在800和2000这两个数之间,就可以这样写:
select * from users where salary not between 800 and 2000;
2、IN()/NOT IN():查看结果值是否包含在in括号内
select * from users where username in('aaa','bbb');
select * from users where username not in('aaa','bbb');
查看全部 -
模糊查询:LIKE
1、通配符(_,%)的使用: 一个_只能代表一个字符,一个%可以代表0到多个任意字符 :
查询以a开头的用户名: select * from users where username like 'a%';
查询第二个字符为a 的用户名:select * from users where username like '_a%';
查询含有字符a的用户名:select * from users where username like '%a%';
查看全部 -
算数运算符:
select id,username,salary+200 from users;(所有工资结果加200)
注: 在查询语句中,使用算术运算法对字段进行运算(+200),并不影响真正表中的数据,只有update可以; 不等于用 != 或 <>表示
比较运算符:
select username from users where salary>800;
逻辑运算符:
select username from users where salary>800 or salary<>1801;
查看全部 -
唯一约束:
1、作用:保证设置唯一约束的字段值的唯一性
2、唯一约束与主键约束的区别:
(1)主键约束的字段值必须是非空的,而唯一约束允许有一个空值(null)
(2)主键在每张表中只能有一个,而唯一约束在每张表中可以有多个
3、在创建表时设置唯一约束(列级)
语法:CREATE TABLE table_name(column_name datatype UNIQUE,...);
4、在创建表时设置唯一约束(表级)
语法:CREATE TABLE table_name( column_name datatype,...,) CONSTRAINT constraint_name UNIQUE(column_name));
注:(1)唯一约束的名称(constraint_name)必须唯一;
(2)如果想设置多个唯一约束字段,需要将子句(CONSTRAINT u_name UNIQUE(column_name))重复书写即可,唯一约束的名称唯一
查看全部 -
外键约束: (表示主从表之间的关系)
1、在创建表时设置外键约束(列级):
语法:CREATE TABLE table1(column_name datatype REFERENCES table2(column_name),...); --其中table2为主表,table1为从表
注:(1)设置外键约束时,主表字段必须为该表的主键字段
(2)主从表中相应的字段必须是同一个数据类型
(3)从表中外键字段的值必须来自主表中相应字段的值,或者为null值
eg:
主表: create table typeinfo (typeid varchar2(10) primary key,typename varchar2(20));
从表: create table userinfo_f (id varchar2(10) primary key,username varchar2(20),typeid_new varchar(10) references typeinfo(typeid));
查看全部 -
varchar是标准sql里的,varchar2是oracle所提供的独有的数据类型,前者对于汉字占两个字节,对于数字和英文字符占一个字节,占的内存小,后者一般情况下把所有字符都占两个字节处理
查看全部
举报