ORACLE
– 创建用户
create user 用户名 identified by 密码;
– 赋值权利
grant connect/resource to 【用户名】;
– 回收权利
revoke connect/resource from 【用户名】;
– 删除用户
drop user 【用户名】 cascade;
– ALTER语句总结
1:删除列
ALTER TABLE 【表名字】 DROP 【列名称】
2:增加列
ALTER TABLE 【表名字】 ADD 【列名称】 【类型】
3:修改列的类型信息
ALTER TABLE 【表名字】 CHANGE 【列名称】 BIGINT
4:重命名列
ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT
5:重命名表
ALTER TABLE 【表名字】 RENAME 【表新名字】
6:删除表中主键
Alter TABLE 【表名字】 drop primary key
7:添加主键
ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)
8:添加索引
ALTER TABLE sj_resource_charges add index INDEX_NAME (name);
9: 添加唯一限制条件索引
ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);
10: 删除索引
alter table tablename drop index emp_name;
– 创建表
create table 【表名】(
id int,
name varchar(20),
money float
);
– 查询 (*表示所有的列)
select * from 【表名】;
– 添加
insert into 【表名】(id,name,money) values(1,'jack',2000.2);
insert into 【表名】(id,name,money) values(2,'roce',1000);
– 修改
update 【表名】 set id=2, name='rose', money=1000 where id = 3;
update 【表名】 set name='jack' where money = 1000;
– 删除
delete from 【表名】 where id = 【id】;
delete from 【表名】;
– 手动提交事务
commit;
– 主键自增
create table mytable
(
id int primary key, -- 主键,唯一,不能重复,必填,不能不填写
name varchar(20),
money float
);
-- 使用序列让主键自增
-- 创建序列
create sequence myseq; --从0开始 每次加1
--使用序列
insert into mytable(id,name,money) values(myseq.nextval,'jack',10);
– 外键约束
FOREIGN KEY (ID) REFERENCES 表名 (ID)
/**
外键:
1、需要先创建主表,再创建子表
2、删除表:先删除子表,再删除主表
数据处理:
1、先添加主表数据,再添加子表数据
2、先删除子表数据,再删除主表数据
**/
DROP TABLE STUDENT;
DROP TABLE TEACHER;
-- 子表
CREATE TABLE STUDENT
(
SID INT PRIMARY KEY,
SNAME VARCHAR(20) NOT NULL,
SEX VARCHAR(20) DEFAULT '男' CHECK(SEX='男' or SEX='女') NOT NULL,
TID INT ,
FOREIGN KEY(TID) REFERENCES TEACHER(TID)
);
-- 主表
CREATE TABLE TEACHER
(
TID INT PRIMARY KEY,
TNAME VARCHAR(20) NOT NULL,
MONEY NUMBER(10,2)
);
--序列
CREATE SEQUENCE MYSEQ2;
--录入学生数据
INSERT INTO STUDENT(SID,SNAME,TID) VALUES(MYSEQ2.NEXTVAL,'A',4);
INSERT INTO STUDENT(SID,SNAME,TID) VALUES(MYSEQ2.NEXTVAL,'S1',4);
INSERT INTO STUDENT(SID,SNAME,TID) VALUES(MYSEQ2.NEXTVAL,'S2',4);
INSERT INTO STUDENT(SID,SNAME,TID) VALUES(MYSEQ2.NEXTVAL,'S3',4);
--录入老师数据
INSERT INTO TEACHER(TID,TNAME,MONEY) VALUES(MYSEQ2.NEXTVAL,'T1',1000);
SELECT * FROM STUDENT;
SELECT * FROM TEACHER;
-- 多对多
CREATE TABLE MTM_TEACHER
(
TID INT PRIMARY KEY,
TNAME VARCHAR(20)
);
CREATE TABLE MTM_STUDENT
(
SID INT PRIMARY KEY,
SNAME VARCHAR(20)
);
DROP TABLE T_S;
-- 子表
CREATE TABLE T_S
(
TID INT,
SID INT,
--联合主键
PRIMARY KEY(TID,SID),
FOREIGN KEY(TID) REFERENCES MTM_TEACHER(TID),
FOREIGN KEY(SID) REFERENCES MTM_STUDENT(SID)
);
-- 先录入主表数据
INSERT INTO MTM_STUDENT(SID , SNAME) VALUES(MYSEQ2.NEXTVAL,'亚索');
INSERT INTO MTM_STUDENT(SID , SNAME) VALUES(MYSEQ2.NEXTVAL,'塔姆');
INSERT INTO MTM_STUDENT(SID , SNAME) VALUES(MYSEQ2.NEXTVAL,'娑娜');
INSERT INTO MTM_TEACHER(TID ,TNAME) VALUES(MYSEQ2.NEXTVAL,'后羿');
INSERT INTO MTM_TEACHER(TID ,TNAME) VALUES(MYSEQ2.NEXTVAL,'亚瑟');
INSERT INTO MTM_TEACHER(TID ,TNAME) VALUES(MYSEQ2.NEXTVAL,'安其拉');
SELECT * FROM MTM_STUDENT;
SELECT * FROM MTM_TEACHER;
INSERT INTO T_S(TID,SID) VALUES(17,13);
INSERT INTO T_S(TID,SID) VALUES(17,14);
INSERT INTO T_S(TID,SID) VALUES(17,15);
INSERT INTO T_S(TID,SID) VALUES(18,13);
INSERT INTO T_S(TID,SID) VALUES(18,14);
--外键约束起到作用了
INSERT INTO T_S(TID,SID) VALUES(20,14);
SELECT * FROM T_S;
SELECT * FROM MTM_TEACHER INNER JOIN T_S
ON T_S.TID = MTM_TEACHER.TID
INNER JOIN MTM_STUDENT
ON T_S.SID = MTM_STUDENT.SID
– 虚拟表,仅仅是为了满足ORACLE的语法要求
SELECT 'wangyang' FROM DUAL;
–拼接字符
SELECT CONCAT('WANG','YANG') 拼接字符 FROM DUAL;
SELECT CONCAT(ENAME,JOB) 拼接 FROM EMP;
SELECT * FROM EMP;
– 字符长度
SELECT LENGTH('WANGYANG') FROM DUAL;
SELECT ENAME,LENGTH(ENAME) FROM EMP;
– REPLACE 替换
SELECT REPLACE('WANGYANG','A','Z') FROM DUAL;
SELECT ENAME, REPLACE(ENAME,'A','*') FROM EMP;
– 大小写
SELECT UPPER('wangyang') FROM DUAL;
SELECT LOWER('WANGYANG') FROM DUAL;
– 首字母大写
SELECT INITCAP('wangyang,renxiaodan,zhanglinjia') FROM DUAL;
SELECT INITCAP('wangyang renxiaodan;zhanglinjia') FROM DUAL;
SELECT INITCAP('1,一') FROM DUAL;
– 基础查询语句
SELECT * FROM 【表名】;
– 查看特定的列
SELECT EMPNO , ENAME, JOB , MGR , HIREDATE, SAL , COMM ,DEPTNO FROM EMP;
– 给表起别名,给列起别名
SELECT E.EMPNO AS 员工编号,
E.ENAME AS 员工姓名,
E.JOB 职位,
E.MGR 上级领导,
E.HIREDATE 入职时间,
E