尚学堂-马士兵Oracle笔记———吐血整理

尚学堂-马士兵Oracle笔记———吐血整理
尚学堂-马士兵Oracle笔记———吐血整理

第一课:口令

超级管理员:sys/change_on_install 普通管理员:system/manager

普通用户:scott/tiger 大数据用户:sh/sh

1.sys/change_on_install

2.alter user scott account unlock;(解锁)

第二课:SQL语言

Sql语言是在数据库地下进行操作的专门的语言,sql语言本身是一种标准语言,它是一个

国际标准,它定义了套标准SQL1922,SQL1999,SQL在大多数数据库上通用,或许有轻微

的改变

包含四大语句:

1. 查询语句查询语句只有一种就是select语句

2. DML语句DML语句包含Insert,Update,Delete等常用语句

3. DDL语句DDL语句包含Create, Alter,Drop等常用语句

4. 事务控制语句包含Commit,Rollback等常用语句

还有一大类语句:叫DCL语句(Data Control Language),主要用于权限的分配与回收,由于与开发关系不是十分密切,不做重点讲解

Select语句就是从表里把数据选出来

首先熟悉试验中的数据

第一条语句:desc emp; desc 表名; 列出表头== 字段== 列

Varchar2 可变字符串支持国际化NUMBER(7,2) 7位的数字,2位的小数

每行显示的宽度setlinesize 200; 显示的页数setpagesize 30;

第三课:table_structures

1.desc 表名//描述表

2.select * from 表名//查看表数据

第四课:select语句

1.含有别名的sql语句

例子1:select ename, sal*12 annual_sal from emp;

例子2:Select ename, sal*12 “Annual_sal”from emp; 如果想让别名强制大小写混合可以使用双引号

例子3:Select ename, sal*12 “Annual sal”from emp; 如果想让别名中有空格也使用双引号

2.desc dual,select 2*3 from dual,dual是系统自带的一张空表,计算数据时可以使用该表

3.任何含有空值的算术表达式的计算结果是空值

4.select ename||sal from emp; 字符串连接符:||

5.select ename || 'abcdefg' from emp;

6.select ename || 'abcd''efg' from emp;当字符串中含有单引号时,可用两个单引号代表一个单引号

7.set linesize 200;--用于设定每行显示的宽度

8.set pagesize 30;--设置显示的页数

9.select syadate from dual;//显示系统时间

第五课:distinct

1.select distinct deptno from emp; //把deptno值重复的不显示出来

2.select distinct deptno,job from emp; //把deptno,job都重复的都不显示出来;

第六课:where

1.select * from emp where empno = 10; //显示部门编号为10的所有员工的详细信息

2.select * from emp where empno <> 10;//<>是不等于

3.select * from emp where ename = 'KING'; //显示名字为KING的员工的详细信息, 判断字符串是否相等时,字符串要用单引号引起来,单引号中字符串内容是要区分大小写的;比较的按字母顺序

4.select * from emp where comm is (not) null; //为空值的表项查询

5. AND,OR,NOT

1

例1:Select ename, deptno, sal from emp wheredeptno = 10 and sal > 1000; 查询部门标号为10 并且薪水>1000 的员工例2:Select ename, deptno, job from emp where deptno = 10 or job = ‘CLEARK; 查询部门编号为10或者工作岗位为CLERK 的员工

例3:select * from emp where sal (not) between 800 and 1500; //取出薪水位于800和1500(包含800和1500)之间的雇员名字和薪水

6.In语句:用于塞选某一个值

select * from emp where ename (not) in ('smith','philip','jay'); //把名字为SMITH, ALLEN, KING 的雇员取出来Select ename, sal from emp where sal in(800, 1250, 1500, 2000); //把薪水是800,1250,1500,2000 的雇员信息取出来

7.select * from emp where hiredate > '20-2 月1820';//20-2 月1820后的时间, 如果想用自己定义的日期格式,可以使用to_char or to_date函数; Oracle默认的日期格式为:DD-MON-RR

8.模糊查询使用like关键字,和通配符% 表示0个或多个字符,_ 表示1个字符, "?"为0个或1个

select * from emp where ename like '_A%'; // 查询第二字母中含有A 的雇员

select * from emp where ename like '_\%a%'; //系统默认转义符是\,可以自己指定转义符

select * from emp where ename like '_$%a%' escape '$';

第七课:order by 使用order by对数据进行排序

1.select * from dept;

2.select * from dept order by dept desc; //(默认为asc) desc为降序排列,asc为升序

3.select ename, sal, deptno from emp where sal > 2000 order by deptno asc,ename desc;

第八课:sql_function

1.select ename,sal*12 annual_sal from emp where ename not like '_A%' and sal > 1500 order by sal desc;

2.select lower(ename) from emp; // Lower()函数将字符串全部转换成小写,把ename 转换为小写值

3.select ename from emp where lower(ename) like '_a%'; //把ename的值第二个字母为A或a输出

4.select substr(ename,2,3) from emp; //从第二字符截,一共截三个字符。

5.select chr(65) from dual; //求一个与某个ASCII码值对应的字符,结果为A

6.select ascii('a') from dual; //求一个字符的ASCII码值,结果为65

7.round()函数对参数值进行四舍五入的操作

例子1:Select round(23.652)from dual; //对23.652进行四舍五入操作24

例子2:Select round(23.652,2) from dual; //对23.652四舍五入到小数点后2位23.65

例子3:Select round(23.652,-1) from dual; //用负数指定小数点前面几位,对23.652四舍五入到小数点前1位20 *8.to_char() 用于将数字或日期转换成特定的字符串,

To_char()有两个参数:第一个参数:需要进行转换的日期或数字

第二个参数:特定的转换格式,对于数字有一下几个格式可以指定:

9 代表数字,若果该位没有数字则不进行显示,但对于小数点后面的部分仍会强制显示

0 代表一位数字,如果该位没有数字则强制显示0

select to_char(sal,'$99,999.9999') from emp; //to_char函数主要用于对日期和数字格式化$16,000.0000

select to_char(sal,'$0000,000.0000') from emp; //结果$0016,000.0000

select to_char(sal,'L99,999.9999') from emp; 人民币符号,L代表本地符号。

select birthdate from emp;

显示为:BIRTHDATE

---------------------

22-3月-87

改为:select to_char(birthdate,'YYYY-MM-DD HH24:MI:SS') from emp; //24制的没有24为12制的

格式控制符含义

YYYY、YY ----------------------------- 代表4位,2位数字的年份

MM ----------------------------- 用数字表示的月份

MON ----------------------------- 月份的缩写对中文月份来说就是全称

DD ----------------------------- 数字表示的日

DY ----------------------------- 星期的缩写,对中文的星期来说就是全称

HH24、HH12 ---------------------------12小时或者24小时进制下的时间

MI ----------------------------- 分钟数

2

SS ----------------------------- 秒数

*9.to_data函数

将特定的字符串转换成日期格式,这个函数有两个参数:

第一参数:自定义的日期字符串第二参数:指定这个字符串的格式

select ename,birthdate from emp where birthdate > to_date('1987-3-22 12:00:00','YYYY-MM-DD HH24:MI:SS');

//不能直接写birthdate>'1987-2-22 11:22:33'会出现格式不匹配,因为表中格式为DD-MM月-YY,

10. Select * from emp where sal > to_number(‘$1,200.00’,‘$9,999.99’); //求薪水大于1200的员工信息

*11.nvl()函数用来处理空值,这个函数有两个参数:

第一参数:字段名或表达式,如果这个参数值为null,就返回第二参数值,否则返回第一参数值select ename, sal*12+nvl(comm,0) from emp //这样防止comm为空时,sal*12相加也为空的情况

第九课:Group function 组函数

1.select max(sal) from emp; //最大值

2.select min(sal) from emp; //最小值

3.select to_char(avg(sal), '$999,999,999.99') from emp; //平均值

4.select round(sum(sal),2) from emp; //求和

5.select count(*) from emp where sal > 1500; //求记录数

6.select count(comm) from emp; //Count()可以对单独字段使用,得到的是所有非空记录的数量

7.select count(distinct deptno) from emp; //Count()可以和distinct一起使用,得到所有唯一值记录的数量

第十课:Group by语句

1.select avg(sal) from emp group by deptno; //首先将现有数据按照部门进行分组,然后再计算每个组员工的平均薪水

2.select deptno,avg(sal) from emp group by deptno;

3.select deptno,job,max(sal) from emp group by deptno,job; //按照部门,和职位的最大薪水进行分组

4.求薪水值最高的人的名称select ename,max(sal) from emp; //出错,因为max只能有一个值,但是等于max的值可能有好几个,不能匹配。

可以写成select ename from emp where sal=(select max(sal) from emp);

Group by 语句应注意,出现在select中的字段,如果没有出现在组函数中,必须出现在Group by语句中。

第十一课:Having对分组结果筛选

1.where是对单条记录进行筛选,Having是对分组结果进行筛选

select avg(sal),deptno from emp group by deptno having avg(sal) > 2000;

2.查询工资大于2000的雇员,按照部门编号进行分组,分组后平均薪水大于1500,按工资倒序排列

select deptno,avg(sal) from emp where sal > 2000 group by deptno having avg(sal) >1500 order by avg(sal) desc;

///////select-where-group by- having-order by////////

第十二课:子查询

1.select 语句中嵌套select 语句,求哪些人工资在平均工资之上.

select ename,sal from emp where sal > (select avg(sal) from emp);

2.查找每个部门挣钱最多的那个人的名字.

select ename, deptno from emp where sal in (select max(sal) from emp group by deptno) 查询会多值.正确写法是: 应把select max(sal),deptno from emp group by deptno当成一个表,语句如下:

select ename,sal from emp

join (select max(sal) max_sal,deptno from emp group by deptno) t

on (emp.sal = t.max_sal and emp.deptno = t.deptno);

第十三课:self_table_connection 自连接:为同一张表起不同的别名,然后当成两张表来用

select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr = e2.empno; //求这个人的名字和他经理人的名字(自连接)

第十四课:SQL1999_table_connection

1.select ename,dname,grade from emp e,dept d,sqlgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal and job <> 'CLERK';

这种写法没有把过滤条件和连接条件分开来,由于这个原因,sql1999标准推出来了.

3

2.select ename,dname from emp,dept;(旧标准)

select ename,dname from emp cross join dept;(1999标准)

3.select ename,dname from emp,dept where emp.deptno = dept.deptno;(旧)

select ename,dname from emp join dept on (emp.deptno = dept.deptno)

4.select ename,grade from emp e join salgrade s on(s.sal between s.losal and s.hisal);

5.select ename,dname,grade from emp e join dept d on(e.deptno = d.deptno) join salgrade s on (e.sal between s.losal and s.hisal) where ename not like '_A%';

6.select e1.ename,e2.ename from emp e1 join emp e2 on (e1.mgr = e2.deptno);

7.select e1.ename,e2.ename from emp e1 left (outer) join emp e2 on (e1.mgr = e2.empno);

8.select ename,dname from emp e right outer join dept d on (e.deptno = d.deptno);

9.select ename,dname from emp e full join dept d on (e.deptno = d.deptno);

第十六至二十三课:求部门平均薪水等级

1.A.求部门平均薪水的等级

select deptno,avg_sal,grade from (select deptno,avg(sal) avg_sal from emp group by deptno) t join salgrade s on (t.avg_sal between s.losal and s.hisal)

2.求部门平均的薪水等级

select deptno,avg(grade) from (select deptno,ename,grade from emp e join salgrade s on (emp.sal between s.losal and s.hisal)) t group by deptno;

3.哪些人是经理

select ename2 from (select e1.ename ,e1.mgr mgr1,e2.ename ename2 from emp e1 join emp e2 on (e1.mgr = e2.empno)) t join emp on (t.mgr1 = emp.empno)

select ename from emp where empno in (select distinct mgr from emp)

4.不准用组函数,求薪水的最高值

select distinct sal from emp where sal not in( select distinct e1.sal from emp e1 join emp e2 on (e1.sal < e2.sal) )

5.求平均薪水最高的部门编号

select deptno,avg_sal from (

select deptno,avg(sal) avg_sal from dept group by deptno

)

where avg_sal = (

select max(avg_sal) from (

select deptno,avg(sal) avg_sal from dept group by deptno

)

)

select deptno,avg_sal from

(select deptno,avg(sal) avg_sal from dept group by deptno)

where avg_sal =

(select max(avg(sal)) from dept group by deptno)

6.求平均薪水最高的部门名称

select dname from dept where deptno =

(

select deptno from

(select deptno,avg(sal) avg_sal from dept group by deptno)

where avg_sal =

(

select max(avg_sal) from

(select deptno,avg(sal) avg_sal from dept group by deptno)

)

)

7.求平均薪水等级最低的部门的部门名称

错误写法:

select min(avg_grade),deptno from

(

4

select deptno,avg(grade) avg_grade

(

select ename,deptno,grade from emp e join salgrade s on (e.sal between s.losal and s.hisal)

) group by deptno

) group by deptno

正确写法:

select dname,t1.deptno,grade,avg_sal from

(

select deptno,avg_sal,grade from

(select deptno,avg(sal) avg_sal from emp group by deptno) t

join salgrade s on (t.avg_sal between s.losal and s.hisal)

) t1 join dept on (t1.deptno = dept.deptno)

where t1.grade =

(

select min(grade) from

(

select deptno,avg_sal,grade from

(select deptno,avg(sal) avg_sal from emp group by deptno) t

join salgrade s on (t.avg_sal between s.losal and s.hisal)

)

)

8.视图:view就是一张虚表,一个子查询

conn sys/change_on_install as sysdba;

grant create table,create view to scott;

conn scott/tiger;

创建视图

create view v$_dept_avg_sal_info as

select deptno,avg_sal,grade from

(select deptno,avg(sal) avg_sal from emp group by deptno) t

join salgrade s on (t.avg_sal between s.losal and s.hisal)

使用视图后可以简写

select dname,t1.deptno,grade,avg_sal_info from

v$_dept_avg_sal t1 join dept on (t1.deptno = dept.deptno)

where t1.grade =

(

select min(grade) from v$_dept_avg_sal_info

)

9.求比普通员工最高薪水还要高的经理人的名称

先求普通员工的最高薪水

select max(sal) from emp where empno not in

(select distinct mgr from emp where mgr is not null);

select ename from emp where empno in

(select distinct mgr from emp where mgr is not null)

and sal >

(

select max(sal) from emp where empno not in

(select distinct mgr from emp where mgr is not null);

)

第二十四课

备份与恢复--backup scott;exp;import the date;

DOS环境下:exp导出,imp导入

5

--drop user yugang cascade; //删除YUGANG 用户

--cd \

--cd temp

=-delete *.*

--exp

--create user yugang indentified by yugang default tablespace users quota 10M on users //创建用户

--grant create session,create table,create view to yugang //分配权限

--imp the data

第一次输入的用户名密码为:yugang/yugang

第二次输入的用户名密码为:导出数据的用户的用户名和密码

insert into dept valus(50,'fghfgh','gj');//插入数据

--rollback //取消刚才的操作

create table emp2 as select * from emp; //复制emp

第二十五课:rownum

rownum是在Oracle中在表的后面加的一个尾字段,并且只能使用诸如rownum或>=相连接在Oracle里面有一个尾字段叫-->rownum 它是按照1,2,3...进行排列的,它不显示

1.求薪水值最高的前5条记录.

select ename,sal from emp order by sal desc where sal <= 5;

2.求薪水值最高的第6~10条记录.

select ename,sal from

(

select ename,sal,rownum r from

(select ename,sal from emp order by sal desc)

)

where r >=6 and r <= 10;

第二十六课:homework_dml_transaction

SQL面试题

有三张表S、C、SC

S(SNO、SNAME)代表(学号、姓名)

C(CNO、CNAME、CTEACHER)代表(课号、课名、老师)

SC(SNO、CNO、SCGRADE)代表(学号、课号、成绩)

1.求出没选过郭富城老师的所有学生姓名

2.列出2门以上(含2门)不及格的学生姓名及平均成绩

3.既学过1号课程又学过2号课程的所有学生姓名

1.select sname from s join sc on (s.sno = sc.sno) join c on (https://www.360docs.net/doc/0b12158540.html,o = https://www.360docs.net/doc/0b12158540.html,o)

where c.cteacher <> '郭富城';

2.select sname from s where sno in

(

select sno from sc where scgrade < 60 group by sno having count(*) >= 2

)

3.select sname from s where sno in

(

select sno from sc where cno=1 and sno in

(select distinct sno from sc where cno=2)

)

update 更新表中的数据把emp2这张表里,编号为10的,所有人的薪水提1倍

update emp2 set sal = sal*2, ename = ename||'-' where depton = 10//修改数据

delete from dept2 where depton = 10;

四条语句讲完了:背过语法格式

DDL-- 数据定义语言,建表,建视图,建其他一些东西。

1.创建表-- create table

create table t (a varchar2(10));

6

2.删除表drop table

drop table xx;

跳过此阶段,先讲事务控制语句

事务transaction代表一组不可分割的操作,要么全部执行,要么全部不执行,

transaction起始于一条DML语句,结束于commit;语句,或者是DCL、DDL语句,在事务未提交前

可以通过rollback回滚事务,正常退出事务会自动提交,非正常退出事务会自动回滚。

第二十七课:create table

为什么有变长字符串Varchar2还要有定长字符串Char呢? 因为存在效率问题,用Char效率高,但浪费空间,这就是拿空间换时间Hashtable也是拿空间换时,创建一张表,并往里插入一条数据

create table student

(

id number(6),

name varchar2(20),

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4),

email varchar2(50)

);

第二十八~三十课

主键:PRIMARY KEY 叫做:可以唯一标识整条记录的这样的一个东西

从语法上来说主键的约束可以理解为:非空,唯一两个的组合

主键约束在逻辑意义上代表着单独的,每一条记录,看到主键就知道你是一条单独的不同的记录,是唯一的代表的记录

我们可以用两个字段的组合作为主键

外键(最麻烦的约束):建立于一张表的两个字段,或者两张表的两个字段

constraint stu_class_fk foreign key (class)references class (id)

外键关系:是建立在两个字段上,某一个字段会参考另外一个字段里面的值,如果另外一个字段里面没有这个值,你不能够把这个字段里面的值,设置成为其他的值。

被参考的字段必须是主键,被其他人参考的字段不能作为删除条件

主键约束和外键约束非常重要,老牢牢掌握其概念

1.唯一约束-->在这个字段里面所有的记录不能取重复的值,每个值必须是唯一的

唯一约束后面+ unique ,当然也可以用constraint + 名字

字段级的约束:把约束条件+在字段名的后面

表级的约束:+在所有字段名的最后面

constraint stu_name_email_uni unique(email,name) 表示的是:这两个字段的组合不能重复

2.constraint//非空约束

约束条件本身也是一个对象,本身约束条件你个可以为它起一个名字

用constraint stu_name_nn not null -->为约束条件not null起名字为:stu_name_nn

如果不给约束条件起名字,系统会默认的给约束条件起一个名字

not null,unique(当某字段有unique约束时,可以插入空值,空值之间不重复)、主键、外键、check约束

create table student

(

id number(6),

name varchar2(20) constraint stu_name_nn not null, (字段级约束)

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4),

email varchar2(50) unique //unique唯一约束都为空可以

)

/

行级约束(放在字段后面)与表级约束(加在表后面):

7

create table student

(

id number(6),

name varchar2(20) constraint stu_name_nn not null,

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4),

email varchar2(50),

constraint stu_email_name_uni unique(name,email) //name,email的组合唯一约束(表级约束)

)

/

主键约束

create table student

(

id number(6) primary key,

name varchar2(20) constraint stu_name_nn not null,

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4),

email varchar2(50),

constraint stu_email_name_uni unique(name,email)

)

/

create table student

(

id number(6),

name varchar2(20) constraint stu_name_nn not null,

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4),

email varchar2(50),

constraint stu_id_pk primary key(id),

constraint stu_email_name_uni unique(name,email)

)

/

外键约束

外键约束被参考的字段必须是主键。

create table class

(

id number(4) primary key,

name varchar2(20) not null

)

/

create table student

(

id number(6),

name varchar2(20) constraint stu_name_nn not null,

sex number(1),

8

age number(3),

sdate date,

grade number(2) default 1,

class number(4) references class(id),

email varchar2(50),

constraint stu_id_pk primary key(id),

constraint stu_email_name_uni unique(name,email)

)

/

create table student

(

id number(6),

name varchar2(20) constraint stu_name_nn not null,

sex number(1),

age number(3),

sdate date,

grade number(2) default 1,

class number(4),

email varchar2(50),

constraint stu_id_pk primary key(id),

constraint stu_class_fk foreign key (class) references class(id),

constraint stu_email_name_uni unique(name,email)

)

/

第三十一课:alter table drop table //修改表结构;

alter table student add(addr varchar2(100)); //添加结构

alter table student drop(addr); //删除结构

alter table student modify(addr varchar2(50)); //修改

若addr字段中有的记录长度大于50,则修改不成功。

alter table student drop constraint stu_class_fk; //去掉约束条件

alter table student add constraint stu_class_fk foreign key (class)

references class (id); //添加约束条件

drop table class;

第二范式的要求:当一张表里面有多个字段作为主键的时候,非主键的这些字段,不能依靠于部分主键

(只能依赖整个组合的主键,不能依赖部分) 叫做:不能存在部分依赖

第三范式的要求:不能存在传递依赖(除了主键之外的任何其他字段必须直接依赖于主键)

第三十二课:Oracle dictionaries

desc user_tables;

select table_name from user_tables;

select view_name from user_views;

select constraint_name from user_constraints;

select constraint_name,table_name from user_constraints;

desc dictionary;

第三十三课:indexes_and_views

索引可以提高读数据的效率,但会降低修改、写数据的效率,索引还会占用一定的存储空间

create index idx_stu_email on student(email);

drop index idx_stu_email;

视图会带来一些维护的代价,比如表结构改了,那么视图也得跟着改变。视图还可以用来保

护私有数据。

select index_name from user_indexes;

select view_name from user_views;

9

第三十四课:sequences and review

序列可以自动增长,在sql server中有identity,mysql中有auto_increment

create table article

(

id number,

title varchar2(1024),

cont long

)

/

如何保证插入数据时id不重复?

select max(id) from article;这样做也不行,如果有多个线程同时访问数据,则可能会出现

数据不一致的现象,比方说第一个用户查询出最大id值是100,第二个用户也查询出最大id是

100,然后第二个用户新插入一条记录:id是101,然后第一个用户也插入了一条记录:id也是

101

可以用Oracle的sequence

create sequence seq_article_id;

多个表之问可以共用一个序列,但是一般情况下为每个字段分别建立一个序列

sequence有两个属性CurrVal、NextVal

select seq.nextvalue from dual;

insert into article values(seq.nextval,'y','yy');

insert into article values(seq.nextval,'x','xx');

insert into article values(seq.nextval,'z','zz');

insert into article values(seq.nextval,'q','qq');

第三十五课:三范式

第一范式:

1.每个表都要有主键

2.列不可分,比如:

create table stu

(

id number,

name varchar2(20),

age number

)

/

insert into stu values(1,'yu',21);

create table stu2

(

inf long

)

/

insert into stu2 values('1_yu_21');

虽然表stu2可以字符串解析后可以达到和表stu一样的效果,但是显然第一种方法更好,查询数

据更加方便,而表stu2违反了第一范式的列不可分原则。

第二范式:

当有两个以上字段作主键时,非主键字段不能部分依赖于主键字段,如有一个需求,一门老师教多名学生,一名学生可以选多个老师的课。然后设计了一张表,有以下字段(老师编号、学生编号、老师姓名、学生姓名等),其中以老师编号和学生编号作联合主键,则些表就存在部分依赖,老师姓名部分依赖于老师编号,不满足第二范式,有数据冗余。要解决这个问题可以设计三张表。

第三范式:

不能存在传递依赖,如有一张表有以下字段:(学号、姓名、班级号、班级名称、班级位置),其中学号为主键,则班级号依赖于学号,每个学生都有相应的班级号,但是班级名称、班级位置是依赖于班级号,即它们通过班级号传递依赖于学号,不满足第三范式。

10

第三十八课:PL_SQL

set serveroutput on;

begin

dbms_output.put_line('Hello World!!');

end;

declare

v_name varchar2(20);

begin

v_name:='xiaoyu';

dbms_output.put_line(v_name);

end;

declare

v_num number:=0;

begin

v_num:=2/v_num;

dbms_output.put_line(v_num);

exception

when others then

dbms_output.put_line('error');

end;

--变量声明的规则

1.变量名不能使用保留字

2.第一个字符必须是字母

3.变量名最多包含30个字母

4.不要与数据库或表名同名

5.每一行只能声明一个变量

/*

这是多行注释

*/

--常用变量类型

1.binary_integer:整数,主要用来计数而不是用来表示字段类型

2.number数字类型

3.char定长字符串

4.date日期

5.long长字符串,最长2GG

6.boolean类型:可以取值true、false、null,默认为null,另外boolean类型值不可直接打印

--变量声明

declare

v_temp number(1);

v_count binary_integer:=0;

v_sal number(7,2):=8888.88;

v_date date:=sysdate;

v_pi constant number(3,2):=3.14;

v_valid boolean:=false;

v_name varchar2(20) not null:='geniusxiaoyu';

begin

dbms_output.put_line('v_temp value:' || v_temp);

end;

--变量声明:使用%type属性

declare

v_empno number(4);

v_empno2 emp.empno%type;

11

v_empno3 v_empno2%type;

begin

dbms_output.put_line('test for type');

end;

第四十一课

--Table变量类型,相当于数组类型

declare

type type_table_emp_empno is table of emp.empno%type index by binary_integer;//声明类型

v_empnos typa_table_emp_empno;

begin

v_empnos(0):=7777;

v_empnos(1):=7778;

v_empnos(-1):=6666;

dbms_output.put_line(v_empnos(-1));

end;

--Record变量类型,相当于类

declare

type type_record_dept is record

(

deptno dept.deptno%type,

dname dept.dname%type,

loc dept.loc%type

);

v_temp type_record_dept;

begin

v_temp.deptno:=50;

v_temp.dname:='yugang';

v_temp.loc:='beijing';

dbms_output.put_line(v_temp.deptno || ' ' || v_temp.dname || ' ' || v_temp.loc);

end;

--使用%rowtype声明record变量

declare

v_temp dept%rowtype;

begin

v_temp.deptno:=50;

v_temp.dname:='yugang';

v_temp.loc:='beijing';

dbms_output.put_line(v_temp.deptno || ' ' || v_temp.dname || ' ' || v_temp.loc);

end;

--SQL语句的运用

--select语句必须和into语句一块使用并且只能返回一条记录

--sql%rowcount

declare

v_name emp.ename%type;

v_sal emp.sal%type;

begin

select ename,sal into v_name,v_sal from emp where empno=7369;

dbms_output.put_line(v_name || ' ' || v_sal);

end;

declare

v_temp emp%rowtype;

12

begin

select * into v_temp from emp where empno=7369;

dbms_output.put_line(v_temp.ename || ' ' || v_temp.eno);

end;

declare

v_deptno dept.deptno%type:=50;

v_dname dept.dname%type:='mm';

v_loc dept.loc%type:='bj';

begin

insert into dept values(v_deptno,v_dname,v_loc);

commit;

end;

declare

v_deptno dept.deptno%type:=50;

v_count number;

begin

--update emp set sal:=sal/2 where deptno=v_deptno;

--select deptno into v_deptno from emp where deptno=7369;

select count(*) into v_count from emp;

dbms_output.put_line(sql%rowcount || '条记录被影响!');

commit;

end;

--DDL语句,在PLSQL中使用DDL语句要加上execute immediate,两个单引号代表一个单引号

begin

execute immediate 'create table tt(name varchar2(20) default ''Army'')';

end;

declare

v_sal emp.sal%type;

begin

select sal into v_sal from emp where empno=7369;

if(v_sal<1200) then

dbms_output.put_line('low');

elsif(v_sal<2000) then

dbms_output.put_line('middle');

else

dbms_output.put_line('high');

end if;

end;

--循环

declare

i binary_integer:=1;

begin

loop

dbms_output.put_line(i);

i:=i+1;

exit when (i >= 11);

end loop;

end;

declare

13

j binary_integer:=1;

begin

while j<11 loop

dbms_output.put_line(j);

j:=j+1;

end loop;

end;

begin

for k in 1..10 loop

dbms_output.put_line(k);

end loop;

for k in reverce 1..10 loop

dbms_output.put_line(k);

end loop;

end;

--错误处理(too_many_rows,others,no_data_found)

declare

v_temp number;

begin

select empno into v_temp where deptno=10;

exception

when too_many_rows then

dbms_output.put_line('太多记录了');

when others then

dbms_output.put_line('error');

end;

declare

v_temp number;

begin

select deptno into v_temp from emp where empno=2222;

exception

when no_data_found then

dbms_output.put_line('没数据');

end;

create table errorlog

(

id number primary key,

errcode number,

errmsg varchar2(1024),

errdate date

);

create sequence seq_errorlog_id start with 1 increment by 1;

declare

v_deptno dept.deptno%type:=10;

v_errcode number;

v_errmsg varchar2(1024);

begin

delete from dept where deptno=v_deptno;

14

commit;

exception

when others then

rollback;

v_errcode:=SQLCODE;

v_errmsg:=SQLERRM;

insert into errlog values(seq_errorlog_id.nextVal,v_errcode,v_errmsg,sysdate);

commit;

end;

第47~48课:cursor(重点)

declare

cursor c is

select * from emp;

v_emp c%rowtype;

begin

open c;

fetch c into v_emp;

dbms_output.put_line(v_emp.ename);

close c;

end;

--简单循环

declare

cursor c is

select * from emp;

v_emp c%rowtype;

begin

open c;

loop

fetch c into v_emp;

exit when(c%notfound);

dbms_output.put_line(v_emp.ename);

end loop;

end;

declare

cursor c is

select * from emp;

v_emp c%rowtype;

begin

open c;

loop

fetch c into v_emp;

--下面两行顺序改变后,将会把最后一条记录打印两遍

dbms_output.put_line(v_emp.ename);

exit when(c%notfound);

end loop;

end;

--while循环

declare

cursor c is

select * from emp;

v_emp emp%rowtype;

15

begin

open c;

fetch c into v_emp;

while(c%found) loop

dbms_output.put_line(v_emp.ename);

fetch c into v_emp;

end loop;

close c;

end;

--for循环

declare

cursor c is

select * from emp;

begin

open c;

for v_emp in c loop

dbms_output.put_line(v_emp.ename);

end loop;

close c;

end;

--带参数的游标

declare

cursor c(v_deptno emp.deptno%type,v_job emp.job%type) is

select ename,sal from emp where deptno=v_deptno and job=v_job;

--v_emp emp%rowtype;

begin

for v_emp in c(30,'JAY') loop

dbms_output.put_line(v_emp.ename);

end loop;

end;

--可更新的游标

declare

cursor c is

select * from emp for update;

--v_temp c%rowtype;

begin

for v_temp in c loop

if(v_temp.sal < 2000) then

update emp set sal=sal*2 where current of c;

elsif(v_temp.sal=5000) then

delete from emp where current of c;

end if;

end loop;

commit;

end;

第49~50课:procedure

create or replace procedure p

is

cursor c is

select * from emp for update;

16

begin

for v_temp in c loop

if(v_temp.deptno=10) then

update emp set sal=sal+10 where current of c;

elsif(v_temp.deptno=20) then

update emp set sal=sal+20 where current of c;

else

update emp set sal=sal+50 where current of c;

end if;

end loop;

commit;

end;

--带参数的存储过程

create or replace procedure p

(v_a in number,v_b number,v_ret out number,v_temp in out number)

is

begin

if(v_a

v_ret:=v_b;

else

v_ret:=v_a;

end if;

v_temp:=v_temp+1;

end;

declare

v_a number:=10;

v_b number:=20;

v_ret number;

v_temp number:=99;

begin

p(v_a,v_b,v_ret,v_temp);

dbms_output.put_line(v_ret);

dbms_output.put_line(v_temp);

end;

/* begin

P;

end

存储过程在创建过程中如果出现错误,仍然会创建,并且不会提示错误在哪儿,可以使用

show error来查看错误出现在哪儿。

*/

----创建函数

create or replace function tax_sal

(v_sal number)

return number

is

begin

if(v_sal<2000) then

return 0.10;

elsif(v_sal<3000) then

return 0.20;

else

17

return 0.30;

end if;

end;

--触发器

create table emp_log //创建一个表记录操作

(

uname varchar2(20);

action varchar2(10);

atime date

);

create or replace trigger trig

after/before insert or update or delete on emp2 for each row

begin

if inserting then

insert into emp_log values(USER,'insert',sysdate);

elsif updating then

insert into emp_log values(USER,'update',sysdate);

else

insert into emp_log values(USER,'delete',sysdate);

end if;

end;

update dept set deptno=99 where deptno=10;

--违反约束条件

create or replace trigger trig

after update on dept for each row

begin

update emp set deptno=:NEW.deptno where deptno=:OLD.deptno;

end;

--------------树状结构的存储和展示--------------------

create table article(

id number primary key,

cont varchar2(4000),

pid number,

isleaf number(1), --0代表非叶子节点,1代表叶子节点

alevel number(2)

);

insert into article values(1,'蚂蚁大战大象',0,0,0);

insert into article values(2,'大象被打趴下了',1,0,1);

insert into article values(3,'蚂蚁也不好过',2,1,2);

insert into article values(4,'瞎说',2,0,2);

insert into article values(5,'没有瞎说',4,1,3);

insert into article values(6,'怎么可能',1,0,1);

insert into article values(7,'怎么没有可能',6,1,2);

insert into article values(8,'可能性是很大的',6,1,2);

insert into article values(9,'大象进医院了',2,0,2);

insert into article values(10,'护士是蚂蚁',9,1,3);

commit;

18

emp雇员信息表

EMPNO 雇员编号NOT NULL NUMBER(4

ENAME 雇员姓名VARCHAR2(10)

JOB 工作岗位VARCHAR2(9)

MGR 该雇员经理人的编号NUMBER(4)

HIREDATE 入职时间DATE

SAL 薪水NUMBER(7,2)

COMM 津贴NUMBER(7,2)

DEPTNO 雇员所在部门编号NUMBER(2)

表内容:

EMPNO ENAME JOB MGR HIREDATE

SAL COMM DEPTNO

------ -------------------- ------------------ ---------- -------------- ---------- ---------- -

7369 SMITH CLERK 7902 17-12月-80

800 20

7499 ALLEN SALESMAN 7698 20-2月-81

1600 300 30

7521 WARD SALESMAN 7698 22-2月-81

1250 500 30

7566 JONES MANAGER 7839 02-4月-81

2975 20

7654 MARTIN SALESMAN 7698 28-9月-81

1250 1400 30

7698 BLAKE MANAGER 7839 01-5月-81

2850 30

7782 CLARK MANAGER 7839 09-6月-81

2450 10

7788 SCOTT ANALYST 7566 19-4月-87

3000 20

7839 KING PRESIDENT 17-11月-81

5000 10

7844 TURNER SALESMAN 7698 08-9月-81

1500 0 30

7876 ADAMS CLERK 7788 23-5月-87

1100 20

EMPNO ENAME JOB MGR HIREDATE

SAL COMM DEPTNO

------ -------------------- ------------------ ---------- -------------- ---------- ---------- -

7900 JAMES CLERK 7698 03-12月-81

950 30

7902 FORD ANALYST 7566 03-12月-81

3000 20

7934 MILLER CLERK 7782 23-1月-82

1300 10

dept部门信息表

DEPTNO 部门编号NOT NULL NUMBER(2)

DNAME 部门名字VARCHAR2(14)

LOC 部门所在地VARCHAR2(13)

内容:

DEPTNO DNAME LOC

------ ---------------------------- --------

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTO

salgrade薪水等级表

GRADE 薪水等级NUMBER

LOSAL 该等级的最低薪水值NUMBER

HISAL 该等级的最高薪水值NUMBER

内容:

GRADE LOSAL HISAL

----- ---------- ----------

1 700 1200

2 1201 1400

3 1401 2000

4 2001 3000

5 3001 9999

19

20

马克思主义基本原理整理笔记

绪论马克思主义是关于工人阶级和人类解放的科学 (2) 第一节马克思主义的产生和发展 (2) 第二节马克思主义科学性与革命性的统一 (3) 第三节学习、运用和发展马克思主义 (4) 第一章物质世界及其发展规律 (5) 第一节物质世界和实践 (5) 第二节物质世界的普遍联系和永恒发展(4页) (7) 第三节客观规律性与主观能动性 (12) 第二章认识的本质及其规律 (14) 第一节认识的产生及本质 (14) 第二节认识的辩证运动 (15) 第三节真理与价值 (16) 第四节认识世界与改造世界的统一 (18) 第三章人类社会及其发展规律 (20) 第一节社会基本矛盾及其运动规律 (20) 第二节社会历史发展的动力 (22) 第三节人民群众在历史发展中的作用 (23) 第四章资本主义的形成及其本质 (25) 第一节资本主义的形成 (25) 第二节资本主义经济制度的本质特征 (27) ④资积累导致资本主义基本矛盾深化,最终必将以生产资料社会主义公有制代替资本主 义私有制,这就是资本积累的历史趋势。第三节资本主义的政治制度和意识形态28 第五章资本的流通过程和剩余价值的分配 (30) 第一节资本的循环和周转 (30) 第二节社会资本的再生产 (31) 第三节产业资本的利润和平均利润 (32) 第四节商业资本和商业利润 (33) 第五节借贷资本和利息 (34) 第六节农业资本和地租 (36) 第六章资本主义发展的历史进程 (38) 第一节自由竞争资本主义 (38) 第二节当代资本主义的新变化 (39) 第三节资本主义的历史地位和发展趋势 (40) 第七章社会主义社会及其发展 (42) 第一节社会主义制度的建立 (42) 第二节社会主义在实践中发展和完善 (43) 第三节马克思主义政党在社会主义事业中的地位和作用 (45) 第八章共产主义是人类最崇高的社会理想 (46) 第一节马克思主义对共产主义社会的展望 (46) 第二节共产主义社会历史发展的必然 (47) 第三节在建设中国特色社会主义的进程中为实现共产主义而奋斗 (48)

自考马克思主义基本原理概论重点笔记(全)

自考马克思主义基本原理概论笔记(最新整理) 绪论马克思主义是关于工人阶级和人类解放的科学 第一节马克思主义的产生和发展 (单选)马克思主义产生于19世纪40年代中期。 一、马克思主义是时代的产物 (多选)马克思主义产生于近代自然科学取得三大发现新成就以及资本主义社会化大生产已经成为主导趋势,资本主义社会内部各种社会矛盾和阶级矛盾弃分显露,无产阶级以独立的政治力量登上历史舞台争取自身和人类解放的斗争的历史时代。 (多选)马克思主义作为工人阶级和人类解放的科学,是包括马克思主义哲学、政治经济学和科学社会主义在内的统一整体。 二、马克思主义对人类文明成果的继承与创新考试大自考站,你的自考专家! (多选)对马克思主义的形成产生最直接、最重大影响的,是德国古典哲学 英国古典经济学和19世纪的英法两国的空想社会主义学说,它们代表了19世纪上半叶人类思想的最高成就,是马克思主义的直接理论来源。 (单选)黑格尔最卓越的贡献是辩证法,他是哲学史上第一个以唯心主义的形式系统地 有意识地叙述辩证法的基本规律即对立统一规律、质量互变规律、否定之否定规律的哲学家。 (单选)费尔马哈是德国古典哲学的最后一位代表,是黑格尔哲学和马克思主义哲学的中间环节。 (单选)马克思和恩格斯从来没有完全赞同和接受费尔巴哈的哲学思想,只是吸收了他的唯物主义的基本思想,同时摒充了他的抽象的人本主义和自然主义,清除了他的理论中的形而上学和唯心主义杂质。 (单选)马克思主义哲学的理论来源,包括马克思主义哲学以前欧洲哲学的全部积极内容,其中德国古典哲学是马克思主义哲学的直接理论来源。 (多选)在马克思主义哲学产生以前的哲学存在两个分离:一是唯物主义和辩证法相分离,二是唯物主义自然马和唯物主义历史观相分离。 (单选)英国古典经济学产生于17世纪后半期即英国资产阶级革命时期,完成于英国工业革命后的19世纪初,创始人是威廉。配第,中间经济亚当。斯密的发展,到大卫。李嘉图结束。 (多选)英法两国的空想社会主义指19世纪上半叶以对西门、傅立叶、欧文为代表的三大空想社会主义者的学说。 (多选)细胞学说、能量守恒和转化定律与生物进化论这自然科学的三大发现,为整个马克思主义的形成提供了坚定的自然科学基础。 三、马克思主义在实践中不断发展 (多选)马克思、恩格斯不仅是马克思主义的创立者,而且也是马克思主义的发展者。马克思1845年春天写作的《关于费尔马哈的提纲》和马克思、恩格斯1845-1846年合写的《德意志意识形态》一书,是标志马克思主义基本形成的著作。 (多选)1847年7月发表的马克思的《哲学的贫困》和1848年2月发表的马克思、恩格斯合车的《共产党宣言》,则标志着马克思主义的公开问世。 (多选)列宁的(论欧洲联帮口号)和《无产阶级革命的军事纲领》两篇论文,提出了在特定的历史条件下,社会主义革命有可能在一国或几国首先取得胜利的思想。

ORACLE笔记

1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate 删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes 1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept; Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

(完整版)【自己整理的】思想道德修养与法律基础笔记

一、绪论 1、社会主义核心价值体系的科学内涵。社会主义核心价值体系的基本内容:马克思主义指导思想(是社会主义核心价值体系的灵魂、理论基础),中国特色社会主义共同理想(是社会主义核心价值体系的主题),以爱国主义为核心的民族精神和一改革创新为核心的时代精神(精髓),社会主义荣辱观(社会主义核心价值体系的基础)。 2、社会主义核心价值体系的意义。①、是时代发展的需要。②、是适应国际环境剧烈变化 要求的需要。③、是执政党担负引领社会思潮的政治责任的需要。 3、社会主义核心价值体系是建设和谐文化的根本。 4、创新学习是一种以求真务实为基础,采取创造性方法,积极追求创造性成果的学习 5、人才素质是什么? ①徳是人素质的灵魂②智是人才素质的基本内容③体是人才素质的基础④美是人才素质的 综合体现 6、成为德智体美全面发展的社会主义事业的合格建设者和可靠接班人,是大学生需要确立的成才目标。 7、大学生怎样尽快适应大学生活 ①确立独立自主意识②提高明辨是非的能力③虚心求教,细心体察④大胆实践,不断积累 生活经验 8、大学生应该塑造的崭新形象 ①理想远大,热爱祖国②追求真理,善于创新③德才兼备, 全面发展④视野开阔,胸怀宽广⑤知行统一,脚踏实地 9、思想道德建设的基本任务:坚持爱国主义、集体主义、社会主义教育,加强社会公德、职业道德、家庭美德和个人品德建设,引导人们树立建设和发展中国特色社会主义的共同 理想和正确的世界观、人生观和价值观。 10、思想道德与法律是调节人们思想行为、协调人际关系、维护社会秩序的中药手段。思 想道德素质(主要包括思想政治素质和道德素质)和法律素质(是人们学法学尊法守法用 法的素养和能力)是人的基本素质。 11、学习“思修”课的意义:①有助于大学生认识立志、树德和做人的道理,选择正确的成 才之路②有助于大学生掌握丰富的思想道德和法律知识,为提高思想道德和法律素养打下 知 识基础③有助于大学生摆正“德”与“才”的位置,做到德才兼备、全面发展。 二、第一章 1、理想的含义:理想作为一种精神现象,是人类社会实践的产物。理想是人们在实践中形成的、有可能实现的、对未来社会和自身发展的向往与追求,使人们的世界观、人生观和 价值观在奋斗目标上的集中体现。

学习oracle数据库的总结(图文整理)

1、在开发环境中连接到数据库,进行基本的select查询操作; 2、熟悉plsql的使用; 3、熟悉sqlplus相关命令(登录、查询、导入导出等) 登录sqlplus: 第一:使用dos窗口登录sqlplus Sqlplus 用户名/密码@数据库实例名 Sqlplus system/密码@数据库实例名as sysdba 第二:使用oracle自带的一个sqlplus登录,提供界面,显得更简单一些。 显示当前用户名:show user; 创建一个用户:create user 用户名identified by 密码; 给用户赋予登录的权限:grant connect to 用户名;(此时才可以使用这个用户来登录这个数据库。)给其赋予dba的权限。 修改用户的密码:alter user 用户名identified by 新密码; 查询: Select * from t_user; Select id from t_user; Select name from t_user; Select birthday from t_user; Select id,name from t_user; 导入导出: 导出表: (注意,导出表的exp命令不是在sqlplus下使用的,是在dos窗口下使用的命令。) exp userid=test/sa@test tables=(qx) file=d:\e1223.dmp exp userid=test/sa@test tables=(t_user,qx) file=f:\test.dmp 导出方案: Exp userid=test/sa@test owner=test file=f:\test2.dmp 导出数据库: Exp userid=test/sa@test full=y inctype=complete file=f:\all.dmp 导入表: 下面以一个例子来说明: 看下面的图,我的用户名test,密码sa,数据库实例名test,所有的表都在这里 现在我执行导出表JD的操作:exp userid=test/sa@test tables=(jd) file=f:\jd.dmp 在我的f盘下就出现了这么一个.dmp文件

oracle学习心得体会

oracle学习心得 一、sqlserver的理解 sqlserver服务器就像一栋大楼,大楼里的机房就像服务器的数据库,机房里的电脑如同数据库里的表 1、登录用户可以登录服务器——可以进大楼 2、登录用户成为数据库用户才能进指定的数据库——进入大楼的人给了某个机房的钥匙 才能进入机房 3、登录用户有权限使用表——进入机房的人有电脑的密码才能使用电脑 二、oracle的理解 oracle服务器(全局数据库)就像一个商场,商场的每一家公司是表空间,公司的业务是表 1、数据库由多个表空间组成——商场里有多家公司组成 2、表空间由段组成——公司要有自己的经营业务,可以只有一个业务,就是一个表空 间中只有一个段,可以有多个业务,就是一个表空间有多个段 3、段由区组成——单个业务的细分类别。例如有家公司经营三个业务,卖书,卖家电,

卖衣服,则每个业务就是一个段。而每个业务又有细分,比如卖书的话要进行分类了。计算机区,人文区,小说区等,每一区都要放上书架存放书籍,则书架就是oracle块,存放数据的 三、数据库,表空间,用户(指定默认表空间),表统统由管理员管理 四、在oem中管理数据库的步骤 1、创建 1)存储——表空间——创建表空间(tomspace)(类似于在sql中创建数据库, 通常可以省略,使用默认表空间为users,,临时表空间为temp) 2)首先展开安全性——创建新用户(tom,指定表空间)(类似于在sql中指定 数据库用户) 3)创建表——指定方案(用户)和表空间(列名不要带<>) 4)设置约束 5)输入信息:方案——用户名——表——右击——查看/编辑目录… 2、修改 1)方案——用户名——表 2)修改表结构,添加约束

超完整自考《马克思主义基本原理概论》笔记精华

《马克思主义基本原理概论》串讲笔记 绪论 第一节马克思主义的产生和发展 一、马克思主义是时代的产物应试提示:注意把握要点,常以简答题方式出现。 马克思主义产生于资本主义社会化大生产已经成为主导趋势,资本主义社会内部各种社会矛盾和阶级矛盾充分显露,无产阶级以独立的政治力量登上历史舞台争取自身和人类解放的斗争的历史时代(简言之,马克思主义是资本主义生产方式及其内在矛盾发展的产物)。 1、资本主义内在矛盾尖锐化(客观条件) 从17世纪40年代到19世纪上半叶,英国和法国等西欧主要国家相继发生了资产阶级革命。从18世纪60年代首先在英国开始的工业革命,法国、德国也相继发生了工业革命。 资产阶级革命成功和工业革命的发生,使资本主义得到迅速发展。资本主义机器大工业的发展,一方面大大发展了生产力,提高了劳动生产率,带来了物质财富的空前增长;另一方面,又导致了资本主义固有矛盾的尖锐化。 生产的社会化和生产资料私人占有之间的矛盾是资本主义的基本矛盾,这个矛盾表现为个别工厂生产的有组织性和整个社会生产的无政府状态之间的矛盾,表现为生产无限扩大的趋势和劳动人民有支付能力的需求相对缩小的趋势之间的矛盾,这些矛盾必然导致周期性的经济危机。2、工人阶级和资产阶级之间的矛盾尖锐化(阶级基础) 掌握三大工人运动,常以多选题方式出现。 资本主义基本矛盾的激化,在阶级关系上表现为工人阶级和资产阶级之间矛盾的尖锐化。具体表现为三大工人运动:1831年和1834年,法国里昂工人先后两次举行武装起义,明确提出了“建立共和国”的口号;1836年,在英国开始了“人民宪章”运动;1844年,德国西里西亚的工人发动了起义,提出了消灭私有制的口号。标志着无产阶级以独立的政治力量登上历史舞台。 马克思主义包括马克思主义哲学、政治经济学和科学社会主义在内的统一整体。资本主义生产方式及其内在矛盾的发展为马克思主义哲学创造了条件;使马克思主义政治经济学成为可能;使社会主义从空想变成了科学(科学社会主义)。 二、马克思主义对人类文明成果的继承与创新此处知识点较多,注意记忆,常以选择题方式出现。 1、马克思主义的直接理论来源 对马克思主义的形成产生最直接、最重大影响的,是德国古典哲学、英国古典经济学和19世纪的英法两国的空想社会主义学说。 德国古典哲学:马克思、恩格斯吸取了黑格尔辩证法中的合理思想,彻底批判了它的唯心主义和神秘主义,对它进行了根本改造,创立了唯物辩证法,吸收了费尔巴哈的唯物主义的基本思想,同时摒弃了他的抽象的人本主义和自然主义,清除了他的理论中的形而上学和唯心主义杂质。古希腊罗马哲学其他哲学对马克思主义哲学产生的影响相对说是间接来源。在马克思主义哲学产生以前的哲学存在两个分离:一是唯物主义和辩证法相分离,二是唯物主义自然观和唯物主义历史观相分离。马克思主义哲学使两个分离得以统一。 英国古典经济学:英国古典经济学是资本主义生产方式已经建立而无产阶级和资产阶级之间的斗争尚未发展时期的代表新兴资产阶级利益的经济理论。创始人是威廉?配第,中间经过亚当?斯密的发展,到大卫?李嘉图结束。最主要的是严密论证了劳动价值论,并在此基础上创立了剩余价值学说,使经济学发生了革命变革。

Oracle数据库期末复习知识点整理

基础知识 表3.2 Oracle数据类型

表3.3 XSB的表结构

操作表 创建表 CREATE TABLE [schema.] table_name ( column_namedatatype [DEFAULT expression] [column_constraint][,…n] [,…n] ) [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace_name] [STORGE storage_clause] [CLUSTER cluster_name(cluster_column,…n)] [ENABLE | DISABLE ] [AS subquery] 【例】使用CRETE TABLE命令为XSCJ数据库建立表XSB,表结构参照表3.3。 打开SQL*Plus工具,以system方案连接数据库,输入以下语句: CREATE TABLE XSB ( XH char(6) NOT NULL PRIMARY KEY, XM char(8) NOT NULL, XB char(2) DEFAULT '1' NOT NULL, CSSJ date NOT NULL, ZY char(12) NULL, ZXF number(2) NULL, BZ varchar2(200) NULL ); 修改表 ALTER TABLE [schema.] table_name [ ADD(column_namedatatype [DEFAULT expression][column_constraint],…n) ] /*增加新列*/ [ MODIFY([ datatype ] [ DEFAULT expression ] [column_constraint],…n) ] /*修改已有列的属性*/ [ STORAGE storage_clause ] *修改存储特征*/ [ DROP drop_clause ] /*删除列或约束条件*/ 【例】使用ALTER TABLE语句修改XSCJ数据库中的表。

oracle数据库学习笔记心得

select* |字段表名 from 表名 where 布尔表达式【条件】 externalcandidate 职员相关信息 contractrecruiter 猎头公司 查看表里所有字段 describe[描述] contractrecruiter select cname,nperecentagecharge from contractrecruiter 不显示原来名字,显示现在名字【用AS】 select cname as "Recruiter Name",nperecentagecharge as "Hire Fees" from contractrecruiter 不显示原来名字,显示现在名字【可不用AS】 select cname "Recruiter Name",nperecentagecharge "Hire Fees" from contractrecruiter 【双引号是否写】 双引号是为了区分大小写 职位表 position select *from position 缺额运算:[想减] select VDESCRIPTION , nbudgetedstrength, NBUDGETEDSTRENGTH -NCURRENTSTRENGTH , NYEAR from position

select VDESCRIPTION "Potion", nbudgetedstrength "Budgeted Strength" , NBUDGETEDSTRENGTH -NCURRENTSTRENGTH "Vacancies", NYEAR "Year" from position 显示非重复运行 查询来源地的人数 describe externalcandidate 查看职员城市名字 select ccity from externalcandidate 查看职员城市名字【名字不重复,插入一个关键字:distinct】select distinct ccity,cstate from externalcandidate 运算符: 两列 select vfirstname,vlastname from externalcandidate 字段拼接 select vfirstname||vlastname from externalcandidate select vfirstname||' '||vlastname from externalcandidate 学校 describe college 查看所有学校 select *from college 查看只是加利福尼亚的学校 select * from college where cstate='California' 一个条件 select vfirstname,vlastname,dbirthdate,ntestscore from externalcandidate where dbirthdate>='01-1月-70'

完整word版马克思主义基本原理整理笔记

2 ................................................................. 马克思主义是关于工人阶级和人类解放的科学绪论 2 .................................................................................... 马克思主义的产生和发展.第一节 3 ..................................................................... 马克思主义科学性与革命性的统一第二节 4 ............................................................................ 学习、运用和发展马克思主义.第三节 5 ................................................................................................ 物质世界及其发展规律.第一章 5 .................................................................................................... .第一节物质世界和实践 7 ) ............................................................... (4页第二节物质世界的普遍联系和永恒发展 12 .................................................................................. .第三节客观规律性与主观能动性14 .................................................................................................. .第二章认识的本质及其规律 14 .............................................................................................. . 认识的产生及本质第一节 15 .................................................................................................. . 认识的辩证运动第二节 16 . .......................................................................................................... 真理与价值第三节 18 ............................................................................... 认识世界与改造世界的统一第四节 20 ............................................................................................... 人类社会及其发展规律第三章 20 ............................................................................... 社会基本矛盾及其运动规律第一节 22 ........................................................................................... 社会历史发展的动力第二节 23 ........................................................................... 人民群众在历史发展中的作用第三节 25 ........................................................................................... 资本主义的形成及其本质第四章 25 ................................................................................................... 资本主义的形成第一节 27 .......................................................................... 资本主义经济制度的本质特征.第二节 ④资积累导致资本主义基本矛盾深化,最终必将以生产资料社会主义公有制代替资本主义私有制,这就是资本积累的历史趋势。第三节资本主义的政治制度和意识形态28 第五章资本的流通过程和剩余价值的分配 (30) 第一节资本的循环和周转 (30) 第二节社会资本的再生产 (31) 第三节产业资本的利润和平均利润 (32) 第四节商业资本和商业利润 (33) 第五节借贷资本和利息 (34) 第六节农业资本和地租 (36) 第六章资本主义发展的历史进程 (38) 第一节自由竞争资本主义 (38) 第二节当代资本主义的新变化 (39) 第三节资本主义的历史地位和发展趋势 (40) 第七章社会主义社会及其发展 (42) 第一节社会主义制度的建立 (42) 第二节社会主义在实践中发展和完善 (43) 第三节马克思主义政党在社会主义事业中的地位和作用 (45) 第八章共产主义是人类最崇高的社会理想 (46) 第一节马克思主义对共产主义社会的展望 (46)

Oracle知识点总结

Oracle知识点总结 根据阎赫老师讲义整理Zealjiang 1、Oracle数据库的安装和配置 ⑴Oracle Internet级数据库 SQLServer 中小企业级数据库 Access 桌面级数据库 ⑵Oracle的安装 注意:来源和目标的目录不允许有中文或空格 ⑶Oracle数据库启动时必需开启的后台服务 ①OracleOrahome90TNSListener 使第三方的软件或语言访问 ②OracleServiceETC Oracle的实例 CRUD 增删改查 注意:②中的ETC是你起的实例的名字 ⑷Oracle的开发工具 ①DOS界面的开发平台 -> 运行->sqlplus ②Oracle本身基于DOS的平台 ->运行-> sqlplusw ③Oracle Enterprise Manager Console ④PL/SQL Developer7.1.5 ⑸创建一个表的完整流程 ①创建一个数数库 例子:创建一个数据库 ETC , 物理文件放在F:\ ,初始化1m ,自增长开启 create tablespace etc

datafile 'f:\etc.dbf' size 1m autoextend on; 删除表空间 drop tablespace 数据库名称; ②为该数据库创建一个帐号和密码 语法: create user 用户名称 identified by 密码 default tablespace 数据库名称 注意:1、在Oracle中账号和数据库one2one绑定 2、Oracle的密码不允许为纯数字或空 3、需要在system账号完成动作 修改Oracle的账号密码 语法:alter user 用户 identified by 新密码 ③用grant 权限 to 用户为该帐户授权 语法: grant 权限名称 to 用户; 撤销权限 语法:revoke 权限名称 from 用户名; ④在该帐号下创建表

Oracle数据库知识总结

AD1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 7. COL命令: 主要格式化列的显示形式。 1). 改变缺省的列标题 COLUMN column_name HEADING column_heading For example: Sql>select * from dept; DEPTNO DNAME LOC ---------- ---------------------------- --------- 10 ACCOUNTING NEW YORK sql>col LOC heading location sql>select * from dept; DEPTNO DNAME location --------- ---------------------------- ----------- 10 ACCOUNTING NEW YORK 2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上: Sql>select * from emp Department name Salary ---------- ---------- ---------- 10 aaa 11 SQL> COLUMN ENAME HEADING ’Employee|Name’ Sql>select * from emp Employee Department name Salary ---------- ---------- ---------- 10 aaa 11 note: the col heading turn into two lines from one line. 3). 改变列的显示长度: FOR[MAT] format Sql>select empno,ename,job from emp; EMPNO ENAME JOB ---------- ---------- --------- 7369 SMITH CLERK

oracle常用笔记总结

1、用dba权限的用户查看数据库都有哪些锁 select https://www.360docs.net/doc/0b12158540.html,ername,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; 2、查看有哪些对象被锁了 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id 3、根据sid查找进程id select pro.spid from v$session ses, v$process pro where ses.sid=129 and ses.paddr=pro.addr; select ses.sid from v$session ses, v$process pro where pro.spid=129 and ses.paddr=pro.addr; 4:根据这个spid对应linux下的进程pid linux命令: ps -ef | gre | 'ora' (找到所有ora开头的进程) kill -9 (pid) 5、解决delete后表的高水位的问题 初步判断应该是之前有大量数据,后来delete了,选成高水位,用shrink 清除高水位: alter table t_mobile_client_tp_prov enable row movement; alter table t_mobile_client_tp_prov shrink space; 重新收集统计信息: begin dbms_stats.gather_table_stats(ownname=>'traffic',tabname=>'T_MOBILE_CLIENT_TP_PR end; 6、ORA-02064 distributed operation not supported

生活与哲学(马哲)笔记整理

期末主观题应试宝典 生活与哲学(马哲) 第二单元探索世界(唯物论部分)与追求真理(认识论部分) 辩证唯物论核心词:物质、意识、规律认识论核心词:实践、认识、真理课题:一、探究世界的本质(唯物论部分)二、把握思维的奥妙(唯物论部分) 意识活动的主动性和创造性,是人能够认识世界的重要条件。2、人能够能动的改造世界。意识对改造世界具有指导作用。即正确的意识对事物的发展起促进作用,错误的意识对事物的发展起阻碍作用。 3、意识对人体生理活动具有调节和控制作用。 【方法论】重视意识的作用,重视精神的力量,自觉地树立正确的思想意识,克服错误的思想意识。 自然界、人类社会和人的思维,在其运动变化和发展中都普遍遵循其固有规律。 【方法论】①规律的客观性和普遍性要求我们,必须遵循规律,按客观规律办事,而不能违背规律。违背规律就会受到规律的惩罚。②在规律面前,人并不是无能为力的。人可以发挥主观能动性,认识和利用规律,根据规律发生作用的条件和形式利用规律,改造客观世界,造福于人类。 含义: (2)怎样? ①做事情要尊重物质运动的客观规律,从客观存在的事物出发,进行调查研究,找出事物固有的不是臆造的规律性,以此作为我们行动的依据。 ②要不断解放思想,与时俱进,以求真务实的精神探求事物的本质和规律,在实践中检验和发展真 ③要把发挥主观能动性和尊重客观规律结合起来,要把高度的革命热情同严谨踏实的科学态度结合起 来。 ④反对两种错误倾向:一是夸大意识能动作用的唯意志主义,二是片面强调客观条件,安于现状、因 循守旧、无所作为的思想。 (认识论部分) 【世界观】①实践是认识的来源。②实践是认识发展的动力。③实践是检验认识的真理性的唯一标准。④实践是认识的目的和归宿。 【方法论】要求我们坚持实践第一。 或螺旋式的上升。追求真理是永无止境的过程。 【方法论】与时俱进,开拓创新,在实践中认识和发现真理,在实践中检验和发展真理,是我们不懈的追求和永恒的使命。 第三单元思想方法与创新意识(唯物辩证法部分) 唯物辩证法核心词:联系、发展、矛盾、辩证的否定观(创新) 【世界观】1.世界上的一切事物都与周围其他事物有着这样或那样的联系。

终极马哲笔记 不去听课也不会挂科来源

终极马哲笔记不去听课也不会挂科来源:李博伦T-T的日志 终极笔记:马哲 一、唯物论(2个核心、2大原理) 2个核心:物质、意识 2大原理:唯物主义一元论(世界物质统一性原理)、物质和意识辩证关系原理 二、辩证法(2个核心、3大规律、4对范畴) 2个核心:联系、发展 3大规律:质变量变律、否定之否定、对立统一律 4对范畴:现象与本质、必然与偶然、原因与结果、可能与现实 三、认识论(3个核心、3大规律) 3个核心:实践、认识、真理 3大规律:实践与认识的辩证关系原理、认识发展律、真理发展律 四、历史观(2个核心、2大规律) 2个核心:社会、人 2大规律:社会发展律、社会发展与人的发展律 一、唯物论(2个核心、2大原理) 2个核心:物质、意识 物质(客观实在性) 物质是标志客观实在的哲学范畴,物质是对一切可感知的事物的共同本质的抽象,它的唯一特性是客观实在性。 意识(反映性) 1、(起源)意识与人脑:意识是人脑的机能,人脑是意识的物质器官。 2、(本质)意识与客观存在: (近似、能动、原形)意识是对客观存在近似的、能动的反映;任何意识都是客观存在的反映,都能从客观实在找到原形,也即没有被反映者就没有反映。 (内容与形式)意识的内容是客观的,但形式是主观的;意识体现了客观内容和主观形式的统一。 2大原理:唯物主义一元论(世界物质统一性原理)、物质和意识辩证关系原理 唯物主义一元论(世界物质统一性原理) (多样性的统一性在于物质性)世界是多样的,又是统一的;世界的统一性在于物质性;物质世界的统一,是多样性的统一:自然界和人类社会都具有物质统一性。 物质和意识辩证关系原理(意识对物质的依赖性原理、意识能动性原理) 1、意识对物质的依赖性原理,即物质第一性、意识第二性,意识的起源和本质的原理。 2、意识的能动作用,亦称为主观能动性,指意识能动地反映世界和指导实践,通过实践改造世界的能力和活动,是人之所以区别于物的特点。具体3表现①认识世界;②指导实践、改变世界;③对人体生理活动的控制和调节。 二、辩证法(2个核心、3大规律、4对范畴) 2个核心:联系、发展 联系(客观性、普遍性、多样性) 1、(内部要素及相互之间的关系)联系是指事物内部诸要素之间以及事物之间的相互影响、相互作用和相互制约。 2、(客观性)联系是客观的,凡真实的联系都是事物本身所固有的,人们可以从事物的固有联系中把握事物,但决不能用臆想的联系代替真实的联系,否则将陷入诡辩论。

oracle学习总结

--在pl/sql中 --将正式库的零售单A部分数据导到测试库的零售单B中,首先要链接两个数据库 -----创建一个DATABASE LINK /*-- Drop existing database link dropdatabaselink TEST; -- Create database link createdatabaselink TEST connectto NEANDS3 using'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.4)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl)))'; */ --然后将A表中的字段插入到B表中: insertinto m_retail(ID,C_STORE_ID,RETAILBILLTYPE,ISACTIVE,DOCNO,STATUS,BILLDATE,TOT_AMT_ACTUAL,CREATION DATE,REFNO,AD_CLIENT_ID ) selectID,C_STORE_ID,RETAILBILLTYPE,ISACTIVE,DOCNO,STATUS,BILLDATE,TOT_AMT_ACTUAL,CREATIONDAT E,REFNO,AD_CLIENT_ID from neands3.m_retail@test where status='2'and billdate='20140823' neands3:用户名 m_retail:表名 @test:链接的名称(已经创建好的) ---定时任务将M_RETAIL里的内容插入到新建的表M_RETAIL_MEN的存储过程: create or replace procedure P_M_RETAIL_MENDIAN(p_pi_id IN NUMBER) AS begin DELETE FROM M_RETAIL_MEN WHERE BILLDATE =TO_CHAR(BILLDATE ,'YYYYMMDD'); commit; insert into M_RETAIL_MEN(id,C_STORE_ID,BILLDATE,AMT_ACTUAL25) select get_sequences('M_RETAIL_MEN'),c_store_id,to_char(sysdate,'yyyymmdd'),sum(TOT_AMT_ACTUAL) from M_RETAIL t where t.billdate=to_char(sysdate,'yyyymmdd') and t.status='2' group by t.C_STORE_ID,t.BILLDATE; UPDATE AD_PInstance SET STATE = 'M', RESULT = 0, ModifiedDate = SYSDATE, ERRORMSG = NULL WHERE id = p_pi_id;---pl/sql存储过程自带的 end P_M_RETAIL_MENDIAN; get_sequences(部门):id自增 正则表达式: 在oracle里正则表达式有四个函数可用,分别是regexp_like、regexp_substr、regexp_instr

相关文档
最新文档