sql语句相关操作

create user test identified by test
default tablespace users
temporary tablespace temp
quota 3M on users;

grant connect,resource to test with admin option;

conn test/test

show user;
alter user test identified by test1;//修改用户口令

grant create any view to scott;
revoke create any view from scott;

grant select,update on dept to public;//授予实体权限
revoke update on dept from public; //回收实体权限

create role app_user identified by hello; //创建角色
grant create view to app_user;  //授予创建视图权限
grant app_user to test; //角色授予用户,这些用户都具有这个角色的权限

create user WangMing identified by WangMing
default tablespace userwang
temporary tablespace tempwang
quota 3M on userwang;

create user LiYong identified by LiYong
default tablespace userli
temporary tablespace templi
quota 3M on userli;

CREATE USER WangMing IDENTIFIED BY WangMing
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 3M ON users;

CREATE USER LIYONG IDENTIFIED BY LIYONG
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 3M ON users;

GRANT CONNECT,RESOURCE to WangMing WITH ADMIN OPTION;
GRANT CONNECT,RESOURCE to LIYONG WITH ADMIN OPTION;

CREATE TABLE Mydept
(
   DNO VARCHAR2(10),
   DNAME VARCHAR2(10),
   MANAGER VARCHAR2(10),
   LOC VARCHAR2(10),
   PHONE VARCHAR(10),
   CONSTRAINT PK_Mydept PRIMARY KEY (DNO)
);

CREATE TABLE Myemp
(
   ENO VARCHAR2(10),
   ENAME VARCHAR2(10),
   AGE NUMBER(10),
   JOB VARCHAR2(10),
   SAL NUMBER(10),
   DNO VARCHAR2(10),
   CONSTRAINT PK_Myemp PRIMARY KEY (ENO),
   CONSTRAINT FK_Myemp_To_Mydept FOREIGN KEY (DNO) REFERENCES Mydept (DNO)
);
INSERT INTO Mydept VALUES(‘1‘,‘SALES‘,‘ZHAOSI‘,‘WuHan‘,‘12345678‘);
INSERT INTO Myemp VALUES(‘2‘,‘LIYONG‘,26,‘SALESMAN‘,3400,‘1‘);
INSERT INTO Myemp VALUES(‘4‘,‘SCOTT‘,24,‘SALESMAN‘,3400,‘1‘);
INSERT INTO Myemp VALUES(‘1‘,‘WANGMING‘,24,‘SALESMAN‘,3400,‘1‘);    

INSERT INTO scott.Mydept VALUES(‘2‘,‘OFFICE‘,‘ZHANGHENG‘,‘BeiJing‘,‘33334567‘);

GRANT select(MAX(SAL)) ON Myemp TO ZHANGXIN;

CREATE TABLE Employee
(
   ENO VARCHAR2(10),
   ENAME VARCHAR2(10),
   BIRTH VARCHAR(15),
   JOB VARCHAR2(10),
   SAL VARCHAR2(10),
   DNO VARCHAR2(10),
   STATE VARCHAR2(10),
   PRIMARY KEY(ENO),
   FOREIGN KEY(DNO) REFERENCE TO Department(DNO)
);
CREATE TABLE Department
(
   DNO VARCHAR2(10),
   DNAME VARCHAR2(10),
   MAGNO VARCHAAR2(10),
   LOC VARCHAR2(10),
   PHONE VARCHAR2(12),
   PRIMARY KEY(DNO)
);

CREATE TABLE Teacher
(
   Eno NUMERIC(4),
   Sal NUMERIC(7,2),
   PJob char(10),
   CONSTRAINT PK_Teacher PRIMARY KEY(Eno) VALIDATE
);

CREATE OR REPLACE TRIGGER Insert_Or_Update_Sal
BEFORE INSERT OR UPDATE ON Teacher
FOR EACH ROW
WHEN((NEW.PJob=‘教授‘) AND (new.Sal<4000))
BEGIN
   select 4000 into:new.Sal from dual;
END;
/

INSERT INTO Teacher VALUES(‘1‘,‘3400‘,‘教授‘);
INSERT INTO Teacher VALUES(‘2‘,‘4500‘,‘教授‘);
INSERT INTO Teacher VALUES(‘3‘,‘4500‘,‘教授‘);

CREATE TABLE Sal_log
(
   Eno NUMERIC(4),
   Sal NUMERIC(7,2),
   Username char(80),
   DDate TIMESTAMP,
   CONSTRAINT PK_Sal_log PRIMARY KEY(Eno)
);

CREATE OR REPLACE TRIGGER Insert_Sal
AFTER INSERT ON Teacher
FOR EACH ROW
BEGIN
  INSERT INTO Sal_log VALUES(:new.Eno,:new.Sal,user,sysdate);
END;
/

CREATE TABLE Department
(
   No NUMBER(12),
   Name CHAR(40),
   PRIMARY KEY(No)
);

CREATE TABLE Students
(
   No NUMBER(12),
   Name CHAR(8),
   Sex INTEGER DEFAULT 0,
   Birthday DATE,
   Class CHAR(40),
   DeptNo NUMBER(12),
   PRIMARY KEY(No),
   FOREIGN KEY(DeptNo) REFERENCES Department(No)
);

CREATE TABLE Course
(
   No NUMBER(12),
   Name CHAR(8),
   Credit FLOAT,
   PRIMARY KEY(No)
);

CREATE TABLE SC
(
   CNo NUMBER(12),
   SNo NUMBER(12),
   Grade FLOAT,
   PRIMARY KEY(CNo,SNo),
   FOREIGN KEY(CNo) REFERENCES Course(No),
   FOREIGN KEY(SNo) REFERENCES Students(No)
);

CREATE TABLE SC_U
(
   CNo NUMBER(12),
   SNo NUMBER(12),
   Oldgrade FLOAT,
   Newgrade FLOAT
);

CREATE OR REPLACE TRIGGER SC_T
AFTER UPDATE OF Grade ON SC
FOR EACH ROW
WHEN (NEW.Grade>=1.1*OLD.Grade)
BEGIN
  INSERT INTO SC_U(SNo,CNo,OldGrade,NewGrade)
        VALUES(:OLD.SNo, :OLD.CNo, :OLD.Grade, :NEW.Grade);
END;
/

CREATE TABLE StudentInsertLog
(
   InsertDate DATE,
   InsertNumber NUMBER(12),
   Operator CHAR(20)
);

CREATE OR REPLACE TRIGGER Student_Count
AFTER INSERT ON Students
DECLARE
   ICount NUMBER(12);
   temp NUMBER(12);
BEGIN
   SELECT COUNT(*) INTO temp FROM StudentInsertLog;
   SELECT COUNT(*) INTO ICount FROM Students;
   IF(temp<>0) THEN
   SELECT InsertNumber INTO temp FROM StudentInsertLog
      WHERE InsertDate = (SELECT MAX(InsertDate) FROM StudentInsertLog);
END IF;
INSERT INTO StudentInsertLog (InsertDate, InsertNumber, Operator)
   VALUES(SYSDATE, ICount-temp,user);
END;
/

时间: 2024-10-22 13:27:07

sql语句相关操作的相关文章

巧用C# Split()函数获取SQL语句中操作字段

这是前天工作时要求的,将SQL语句的操作字段获取出来挂在树节点上,感觉这个函数以后还有可能会用到,特此总结一下,函数中没有实现Select *的操作,只要添加判断条件即可. 工具函数:Split()函数:通过字符分割字符串为一个string类型的一维数组. String.Split 方法有6个重载函数: 1) public string[] Split(params char[] separator)        返回的字符串数组包含此实例中的子字符串 2) public string[] S

MySQL与SQL语句的操作

MySQL与SQL语句的操作 Mysql比较轻量化,企业用的是Oracle,基本的是熟悉对数据库,数据表,字段,记录的更新与修改 1. mysql基本信息 特殊数据库:information_schema,performance_schema 特殊的数据表:包含着数据库的信息与设置 2. MySQL基本操作 连接:mysql -u username -h [ip] -p [password] 增加用户: 新增mysql用户:如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 u

使用Phoenix通过sql语句更新操作hbase数据

hbase 提供很方便的shell脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句转换成 hbase的原生API呢? 这样就可以通过普通平常的 sql 来对hbase 进行数据的管理,使用成本大大降低.Apache Phoenix 组件就完成了这种需求,官方注解为 “Phoenix - we put the SQL back in NoSql”,通过官方说明,Phoenix 的性能很高,相

EF Core中执行Sql语句查询操作之FromSql,ExecuteSqlCommand,SqlQuery

一.目前EF Core的版本为V2.1 相比较EF Core v1.0 目前已经增加了不少功能. EF Core除了常用的增删改模型操作,Sql语句在不少项目中是不能避免的. 在EF Core中上下文,可以返货DbConnection ,执行sql语句.这是最底层的操作方式,代码写起来还是挺多的. 初次之外 EF Core中还支持 FromSql,ExecuteSqlCommand 连个方法,用于更方便的执行Sql语句. 另外,目前版本的EF Core 不支持SqlQuery,但是我们可以自己扩

MyBatis中SQL语句相关内容

MyBatis模糊查询 使用 ${...} 代替 #{...} SELECT * FROM tableName WHERE name LIKE '%${text}%'; 在MyBatis中写SQL语句时不等于用 <> 代替 <> 多个条件中的模糊查询 SELECT * FROM 表名 WHERE (字段1 <> "" 字段2 <> "") and (字段3 LIKE '%参数%' OR 字段4 LIKE '%参数%')

SQL语句表操作

创建表create table student(    id int not null auto_increment primary key comment '这是主键',    sno varchar(10) comment '这是姓名',    sex int default 1 comment '这是性别 1代表男 0代表女',    brithday date);数据类型: int date datetime  timestemp  varchar(20)查看表结构desc studen

SQL语句 - 数据操作

表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化.因此如果查询语句不需要索引,就应该删除无用的索引以提高效率. 一.INSERT语句 1.基本插入语句 insert用于向表中输入数据,其具体的语法结构如下: INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 整个语法结构如下: INSERT [TOP (<expres

mybatis中sql语句查询操作

动态sql where if where可以自动处理第一个and. <!-- 根据id查询用户信息 --> <!-- public User findUserById(int id); --> <select id="findUserById" parameterType="user" resultType="user"> select * from user <!-- 当有if条件成立时,where会自

oracle中一些sql语句 编写操作

-- 修改系统当前日期格式ALTER SESSION SET nls_date_format = "YYYY-MM-DD HH:MI:SS"; ------------------------------------------------------------------------------------------------------ 截取一个字段     SUBSTR(字段,开始下标,截取长度)SELECT EMP.ENAME "雇员原名称", SUB