8月1

DML:select  insert  update  delete(CRUD)

Union和unionall 是重复值的区别  unionall是把所有重复值全保留下来,union是把重复值只保留一个。

Intersect交集。两个表都有,重复的部分。

Minus集合的差。

集合查询时,列的数量和数值类型是一样的。

集合排序时,order by必须写在最后。

Insert不管怎么变化,values只代表一行数据。

update更新是说更新列的值

Transactions(交易)的几个特性:

A原子性

C一致性

I隔离性

D持久性

Ddl不会改变数据库内部结构。比如:create  alter   drop

命名必须以字母开头,列名也必须以字母开头,数据库里合法的字符集都可以作为对象

字符类型:

Char定长

Varchar2 可变长度

约束:

字段:not null(非空)   check(检查约束)

行与行之间:primarykey (PK)主键(非空而且唯一)  unique 唯一性约束(所有的行在一列上必须是唯一的,可以为空)

表与表之间:

Foreign key(references)  外键:确保用户所写的编号是真实存在的

集合操作

select employee_id, job_id from employees

union all

select employee_id, job_id from job_history;

select employee_id, job_id from employees

union

select employee_id, job_id from job_history;

select employee_id, job_id from employees

intersect

select employee_id, job_id from job_history;

select employee_id from employees

minus

select employee_id from job_history;

select employee_id, job_id, salary from employees

union all

select employee_id, job_id, null from job_history;

select employee_id, job_id, to_char(salary) from employees

union all

select employee_id, job_id, ‘no salary‘ from job_history;

集合排序:

select employee_id, job_id, salary from employees

union all

select employee_id, job_id, null from job_history

order by salary;

select employee_id, job_id, null from job_history

union all

select employee_id, job_id, salary from employees

order by 3;

DML

insert:

SQL> create table t1(x int, y char(1), z date);

SQL> insert into t1(x, y, z) values (1, ‘a‘, sysdate);

SQL> insert into t1(x, z, y) values (2, sysdate+1, ‘b‘);

SQL> insert into t1(x, y, z) values (1, null, sysdate);

SQL> insert into t1(x, z) values (2, sysdate+1);

SQL> insert into t1 values (1, null, sysdate);

SQL> create table my_emp as select * from employees;

SQL> create table my_emp as select last_name, salary from employees where department_id=50;

SQL> create table avg_sal as select department_id, avg(salary) avg_sal from employees group by department_id;

SQL> create table my_emp as select * from employees where 1=0;

SQL> insert into my_emp select * from employees;

update:

SQL> update my_emp set salary=salary*1.1;

SQL> update my_emp set salary=salary*1.1 where department_id=50;

SQL> update my_emp set salary=salary*1.1, commission_pct=0.5 where employee_id=197;

delete:

SQL> delete from my_emp where employee_id=197;

SQL> delete from my_emp where department_id=50;

SQL> delete from my_emp;

子查询:

SQL> create table my_emp as select * from employees;

SQL> alter table my_emp add(department_name varchar2(30));

SQL> update my_emp outer set department_name=(select department_name from departments where department_id=outer.department_id);

update (select t1.department_name as aname,t2.department_name bname from my_emp t1 ,departments t2 where t1.department_id=t2.department_id) set aname=bname;

练习:

在new_dept表中删除没有员工的部门

SQL> create table my_dept as select * from departments;

delete from my_dept outer

where not exists

(select 1 from my_emp

where department_id=outer.department_id);

delete和truncate:

delete            truncate

语句类型 dml            ddl

undo数据 产生大量undo数据            不产生undo数据

空间管理                  不释放            释放

语法 where            删除全部数据(回车自动生效,不能恢复)

DDL

字符串:

SQL> create table t1(x char(10), y varchar2(10));

SQL> insert into t1 values(‘x‘, ‘y‘);

SQL> select dump(x), dump(y) from t1;

数值:

SQL> create table t1(x number(5,2), y number(5));

SQL> insert into t1 values (123.45, 12345);

SQL> insert into t1 values (12.345, 12345);

SQL> insert into t1 values (12.345, 123.45);

SQL> select * from t1;

SQL> insert into t1 values (12.345, 112345);

日期时间:

SQL> create table t1(a date, b timestamp, c timestamp with time zone, d timestamp with local time zone);

SQL> insert into t1 values (sysdate, systimestamp, systimestamp, systimestamp);

SQL> alter session set time_zone=‘+9:00‘;

SQL> select * from t1;

修改表结构:

SQL> alter table t1 add(e char(10));

SQL> alter table t1 drop(e);

SQL> alter table t1 modify(d not null);

约束条件:

字段(列):not null, check(salary>0)

行与行:primary key, unique

表与表之间:foreign key

create table dept (

deptno int constraint dept_deptno_pk primary key,

dname varchar2(20) constraint dept_dname_nn not null);

create table emp (

empno int constraint emp_empno_pk primary key,

ename varchar2(20) constraint emp_ename_nn not null,

email varchar2(50) constraint emp_email_uq unique,

salary int constraint emp_salary_ck check(salary>0),

deptno int constraint emp_deptno_fk references dept(deptno))

SQL> select constraint_name, constraint_type from user_constraints where table_name in(‘DEPT‘, ‘EMP‘);

SQL> insert into emp values (100, ‘abc‘, ‘[email protected]‘, 10000, 10);

insert into emp values (100, ‘abc‘, ‘[email protected]‘, 10000, 10)

*

ERROR at line 1:

ORA-02291: integrity constraint (HR.EMP_DEPTNO_FK) violated - parent key not

found

SQL> insert into dept values (10, ‘sales‘);

1 row created.

SQL> insert into dept values (10, ‘market‘);

insert into dept values (10, ‘market‘)

*

ERROR at line 1:

ORA-00001: unique constraint (HR.DEPT_DEPTNO_PK) violated

SQL> insert into dept values (20, ‘market‘);

1 row created.

SQL> commit;

Commit complete.

SQL> insert into emp values (101, ‘def‘, ‘[email protected]‘, 10000, 20);

create table emp (

empno int constraint emp_empno_pk primary key,

ename varchar2(20) constraint emp_ename_nn not null,

email varchar2(50) constraint emp_email_uq unique,

salary int constraint emp_salary_ck check(salary>0),

deptno int constraint emp_deptno_fk references dept(deptno) on delete set null)或者on delete cascade

instead of trigger视图触发器

序列:

SQL> create sequence test_seq increment by 1 start with 1 maxvalue 1000 nocycle cache 20;

SQL> create table t1(x int primary key, y int);

SQL> insert into t1 values (test_seq.nextval, 11); 反复执行

SQL> select * from t1;

索引:

主键和唯一性约束自动创建索引:

SQL> select constraint_name, constraint_type from user_constraints where table_name=‘EMPLOYEES‘;

SQL> select index_name, index_type from user_indexes where table_name=‘EMPLOYEES‘;

SQL> set autot on

SQL> select last_name from employees where employee_id=100; 走索引

SQL> select email from employees; 走索引

SQL> select last_name from employees where salary=2100; 全表扫描

SQL> create index emp_salary_ix on employees(salary);

SQL> select last_name from employees where salary=2100; 走索引

SQL> set autot off

时间: 2024-10-24 09:44:32

8月1的相关文章

2017年5月26日 20:56:11

自己写api文档. 不要自负的认为自己不需要文档,你不需要别人需要啊.看了一个月的别人的接口文档,今天学着自己动手写api文档. api文档最重要的包括: 接口名 言简意赅 GetActivityModel 接口作用 再次翻译一下上面接口名字是什么意思 接口参数:input 元素 类型 是否必须 名称 描述 ID int 必须 userID 用户唯一主键 primary key prefession name string 必须 prefessionName 职业名称 isDimission 

老男孩教育每日一题-2017年5月11-基础知识点: linux系统中监听端口概念是什么?

1.题目 老男孩教育每日一题-2017年5月11-基础知识点:linux系统中监听端口概念是什么? 2.参考答案 监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,可以按照下图简单进行理解? 将整个服务器操作系统比喻作为一个别墅 服务器上的每一个网卡比作是别墅中每间房间 服务器网卡上配置的IP地址比喻作为房间中每个人 而房间里面人的耳朵就好比是监听的端口 当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤当别墅外面的用户向房间1的人呼喊时

用PHP打印出前一天的时间,打印格式是2007年5月10日22:21:21

答案1: <?php echo date('Y'.'年'.'m'.'月'.'d'.'日'.' H:i:s',strtotime('-1 day')); 输出结果: Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() f

统计机构:2016年9月Win10全球市场份额轻微下滑

10月2日消息,根据操作系统市场数据统计机构Net Applications报告,在2016年9月份Win10全球市场份额实际上出现了轻微下滑趋势,这有点出乎大家的意料. 此前报道,在8月份微软已经停止向Win7.Win8.1用户推送Win10免费升级服务,当时Windows10市场份额已经达到22.99%,根据Net Applications的2016年9月份数据显示,Win10份额轻微下滑到22.53%. 在这份报告中,Win7系统依然是大丰娱乐桌面操作系统老大,份额为48.27%,相比8月

2016年9月全球桌面系统份额:Win7为39.38%,Win10达

10月1日消息,数据调研机构StatCounter目前给出了2016年9月份全球茗彩娱乐桌面系统市场份额统计排名,数据显示,Win10的增长势头依然良好,在市场份额上和目前排名第一的Win7还有15%左右的差距. 虽然微软在7月29日停止了Windows10免费更新服务,虽然此前微软在2018财年创造10亿Win10用户的目标看起来已经无法实现,但Win10推出后的整体势头依然有目共睹.根据StatCounter的数据,截止2016年9月,Win10已经占据24.46%的市场份额,而Win7为3

月订单超6000,汉腾X7何以引领国产SUV风潮?

随着生活消费水平的不断提升,越来越多的家庭用户在出行购车方面,越发开始着重选择实用与功能性车型为主,而SUV作为家居型首选车行,一时之间便理所当然低成为大多家庭用户的关注目标.在这种情况下,面对市场需求而相继推出的SUV车型数不胜数,除了博越.RX5.长安CX70.风光580等品牌车型外,刚刚于9月初上市的汉腾X7更是以极优的性价比和独特的设计外观成为市场的新宠,尤其是其上市第一个月订单就超过6000多台的好成绩,更是刷新了国产SUV的市场新高度. 那么,这款SUV究竟有哪些创新之处呢? 1.外

读&lt;&lt;人月神话&gt;&gt;

这本书在软件领域知名度很高,每次看到年度推荐的文章里面都有这本书且强烈推荐.出版30年了,可谓经典. 但我在读的过程中并没有那么深的体会.书中很多章节都是基于大型项目或者大型系统的经验总结,至今为止我还没有参与大于30人的项目.只能说自己的境界还不够. 第一章,焦油坑 再也找不到一个词比焦油坑更能形容,软件开发的过程了.我们都在挣扎.计划,计划,不断计划,但还是拖延,拖延,拖延.... 职业的乐趣: 创造性,贡献助人为乐,过程的魅力或者解决问题的成就感或写代码的快感,持续学习新事物,驾驭感. 职

WINDOWS 10 企业版LTSB 2015年11月补丁更新情况

WINDOWS 10 企业版LTSB 2015年11月补丁与其他WINDOWS 10版本自动更新KB3105213,按微软对LTSB的规划,LTSB不会轻易增加新功能,所以不会收到其他版本推送的1511更新包,安装这个KB3105213不会改变LTSB内部版本号,LTSB目前内部版本号还是10240, 不会更新到10586版本. LTSB的内部版本按以前的官方说明,一年只会升级一次

有关微软技术方向的最新学习资源【2015-9月】

Vs下载 : https://www.visualstudio.com/?Wt.mc_id=DX_MVP5000709 从vs 2013到vs2015http://blogs.msdn.com/b/cdndevs/archive/2015/08/25/moving-to-vs-2015-from-vs-2013.aspx?WT.mc_id=dx_MVP5000709 Azure 9月29的在线会议 : https://azure.microsoft.com/en-us/azurecon/?WT.

2015年9月5日--课后作业

1.总结Linux系统上的任务计划(at.crontab)的详细使用方法: at命令: 承载未来时间运行的某作业: 支持使用作业队列: 默认为a队列: Ctrl+d at [option]... TIME TIME: (1) 绝对时间 HH:MM, MMDD[CC]YY, MM/DD/[CC]YY, DD.MM.[CC]YY or [CC]YY-MM-DD tomorrow (2) 相对时间 now+#UNIT minute, hour, day, week (3) 模糊时间 midnight