BigData-MySQL(基础)

1.运算符

1.1 算术运算符
select 1+2;
select 1-2;
select 3*4;
select 3/4;  #0.75
select 3/0;  #null
select 3 div 4; #整除
1.2 比较运算符

表达式为真结果为1,否则为0

select 1>1;
select 1<1;
select 1<>1;
select 1!=1;
is true,is not true,
is null,is not null,
between and,not between and,
in, not in
1.3 逻辑运算符

表达式为真结果为1,否则为0

select 1=1 and 1=2;
select 1=1 or 1=2;
select !(1<>1);
1.4 位运算符
select 1&0; #按位与
select 1 | 1; #按位或 
select 1^2; #按位异或

2.DML操作

对表数据的操作,会更改数据,不改变结构

2.1 插入
  • 向表中所有字段添加数据

    insert into tname values(col1,col2...)
    value值的个数和顺序必须和表中字段的个数和顺序保持一致
    
  • 向表中部分字段添加数据

    前提是不添加值得字段允许为空。
    insert into tname(col1,col2...) values(val1,val2...)
    value值得顺序必须和前面字段名称的顺序一致
    
  • 批量数据插入

    insert into tname[(col1,col2...)] values(val1,val2...),(val1,val2...)... 
    
  • 复制表数据

    insert into tname([col1,col2...]) select col1,col2...from tname2
    
2.2 修改
update tname set col1=val1,col2=val2... [where...]
如果update没有使用where则代表对整张表所有记录修改
2.3 删除
delete from tname [where...]
不使用where将删除整张表中所有的记录

delete,truncate和drop的区别?
 delete只删除数据,不修改表结构,不重置自增,逐行删除
 truncate清空表数据,不修改表结构,重置自增,删除速度比delete高
 drop清空表结构,表结构文件和数据文件全部删除

3.DQL操作

3.1 dql语法
select cols #查询并展示的数据(字段,表达式等)
from tables #查询的数据来源(表,结果集,视图等)
where condition #条件语句
group by  #分组
having    #分组之后的条件判断
order by  #排序(asc升序   desc降序)
limit     #限制结果查询
3.2 基本查询语句(emp表为例)
  • 查询所有字段的数据

    select * from emp
    
  • 查询部分字段的数据

    # 查询emp表中empno和ename的值
    select empno,ename from emp
    
  • 单一条件查询

    # 查询emp表中薪水>2000的员工信息
    select * from emp where sal > 2000
    
  • 组合条件查询

    # 查询薪水>2000的20号部门的员工信息
    select * from emp where sal > 2000 and deptno = 20
    # 查询薪水>2000或者20号部门的员工信息
    select * from emp where sal > 2000 or deptno = 20
    
  • 范围查询

    # 查询薪水在1000到2000之间的员工信息
    select * from emp where sal >= 1000 and sal <= 2000
    select * from emp where sal between 1000 and 2000
    
  • 集合查询

    # 查询员工编号为7369,7521,7788的员工信息
    select * from emp where empno=7369 or empno=7521 or empno=7788
    select * from emp where empno in(7369,7521,7788)
    
  • 别名

    select empno [as] 编号,ename [as] 名称 from emp
    select e.ename,e.deptno from emp e
    
  • 去重

    # 在emp表中查询所有的职位信息
    select distinct job from emp
    
  • 非空验证

    # 查询员工奖金为空的员工信息
    select * from emp where comm is [not] null
    
  • 排序

    # 按照薪水升序排序
    select * from emp order by sal [asc]
    # 按照薪水升序排序,如果薪水一样则按照编号降序排序
    select * from emp order by sal [asc],empno desc 
    
  • 模糊查询

    % 代表匹配0到多个字符
    _ 代表匹配1位字符
    
    #查询以a打头的员工信息
    select * from emp where ename like 'a%';
    #查询以n结尾的员工信息
    select * from user where ename like '%n';
    #查询包含l的员工信息
    select * from user where ename like '%l%';
    #查询第二个字为l的员工信息
    select * from user where ename like '_l%'
    
  • 限制结果查询

    limit offset,length: 
       offset指代起始位置,从0开始
       length指代获取的长度
       
    # 查询前五条记录
    select * from emp limit 0,5;
    select * from emp limit 5;
    
    常用于分页查询
    
    

1. 实现以下表数据操作。

1) 创建student表,要求如下

字段 类型 长度 备注
sid int 主键,自增
sname varchar 20 不为空
age int

create table student
(
sid int primary key auto_increment,
sname varchar(20) not null,
age int
);

2) 向该表插入一条数据:

编号:1 姓名:张三 年龄:20

insert into student values(1,'zs',20);

3) 再次向该表插入数据:

编号:2 姓名:李四

insert into student(sid,sname) values(2,'ls');

4) 批量向该表插入三条数据:

编号 姓名 年龄
3 王五 43
4 赵六 34
5 郑七 30

insert into student values(3,'ww',43),(4,'zl',34),(5,'zq',30);

5) 修改张三的年龄为23。

update student set age = 23 where sname = 'zs';

6) 修改编号为2的学生年龄为25。

update student set age = 25 where sid = 2;

7) 删除id为5的用户的信息。

delete from student where sid = 5;

2. 实现以下表的查询

1) 在emp表中,查询所有的员工信息。

SELECT * FROM emp;

2) 在emp表中,查询所有员工的员工编号,员工姓名。

select empno,ename from emp;

3) 在emp表中,查询所有工龄大于35年的员工信息。

select * from emp e where e.HIREDATE<=DATE_SUB(SYSDATE(),interval 35 year);

select *,concat(year(now())-year(hiredate)) hireyear from emp having hireyear>35;

4) 在emp表中,查询员工工资在2000到3000的员工信息。

select * from emp where sal >= 2000 and sal <= 3000;
select * from emp where sal between 2000 and 3000;

5) 在emp表中,为所有奖金<100的员工将奖金提升100元。

select comm+100 addcomm from emp where comm<100;

6) 在emp表中,查询所有的职位信息,不能有重复。

select distinct job from emp;

7) 在emp表中,查询所有姓名中包含S的员工信息。

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

8) 在emp表中,查询所有员工中工资最低的三个员工的信息。

select * from emp order by sal asc limit 3;

9) 在emp表中,查询30号部门的平均工资。

select avg(sal) from emp where deptno=30;

10) 在emp表中,查询平均工资大于2000的部门编号和平均工资。

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

11) 在emp表中,查询超过1000元的各个部门的部门编号和平均工资。

select deptno,avg(sal) avgsal from emp where sal>1000 group by deptno ;

12) 在emp表中,查询入职年份超过35年的员工信息。

select * from emp e where e.HIREDATE<=DATE_SUB(SYSDATE(),interval 35 year);

select *,concat(year(now())-year(hiredate)) hireyear from emp having hireyear>35;

13) 在emp表中, 查询在该月月底前两天入职的员工信息。

select *,concat(day(last_day(hiredate))-day(hiredate)) lastday from emp having lastday=2;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352