08-SQL语法二

1.rz 弹出对话框 CRT软件才有的

2.window--》linux

  winscp 绿色

3. scp

将文件/文件夹 从A机器传到B机器

hadoop000:

scp jepson.log      192.168.137.141:/tmp

scp xxx.log    root@hadoop001:/tmp

scp -r /ruozedata root@hadoop001:/tmp

升级版:

scp root@hadoop001:/tmp/jepson.log  /tmp

4.ssh   

ssh hadoop001                  登录其他机器

ssh root@hadoop001            登录其他机器

ssh hadoop001  date      将命令在目标机器执行,结果返回

5.ssh-keygen 做多台机器间  互相信任 

http://blog.itpub.net/30089851/viewspace-1992210/

文件夹: ~/.ssh

生成:

rm -rf ~/.ssh

[root@hadoop000 ~]# ssh-keygen

[root@hadoop001 ~]# ssh-keygen

选择第一台作为先完善的机器

[root@hadoop000 .ssh]# cat id_rsa.pub >> authorized_keys

其他机器将id_rsa.pub发送给第一台

[root@hadoop001 .ssh]# scp id_rsa.pub  192.168.137.251:/root/.ssh/id_rsa.pub.hadoop001

[root@hadoop002 .ssh]# scp id_rsa.pub  192.168.137.251:/root/.ssh/id_rsa.pub.hadoop001

[root@hadoop003 .ssh]# scp id_rsa.pub  192.168.137.251:/root/.ssh/id_rsa.pub.hadoop001

[root@hadoop004 .ssh]# scp id_rsa.pub  192.168.137.251:/root/.ssh/id_rsa.pub.hadoop001

将其他机器的id_rsa.pub追加到authorized_keys

[root@hadoop000 .ssh]# cat id_rsa.pub.hadoop001 >> authorized_keys

[root@hadoop000 .ssh]# cat id_rsa.pub.hadoop002 >> authorized_keys

[root@hadoop000 .ssh]# cat id_rsa.pub.hadoop003 >> authorized_keys

[root@hadoop000 .ssh]# cat id_rsa.pub.hadoop004 >> authorized_keys

然后将该authorized_keys分发

[root@hadoop000 .ssh]# scp authorized_keys 192.168.137.141:/root/.ssh/

[root@hadoop000 .ssh]# scp authorized_keys 192.168.137.142:/root/.ssh/

[root@hadoop000 .ssh]# scp authorized_keys 192.168.137.143:/root/.ssh/

[root@hadoop000 .ssh]# scp authorized_keys 192.168.137.144:/root/.ssh/

每台机器第一次要做: yes --> known_hosts

[root@hadoop000 .ssh]# ssh hadoop000 date

[root@hadoop000 .ssh]# ssh hadoop001 date

[root@hadoop000 .ssh]# ssh hadoop002 date

[root@hadoop000 .ssh]# ssh hadoop003 date

[root@hadoop000 .ssh]# ssh hadoop004 date

升级版(作业): A机器scp一个文件到B机器 无需密码

A --> B

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

SQL常规使用二:

1.复习

  字段类型

  create table  模板


  insert

  update

  delete

  select


  where

2.见sql语法.sql

--表 table

create table ruozedata(

id int AUTO_INCREMENT primary key,

name varchar(100),

age int,

createtime timestamp DEFAULT CURRENT_TIMESTAMP,

creuser varchar(100),

updatetime timestamp  DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

updateuser varchar(100)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

drop table ruozedata;

insert into  ruozedata(id,name,age) values(1,'jepson',16);

insert into  ruozedata(id,name,age) values(2,'LY',18);

insert into  ruozedata(id,name,age) values(3,'ZX',19);

insert into  ruozedata(id,name,age) values(4,'ZX1',119);

insert into  ruozedata(name,age) values('jepson',16);

insert into  ruozedata(name,age) values('LY',18);

insert into  ruozedata(name,age) values('ZX',19);

insert into  ruozedata(name,age) values('ZX1',119);

insert into  ruozedata(name,age) values('甘伟',119);

insert into  ruozedata

values(5,'ZX1',119,'2017-10-10 00:00:00','xxx','2017-12-10 00:00:00','xxx1');

update ruozedata set age=22 where name='jepson';

update ruozedata set age=22 ;

delete from ruozedata where name='jepson';

select * from ruozedata where name='ly';

select id,name from ruozedata;

create table test select id,name from ruozedata;

create table test1 select id,name from ruozedata where 1<>1;

alter table ruozedata add address varchar(512);

alter table ruozedata drop address ;

alter table ruozedata add address varchar(512) after age;

#条件查询

select * from  ruozedata;

select * from  ruozedata where name='jepson';

select * from  ruozedata where name='jepson' and id=999; 

select * from  ruozedata where name='jepson' or id=3;

select * from  ruozedata where name='jepson' and id=999 and (name='jepson' or id=3);

#数据仓库 事实表 维表

create table emp (

    empno numeric(4) not null,

    ename varchar(10),

    job varchar(9),

    mgr numeric(4),

    hiredate datetime,

    sal numeric(7, 2),

    comm numeric(7, 2),

    deptno numeric(2)

);

create table dept (

    deptno numeric(2),

    dname varchar(14),

    loc varchar(13)

);

create table salgrade (

    grade numeric,

    losal numeric,

    hisal numeric

);

insert into dept values (10, 'ACCOUNTING', 'NEW YORK');

insert into dept values (20, 'RESEARCH', 'DALLAS');

insert into dept values (30, 'SALES', 'CHICAGO');

insert into dept values (40, 'OPERATIONS', 'BOSTON');

insert into salgrade values (1, 700, 1200);

insert into salgrade values (2, 1201, 1400);

insert into salgrade values (3, 1401, 2000);

insert into salgrade values (4, 2001, 3000);

insert into salgrade values (5, 3001, 9999);

insert into emp values (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20);

insert into emp values (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);

insert into emp values (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);

insert into emp values (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, null, 20);

insert into emp values (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);

insert into emp values (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, null, 30);

insert into emp values (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, null, 10);

insert into emp values (7788, 'SCOTT', 'ANALYST', 7566, '1982-12-09', 3000, null, 20);

insert into emp values (7839, 'KING', 'PRESIDENT', null, '1981-11-17', 5000, null, 10);

insert into emp values (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);

insert into emp values (7876, 'ADAMS', 'CLERK', 7788, '1983-01-12', 1100, null, 20);

insert into emp values (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, null, 30);

insert into emp values (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, null, 20);

insert into emp values (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, null, 10);

select * from emp where sal>3000;

select * from emp where sal<>5000;

#模糊查询 like

select * from emp where ename like '%S%';

select * from emp where ename like 'S%';

select * from emp where ename like '%S';

select * from emp where ename like '_O%'; 

#排序

select * from emp order by  sal ;

select * from emp order by  sal asc ;

select * from emp order by  sal desc ;

#限制多少行

select * from emp limit  3;

select * from emp order by  sal desc limit  3;

#聚合

#count() sum()

#1.各个部门的薪水和

select deptno,sum(sal) from  emp group by deptno

select deptno,count(ename)

from  emp group by deptno

#2.group by字段 必须 出现在select字段后面  各个部门的各个岗位的薪水和

select deptno,job,  sum(sal) from  emp group by deptno ,job

#3.having    薪水和>5000的各个部门的各个岗位

select deptno,job,  sum(sal)

from  emp

group by deptno ,job

having  sum(sal)>5000

#4.常用组合where  order  limit

select deptno,job,  sum(sal) as sum_sal

from  emp

where job='SALESMAN'

group by deptno ,job

having  sum(sal)>5000

order by sum(sal) desc

limit 1

# as 别名

join 字段、表名 加

not join 字段 加

#------------------join------------------------------

#left join,rigth join,inner join,join

#left join

create table testa(aid int,aname varchar(40));

create table testb(bid int,bname varchar(40),age int);

insert into testa values(1,'xiaoming');

insert into testa values(2,'LY');

insert into testa values(3,'KUN');

insert into testa values(4,'ZIDONG');

insert into testa values(5,'HB');

insert into testb values(1,'xiaoming',10);

insert into testb values(2,'LY',100);

insert into testb values(3,'KUN',200);

insert into testb values(4,'ZIDONG',110);

insert into testb values(6,'niu',120);

insert into testb values(7,'meng',130);

insert into testb values(8,'mi',170);

# left join

select

a.aid,a.aname,

b.bid,b.bname,b.age

from testa as a

left join testb as b on a.aid=b.bid

left join testc as c on b.aid=c.bid

A <---B

aid aname   bid   bname age

1 xiaoming 1 xiaoming 10

2 LY         2 LY         100

3 KUN         3 KUN         200

4 ZIDONG     4 ZIDONG     110

5 HB

# a left join b  a全,b表去匹配a表,匹配不到的 null

# right join

select

a.aid,a.aname,

b.bid,b.bname,b.age

from testa as a

right join testb as b on a.aid=b.bid

1 xiaoming 1 xiaoming 10

2 LY         2 LY         100

3 KUN         3 KUN         200

4 ZIDONG     4 ZIDONG     110

        6 niu         120

        7 meng     130

        8 mi         170

A ----> B       

select

a.aid,a.aname,

b.bid,b.bname,b.age

from testa as a

inner join testb as b on a.aid=b.bid

1 xiaoming 1 xiaoming 10

2 LY         2 LY         100

3 KUN         3 KUN         200

4 ZIDONG     4 ZIDONG     110

select

a.aid,a.aname,

b.bid,b.bname,b.age

from testa as a

join testb as b on a.aid=b.bid

1 xiaoming 1 xiaoming 10

2 LY         2 LY         100

3 KUN         3 KUN         200

4 ZIDONG     4 ZIDONG     110

# testa

select '2018-05-12' as month,aid,aname from testa

union

select '2018-05-11' as month,aid,aname  from testa

2018-05 1 xiaoming

2018-05 2 LY

2018-05 3 KUN

2018-05 4 ZIDONG

2018-05 5 HB

2018-04 1 xiaoming

2018-04 2 LY

2018-04 3 KUN

2018-04 4 ZIDONG

2018-04 5 HB

create table testc(cid int,cretime timestamp);

insert into testc values(1,'2018-05-12 08:08:00');

insert into testc values(1,'2018-05-11 08:08:00');

insert into testc values(1,'2018-05-10 08:08:00');

insert into testc values(2,'2018-05-12 09:08:00');

insert into testc values(2,'2018-05-11 09:08:00');

insert into testc values(2,'2018-05-10 09:08:00');

insert into testc values(3,'2018-05-12 09:08:00');

insert into testc values(4,'2018-05-11 09:08:00');

#没出勤人的ID和名称  字表

select

a.day,a.aid,a.aname,

c.cid,c.cretime

from

(select '2018-05-12' as day,aid,aname from testa

union

select '2018-05-11' as day,aid,aname  from testa)  a

left join testc as c

on a.day=DATE_FORMAT(c.cretime, '%Y-%m-%d')

and a.aid=c.cid

where c.cid is not null;

# union  , union all

select  aid from testa

union

select  bid from testb

select  aid from testa

union all

select  bid from testb

你可能感兴趣的:(08-SQL语法二)