常用sql语句

1. 查改增删

1.1 插入一条数据

insert into table_name values 
    ('Jack',100),
    ('Tom',90);

INSERT OVERWRITE 语句从一个表复制数据,然后把数据插入到一个已存在的表中,目标表会先被清空。

insert overwrite table_name  
[PARTITION (partcol1=val1, partcol2=val2 ...) 
[IF NOT EXISTS]] 
select * from table1;

非覆盖

INSERT INTO TABLE tablename
select * from table1;

1.2 更新一条数据

1.3  删除一条数据

1.4 创建表

use db_name;
drop table if exists table_name;
create table table_name as
select a.*
from table_name1 a;

2.  表数据清空及装填

2.1 删除表的所有数据(截断表)

truncate table  table_name;

truncate table是清空一个表,是一个DDL语言,速度快,效率高,它的主要功能就是彻底删除数据,使其不能进行回滚。

它与delete有如下区别

1. DELETE  语句的作用是在指定表或指定视图的基表中删除记录行。用户可以删除位于用户自己模式中的表的记录行,也可以删除在该表上具有 DELETE 权限的表的记录行,并且在删除指定表的记录行时,必须满足该表上的完整性约束条件。
2. TRUNCATE TABLE 语句用于删除表的所有数据(截断表)。
3. DELETE 删除表的所有数据时,不会释放表所占用的空间,并且操作是可以撤销的。
4. TRUNCATE TABLE 删除表的所有数据时,执行速度更快,而且还会释放表、段所占用的空间,并且操作是不能撤销的。

2.2 重新装填数据

# 清空表数据
truncate table table_name;
# 将本地数据放到hive仓库
hadoop fs -put data.csv /user/hive/warehouse/zz.db/table_name
# 修复表
msck repair table zz.table_name;

3. 两表jion

 表a

11
12

表b

11
11
11
select id
from a
join b
on a.id=b.id;
输出结果:
11
11
11

如果b表数据未去重,a join b 输出的结果也不会去重的。

4.  where 与 having

筛选出人数大于10的班级,以下两种方式等价。

4.1 where

select *
from (
    select class_name, count(1) as cnt
    from table_name
    group by class_name
) t
where cnt>10;

4.2 having

select class_name, count(1)
from table_name
group by class_name
having count(1)>10;

5. 有序的选择

要求根据where 条件顺序,保证查询结果也按此序,并给出各个uid是否匹配到。

select uid, rn, uid1, uid2, uid3
from (
    select uid
    case when uid='11' then 1 else 0 end as uid1,
    case when uid='33' then 1 else 0 end as uid2,
    case when uid='22' then 1 else 0 end as uid3,
    (case when uid='11' then 1
          when uid='33' then 2
          when uid='22' then 3
    ) as rn
    from table_name
    where uid='11' or uid='33' or uid='22'
) t
order by rn
limit 100;

输出结果

uid,rn,uid1,uid2,uid3

11,1,1,0,0

33,2,0,1,0

22,3,0,0,1

第一部分、 基础 1、创建数据库 2、删除数据库 3、备份sql server 4、创建新表 5、删除新表 6、增加一个列 7、添加和删除主键 8、索引 9、视图 10、几个简单的基本的sql语句 11、几个高级查询运算词 12、使用外连接 13、分组:Group by: 14、对数据库进行操作: 15.如何修改数据库的名称: 第二部分、 提升 1、复制表 2、拷贝表 3、跨数据库之间表的拷贝 4、子查询 5、显示文章、提交人和最后回复时间 6、外连接查询 7、在线视图查询 8、between的用法 9、in 的使用方法 10、两张关联表,删除主表中已经在副表中没有的信息 11、四表联查问题 12、日程安排提前五分钟提醒 13、一条sql 语句搞定数据库分页 14、前10条记录 15、选择每组中的最大数 第三部分、 技巧 1、True/False的使用 2、收缩数据库 3、压缩数据库 dbcc shrinkdatabase(dbname) 4、转移数据库给新用户以已存在用户权限 5、检查备份集 6、修复数据库 7、日志清除 8、更改某个表 9、存储更改全部表 10、SQL SERVER中直接循环写入数据 数据开发-经典 1.按姓氏笔画排序 2.数据库加密 3.取回表中字段 4.查看硬盘分区 5.比较A,B表是否相等 6.杀掉所有的事件探察器进程 7.记录搜索: 9:获取当前数据库中的所有用户表 10:获取某一个表的所有字段 11:查看与某一个表相关的视图、存储过程、函数 12:查看当前数据库中所有存储过程 13:查询用户创建的所有数据库 14:查询某一个表的字段和数据类型 15:不同服务器数据库之间的数据操作 SQL Server基本函数 SQLServer2000同步复制技术实现步骤 一、 预备工作 二、 正式配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值