Oracle-常见的命令
--------------输入一下指令,按下快捷键 F8
select * from emp;
--------------创建表格
create table 表名(
字段名1 数据类型1,
字段名2 数据类型2,
字段名3 数据类型3,
................ ,
字段名n 数据类型n
);
--------------数据类型
1)、整数 -> 整型 - number 或 number(3)
1 2 3 666
2)、小数 -> 浮点型 - number(长度,小数的位数)
price number(7,2)
2975.00 1.23
3)、字符串 -> 字符串的特点:用单引号引住
char(长度) -> 固定长度
varchar2(长度) -> 可变长度
4)、日期 date
-------------- 关键字:表名,字段名不能和关键字冲突
create table stu(
stuId number,
stuName varchar2(20),
age number(3),
sex char(3),
birthday date
);
select * from stu;
drop table stu;
--------------创建具有约束条件的表格
create table 表名(
字段名1 数据类型1 约束条件,
字段名2 数据类型2 约束条件,
字段名3 数据类型3 约束条件,
................ 约束条件,
字段名n 数据类型n 约束条件
);
--------------约束条件
1、唯一:unique
2、非空:not null / null
3、默认:default 值
4、检查:check(检查的条件)
5、主键:primary key :包含唯一和非空两个约束
6、外键:references 主键所在的表名(主键名) :外键的值要和主键对应
(外键值,必须包含在主键内)
-> 主外键的作用:保证数据的一致性。
create table t_class(
cId number primary key,
cName varchar2(20) unique
);
create table student(
stId number primary key,
stName varchar2(20) not null,
sex char(3) default '男' check(sex = '男' or sex = '女'),
birthday date default sysdate,
classId number references t_class(cId)
);
select sysdate from dual;
drop table t_class;
drop table student;
------------------------------------------
/*
商品售货系统设计案例
现有一个商品的数据、记录客户及其购物情况,由下三张表组成
商品goods(商品号goodsid,商品名goodsname,单价untiprice,商品类别category,供应商provider)
客户customer(客户号customerid,姓名name,住址address,电邮email,性别sex,身份证cardid)
购买purchase(客户号customerid,商品号goodsid,购买数量nums)
1、每个表格要建立主键或外键,客户的姓名不能为空值;单价必须大于0,购买数量必须在1到30之间;
电邮不能重复;客户的性别必须是男或女,默认是男。
*/
----------------------------------------------------------
create table goods(
goodsid number primary key,
goodsname varchar2(30),
untiprice number(7,2) check(untiprice > 0),
ccategory varchar2(20),
provider varchar2(30)
);
create table customer(
customerid number primary key,
cname varchar2(20) not null,
address varchar2(50),
email varchar2(30) unique,
sex char(3) default '男' check(sex='男' or sex='女'),
cardid varchar2(18)
);
create table purchase(
customerid number references customer(customerid),
goodsid number references goods(goodsid),
-- nums number check(nums >= 1 and nums <= 30)
nums number check(nums between 1 and 30)
);
select * from stu;
--------------查看表结构
步骤:
1、新建一个command window
2、输入命令:desc 表名;
--------------增加表的字段
alter table 表名 add(
字段1 数据类型1 约束条件,
....
);
alter table stu add(shengao number(4,2) not null,tizhong number(5,2));
--------------修改表的字段
alter table 表名 modify(
被修改的字段1 数据类型1 约束条件,
....
);
alter table stu modify(tizhong number(7,2));
--------------删除表的字段
alter table 表名 drop column 字段名;
alter table stu drop column tizhong;
--------------删除整张表
drop table 表名;
drop table stu;
-------------------------------------------
create table 宿舍表(
宿舍号 char(6) primary key,
宿舍电话 number(7) check(宿舍电话 between 6330000 and 6339999)
);
create table 同学表(
学号 char(6) primary key,
姓名 varchar2(30) not null,
性别 char(3) check(性别 = '男' or 性别 = '女'),
年龄 number not null,
民族 varchar2(10) default '彝族' not null,
身份证号 varchar2(18) unique,
宿舍号 char(6) references 宿舍表(宿舍号)
)
-------------------------------------------
select * from emp;
select * from dept;
--------------1、全表查询
语法:
select * / 字段名1,字段名2,...,字段名n
from 表名;
* -> 表示一个表的所有字段
-------------------------------------------
select *
from emp;
---------
select empno,ename,sal
from emp;
--------------2、条件查询
-- 比较运算符: > >= < <= !=或者<> = ,比较运算符两边的数据类型一样
语法:
select * / 字段名1,字段名2,...,字段名n
from 表名
where 查询条件;
-- 例:查询20号部门中全体员工的姓名、工资、和工种的有关信息。
select ename,sal,job
from emp
where deptno = 20;
-- 练习:查找出奖金超过其工资的雇员的姓名、工资、奖金和工种的信息。
select ename,sal,comm,job
from emp
where comm > sal;
--------------3、指定字段的重复值,只返回一行 -- 去重
语法:distinct 字段
select distinct deptno from emp;
-- 例:查找出20号部门中有多少种不同的工种。
select distinct job
from emp
where deptno = 20;
--------------4、多逻辑运算符 and or --- 用来连接多个条件
-- 例:查找出全部经理 和 第10号部门秘书的有关信息
select *
from emp
where job = 'MANAGER' or job = 'CLERK' and deptno = 10;
-- 查找出不是30号部门中的所有经理的所有信息。
select *
from emp
where job = 'MANAGER' and deptno != 30;
--------------5、多值比较运算符
-- 字段 between 值1 and 值2
-- 字段 in(指定的值)
-- 例:查找出工资在2000到3000之间的职工姓名、工种和工资
select ename,job,sal
from emp
where sal between 2000 and 3000;
-- 例:查询出全部秘书、分析员或推销员的姓名、工种、工资和所在部门号
select ename,job,sal,deptno
from emp
where job = 'CLERK' or job = 'ANALYST' or job = 'SALESMAN';
----------
select ename,job,sal,deptno
from emp
where job in('CLERK','ANALYST','SALESMAN');
-- 练习:查找出工资在2500到3500之外的职工姓名、工种和工资
select ename,job,sal
from emp
where sal not between 2500 and 3500;
-- 练习:查询出工资分别是1500,2500,3000的分析员或推销员的姓名、工种、工资和所在部门号
select ename,job,sal,deptno
from emp
where sal in(1500,2500,3000) and job in('ANALYST','SALESMAN');
--------------6、模糊查询
关键字: like
匹配符:
% -> 匹配任意长度的字符串
'ABC%' -> 表示匹配以ABC开头的任意字符串
'%ABC%' -> 表示匹配包含ABC的任意字符串
'%ABC' -> 表示匹配以ABC结尾的任意字符串
_ -> 匹配任意单个字符
A_C ->表示配以A开头,C结尾的任意三个字符串
A__C ->表示配以A开头,C结尾的任意四个字符串
AC_ ->表示配以AC开头的任意三个字符串
-- 例:查询出名字以"MA"开头的全部职工的姓名、工种、工资和部门号
select ename,job,sal,deptno
from emp
where ename like 'MA%';
-- 例:查询出名字以"SCO"开头的,长度为5位的全部职工的姓名、工种、工资和部门号
select ename,job,sal,deptno
from emp
where ename like 'SCO__';
练习:
1、查找出所有工种以'MANAG'开头的职工姓名、工种和工资
select ename,job,sal
from emp
where job like 'MANAG%';
2、查找出所有姓名以'ALLE'开头,且长度为5的职工姓名、工种和工资
select ename,job,sal
from emp
where ename like 'ALLE_';
--------------7、查找空值 is null 非空 is not null
select *
from emp
where comm is null;
select *
from emp
where comm is not null;
--------------8、排序 order by 字段 -->根据指定字段进行排序
语法:
select * / 字段 / 表达式
from 表
where 单条数据的过滤条件
order by 字段1/表达式 asc,字段2/表达式 desc;
-- asc 表示升序,默认为升序
-- desc 表示降序
-- order by 字段1 asc,字段2 desc -- 先根据字段1进行升序;
-- 如果字段1存在重复的值,则根据字段2降序
-- 例:计算每个销售人员的年度总报酬,并按总报酬由高到低顺序显示
select (sal+comm)*12 年度总报酬
from emp
where job = 'SALESMAN'
order by (sal+comm)*12 desc;
练习:
1、查找出工资高于1000元的职工的姓名、工种、工资和部门号,并按部门号由小到大排序显示
select e.ename,e.job,e.sal,e.deptno
from emp e
where e.sal > 1000
order by e.deptno;
2、查找出奖金超过本人基本工资3%的职工的姓名,工资,奖金,奖金与工资的比例,
并按其比例由高到低显示
select e.ename,e.sal,e.comm,e.comm/e.sal 奖金与工资的比例
from emp e
where e.comm > e.sal * 0.03
order by e.comm/e.sal desc;
3、按工种升序,而同工种按工资降序排列显示全部职工的姓名,工种,工资。
select e.ename,e.job,e.sal
from emp e
order by e.job,e.sal desc;
----------------------------------------------------------------------------------------------
select * from t_class;
select * from student;
--------------9、向表中添加数据
语法:
insert into 表名(字段1,字段2,...,字段n) values(值1,值2,...,值n);
insert into t_class(cid,cname) values(1,'软件测试班');
insert into t_class(cid,cname) values(2,'JAVA开发班');
insert into student(stid,stname,sex,birthday,classid)
values(1,'小王','男',sysdate,2);
insert into student(stid,stname,sex,classid)
values(2,'小吴','男',2);
insert into student(stid,stname,birthday,classid)
values(3,'小花',sysdate,1);
insert into student
values(4,'小米','男',sysdate,2);
rollback; -- 撤销/回滚
commit; -- 将数据永久保存到数据库
-- 将具有日期格式的字符串转换为日期类型
语法:to_date('被转换的字符串','日期格式')
to_date('1997-07-01','YYYY-MM-DD')
--- (5,'小明','男','1997-07-01',1)
insert into student(stid,stname,sex,birthday,classid)
values(5,'小明','男',to_date('1997-07-01','YYYY-MM-DD'),1);
-- 练习:在emp表中,查找1981-05-01之前入职的员工信息
select *
from emp e
where e.hiredate < to_date('1981-05-01','YYYY-MM-DD');
--------------10、修改表中的数据
语法:
update 表名
set 字段1 = 值1,字段2 = 值2,...,字段n = 值n
where 单条数据的过滤条件;
update student
set stname = '老王'
where stname = '小王';
-- 将小花的性别插入对应的单元格
update student
set sex = '女'
where stname = '小花';
--------------11、删除表中的数据
语法:
delete 表名
where 单条数据的过滤条件;
delete student
where stname = '小王';
select * from t_class;
select * from student order by classid;
-- 练习:把cid为1的所有数据都删掉
/*
如果删除的数据涉及两张表,要先删除外键所在的表的数据,再删主键所在的表的数据
*/
delete student where classid = 1;
delete t_class where cid = 1;
-------------
truncate table 表名;
truncate table student;
truncate table t_class;
删除数据
delete:可以加where条件,数据可以回滚,删除速度慢
truncate:不可以加where条件,不数据可以回滚,删除速度快
drop:删除整个表
drop table student;
drop table t_class;
---------------------------------------------
select * from emp;
-------------- 12、聚合函数/统计函数/分组函数
count(*) -> 统计当前表格的行数
select count(*) from emp;
count(字段) -> 统计指定字段的非空行数
select count(comm) from emp;
-- 练习:统计emp表中,comm字段为空的行数
select count(*) from emp where comm is null;
select count(*)-count(comm) from emp;
avg(字段) -> 统计指定字段的平均值
select avg(sal) from emp;
---round(m,n) 精确到小数点的指定位数
select round(avg(sal),2) 平均值 from emp;
select round(avg(sal+nvl(comm,0)),2) 平均值 from emp;
sum(字段) -> 统计指定字段的和
select sum(sal) from emp;
-- nvl(m,n) 空值处理函数
select sum(sal+nvl(comm,0)) from emp;
min(字段) -> 统计指定字段的最小值
select min(sal) from emp;
max(字段) -> 统计指定字段的最大值
select max(sal) from emp;
----------
select count(*),count(comm),avg(sal),sum(sal),min(sal),max(sal)
from emp;
-- 例:计算emp表中公司职工的总人数及工种数
select count(*) 总人数,count(distinct job) 工种数
from emp;
-- 练习:计算全部销售员的年平均报酬。
select avg(sal)*12 年平均报酬
from emp
where job = 'SALESMAN';
--------------13、分组统计 group by 字段
select 字段 / 统计函数
from 表
where 单条数据的过滤条件
group by 字段1,字段2; -- 先按字段1分组,再在字段1内按字段2分组
-- 例:计算出公司支付给每个工种的总工资
select job,sum(sal)
from emp
group by job;
-- 例:计算每个部门中每种工种各有多少职工数。
select deptno,job,count(*)
from emp
group by deptno,job
order by deptno;
--- 求每个部门有多少职工
select deptno,count(*)
from emp
group by deptno;
-- 练习:统计各部门的人数。
select deptno,count(*)
from emp
group by deptno;
--- 对分组后的数据做过滤 having 分组后的过滤条件
select 字段 / 统计函数
from 表
where 单条数据的过滤条件
group by 字段
having 分组函数的比较表达式
order by 字段;
-- 例:查询各工种组的年平均工资,要求每个工种组至少在2人以上
select job,avg(sal)*12 年平均工资,count(*)
from emp
group by job
having count(*) > 2;
练习1:查询出至少有两名秘书的所有部门的部门号,并按人数降序排序。
select deptno,count(*)
from emp
where job = 'CLERK'
group by deptno
having count(*) >= 2
order by count(*) desc;
练习2:查询出所有经理和销售人员的年平均工资,并按年平均工资降序排
select job,avg(sal)*12 年平均工资
from emp
where job in('MANAGER','SALESMAN')
group by job
order by avg(sal)*12 desc;
select job,avg(sal)*12 年平均工资
from emp
group by job
having job in('MANAGER','SALESMAN')
order by avg(sal)*12 desc;
----------------------------------------------------------------------------------------------
--- 1、多表查询
-- 例:查找名字为"ALLEN"的职工所在的部门号、部门名和部门所在地
select d.deptno,d.dname,d.loc
from emp e,dept d
where e.deptno = d.deptno and e.ename = 'ALLEN';
-- 查询部门号是20,30,40的职工的员工编号,姓名,工资,部门所在位置。
select e.empno,e.ename,e.sal,d.loc
from emp e,dept d
where e.deptno = d.deptno and d.deptno in(20,30,40);
group by
having
order by
--- 查询的思路 ---
1、分析题目需求,确认查询的数据涉及哪些表;
2、如果查询的数据需要来源于多张,就要将表的相同字段在where后面用等于号连接起来;
3、如果需要对单条数据做过滤,就要将过滤条件追加到where字句后面,并用and连接;
4、如果需要对多组数据分别做统计,就要用到group by字句;
5、如果需要对分组后的数据做过滤,就要用到having字句;
6、如果需要对数据进行排序,就要用到order by字句。
-- 显示部门号为10的部门名、员工号和工资
select d.dname,e.empno,e.sal
from emp e,dept d
where e.deptno = d.deptno and d.deptno = 10;
-- 显示雇员名,雇员工资及所在的部门的名字,并按部门名排序
select e.ename,e.sal,d.dname
from emp e,dept d
where e.deptno = d.deptno
order by d.dname;
-- 显示平均工资高于2000的部门号和它的平均工资
select e.deptno,avg(e.sal)
from emp e
group by e.deptno
having avg(e.sal) > 2000;
-----------------------------------------------
select * from emp order by deptno;
select * from dept;
select e.*,d.*
from emp e,dept d
where e.deptno = d.deptno order by d.deptno;
--- 1、外连接:左连接,右连接 连接符:(+)
左连接:
select * / 字段 / 表达式 / 分组函数
from 表名1 表名1的别名, 表名2 表名2的别名
where 表名1的别名.字段 = 表名2的别名.字段(+);
--- 左连接
select e.*,d.*
from emp e,dept d
where e.deptno = d.deptno(+) order by d.deptno;
------------------------------------------------------------------------
右连接:
select * / 字段 / 表达式 / 分组函数
from 表名1 表名1的别名, 表名1 表名2的别名
where 表名1的别名.字段(+) = 表名2的别名.字段;
--- 右连接
select e.*,d.*
from emp e,dept d
where e.deptno(+) = d.deptno order by d.deptno;
-- 练习:显示出所有部门的编号、名称和其职工的姓名与工种。
select d.deptno,d.dname,e.ename,e.job
from dept d,emp e
where d.deptno = e.deptno(+);
-------------------------------------------------------------------------
select d.deptno,d.dname,e.ename,e.job
from dept d left join emp e on d.deptno = e.deptno;
select d.deptno,d.dname,e.ename,e.job
from dept d right join emp e on d.deptno = e.deptno;
-- 练习:列出无雇员的部门的情况。
select d.*
from dept d,emp e
where e.deptno(+) = d.deptno and e.empno is null;
---2、子查询/嵌套查询 子查询,需要用小括号括住
-- 例:查找出与“SMITH”在同一个部门工作的所有职工姓名及工资
select e.ename,e.sal
from emp e
where e.deptno = ('SMITH'所在的部门号);
--'SMITH'所在的部门号
select deptno
from emp
where ename = 'SMITH'
--
select e.ename, e.sal,e.deptno
from emp e
where e.deptno = (select deptno from emp where ename = 'SMITH');
----------
(1)、查找出工资比"SCOTT"工资高的职工的名字,工种,工资和所在的部门号,并按工资升序排序。
select e.ename,e.job,e.sal,e.deptno
from emp e
where e.sal > ("SCOTT"的工资)
order by e.sal;
-- "SCOTT"的工资
select sal from emp where ename = 'SCOTT'
----
select e.ename, e.job, e.sal, e.deptno
from emp e
where e.sal > (select sal from emp where ename = 'SCOTT')
order by e.sal;
(2)、查找出工资比"SCOTT"高,并且在"NEW YORK"工作的职工的有关情况。
select *
from emp e,dept d
where e.deptno(+) = d.deptno
and e.sal > ("SCOTT"的工资)
and d.loc = 'NEW YORK';
-- "SCOTT"的工资
select sal from emp where ename = 'SCOTT'
----
select *
from emp e, dept d
where e.deptno(+) = d.deptno
and e.sal > (select sal from emp where ename = 'SCOTT')
and d.loc = 'NEW YORK';
(3)、查找出具有最高月工资的雇员的姓名、工种和工资。
select e.ename,e.job,e.sal
from emp e
where e.sal = (最高月工资);
-- 最高月工资
select max(sal) from emp
----
select e.ename, e.job, e.sal
from emp e
where e.sal = (select max(sal) from emp);
(4)、查找出在"CHICAGO"工作的职工的姓名、工种和工资。
select e.ename,e.job,e.sal
from dept d,emp e
where e.deptno(+) = d.deptno and d.loc = 'CHICAGO';
---
select e.ename,e.job,e.sal
from emp e
where e.deptno = (在CHICAGO的部门号);
--在CHICAGO的部门号
select deptno from dept where loc = 'CHIGAGO'
---
select e.ename,e.job,e.sal
from emp e
where e.deptno = (select deptno from dept where loc = 'CHIGAGO');
--- 例:查找出部门10与部门30中工种相同的职工的姓名和工种。
select e.ename,e.job
from emp e
where e.deptno = 10 and e.job in(30号部门的工种);
-- 30号部门的工种
select distinct job from emp where deptno = 30
--
select e.ename, e.job
from emp e
where e.deptno = 10
and e.job in (select distinct job from emp where deptno = 30);
-----------------------------------
-- 查找出工资在1000到3500元之间的职工所在部门的所有人员的有关信息。
select e.*
from emp e
where e.deptno in (工资在1000到3500元之间的部门号);
-- 工资在1000到3500元之间的部门号
select distinct deptno from emp where sal between 1000 and 3500
-----
select e.*
from emp e
where e.deptno in
(select distinct deptno from emp where sal between 1000 and 3500);
-- 查找出工种在部门10中没有的其他部门职工的姓名、工种和工资信息。
select e.ename,e.job,e.sal
from emp e
where e.job not in(10部门的工种);
-- 10部门的工种
select distinct job from emp where deptno = 10
---
select e.ename, e.job, e.sal
from emp e
where e.job not in (select distinct job from emp where deptno = 10);
-- 查找出部门20中的工种相同的职工的姓名与工种。
select e.ename,e.job
from emp e
where e.deptno = 20 and e.job in(20号部门的相同工种);
-- 20号部门的相同工种
select job
from emp
where deptno = 20
group by job
having count(*) >= 2
-----
select e.ename, e.job
from emp e
where e.deptno = 20
and e.job in (select job
from emp
where deptno = 20
group by job
having count(*) >= 2);
-- 查找出10号部门中的工种与销售部门中任何职工工种相同的职工的信息。
select *
from emp e,dept d
where e.deptno(+) = d.deptno
and e.deptno = 10
and e.job in(销售部门的工种);
-- 销售部门的工种
select distinct job
from dept de,emp em
where de.deptno = em.deptno
and de.dname = 'SALES'
--------
select *
from emp e, dept d
where e.deptno(+) = d.deptno
and e.deptno = 10
and e.job in (select distinct job
from dept de, emp em
where de.deptno = em.deptno
and de.dname = 'SALES');
-- from 子查询
select * from emp;
select * from (select * from emp);
select * from (select empno,ename from emp);
---- 伪列:rownum -----
select rownum,e.* from emp e
--- 查询表的前10行
select rownum,e.* from emp e where rownum <= 10;
--- rownum不属于任何一个表
select e.rownum,e.* from emp e
--- 查询表的第5到第10行 -- rownum不能跨过1而存在
select * from (select rownum rn,e.* from emp e)
--
select * from (select rownum rn,e.* from emp e) t
where t.rn < 5;
--
select * from (select rownum rn,e.* from emp e) t
where t.rn between 5 and 10;
-- 练习:查询一个表的后5行
select * from (select rownum rn,e.* from emp e) t
where t.rn < 5;
select *
from (select rownum rn, e.* from emp e) t
where t.rn > (select count(*) - 5 from emp);
Oracle-常见的命令的更多相关文章
- 【原创】ORACLE常见使用问题解决
ORACLE常见使用问题解决 一.安装了oracle客户端后,发现plsql客户端找不到之前已经配置过的TNS连接信息 或许大家再使用ORACLE软件的过程中,经常会遇到这样的问题: 问题现象描述: ...
- Data Base oracle常见错误及解决方案
Data Base oracle常见错误及解决方案 一.TNS协议适配器错误: 原因: 此问题的原因都是由于监听没有配置好. 解决: 1.打开oracle工具Net Manager,删除服务及监听,重 ...
- Oracle手边常用命令及操作语句
Oracle手边常用命令及操作语句 作者:白宁超 时间:2016年3月4日11:24:08 摘要:日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规操作. ...
- Oracle Tuning 基础概述01 - Oracle 常见等待事件
对Oracle数据库整体性能的优化,首先要关注的是在有性能问题时数据库排名前几位等待事件是哪些.Oracle等待事件众多,随着版本的升级,数量还在不断增加,可以通过v$event_name查到当前数据 ...
- 常见linux命令释义(第八天)—— Bash Shell 的操作环境
换了新公司,公司的领导很不错.自己感受比较多的地方是,自己的工作效率明显比以前高了.以前会对频繁变动的需求十分不耐烦,现在接到需求后会仔细的思考,进行整体构建.即使以后需求有变动,也能够比较轻易的在原 ...
- oracle中imp命令详解 .
转自http://www.cnblogs.com/songdavid/articles/2435439.html oracle中imp命令详解 Oracle的导入实用程序(Import utility ...
- Ubuntu下VSFTPD(六)(常见FTP命令及其功能) (
常见FTP命令及其功能 FTP 命令 功能 FTP 命令 功能 ls 显示服务器上的目录 ls [remote-dir][local-file] 显示远程目录remote-dir,并存入本地文件 ...
- oracle中imp命令具体解释
oracle中imp命令具体解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...
- oracle 11g常用命令
1.监听启动监听lsnrctl start停止监听 lsnrctl stop 查看监听状态 lsnrctl status 2.启动用oracle用户进入su - oracle运行sqlplus命令,进 ...
- python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客
python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客 python datetime模块strptime/strptime form ...
随机推荐
- C#数据结构与算法系列(八):栈(Stack)
1.介绍 栈是一个先入后出(FILO-First In Last Out)的有序列表 栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的特殊线性表.允许插入和删除的一端,为变化的一端,称为栈顶 ...
- 乌班图设置C++11
zsh: echo "alias g++='g++ -std=c++11'" >> ~/.zshrc source ~/.zshrc bash: echo " ...
- Redis快照原理详解
本文对Redis快照的实现过程进行介绍,了解Redis快照实现过程对Redis管理很有帮助. Redis默认会将快照文件存储在Redis当前进程的工作目录中的dump.rdb文件中,可以通过配置dir ...
- Mybatis各语句高级用法(未完待续)
更多的语法请参考官网 http://www.mybatis.org/mybatis-3/dynamic-sql.html# 环境:MySQL5.6,jdk1.8 建议:所有的参数加上@Param re ...
- android 6.0 以上在doze模式精确定时
public static void start12hAlarm() { int seconds = TIMERLENGTH; ECMLog.i_ecms(CLASS_TAG, " star ...
- 实时web应用方案——SignalR(.net core)
何为实时 先从理论上解释一下两者的区别. 大多数传统的web应用是这样的:客户端发起http请求到服务端,服务端返回对应的结果.像这样: 也就是说,传统的web应用都是客户端主动发起请求到服务端. 那 ...
- dart快速入门教程 (7.3)
7.4.抽离类为单独文件 新建一个文件,单独存放一个类,例如:Person类抽离到person.dart文件中 class Person { final String name; final num ...
- html+css快速入门教程(5)
练习: 1.画盒子1 2.画盒子2 3.京东特色购物 4.京东发现好货 5.京东玩3c 7.3 定位 通过使用 position 属性,我们可以选择 3 种不同类型的定位,这会影响元素框生成的方式. ...
- .net Core中如何读取Appsetting配置文件
现在APPSetting下面配置以下节点 { "Logging": { "IncludeScopes": false, "LogLevel" ...
- JavaScript基础函数的配置对象Configuration Objects(020)
配置对象通常用在API库的实现中,当程序中需要编写要多次的模块,也可以采用这种模式.这种模式的好处是接口明确,扩展方便.比如,一个 addPerson在设计的最初需要两个参数作为初始化时人的姓名: f ...