【学习笔记】数据库小结

Msql常用命令:

本地登录:

mysql -uroot -proot

退出mysql:

exit;

showdatabase;

use xxx;

show tables;

desc xxx;

SQL语言分类

  • DML(Data Manipulation Language)数据操纵语言

如:insert,delete,update,select(插入、删除、修改、检索)简称CRUD操新增Create、查询Retrieve、修改Update、删除Delete

DDL(Data Definition Language)数据库定义语言

如:create,drop,alter之类,主要是对表结构进行操作。

DCL(Data Control Language)数据库控制语言

如:grant、deny、revoke等,只有管理员才有相应的权限

DQL(Data Query Language)数据库查询语言

如: select 语法

注意:SQL不区分大小写

sql文件相关操作:

1.导入

先use一个数据库然后

source + 直接拖进去

2.查询表中所有数据

select* from + 表名

3.不看表的数据,只看表的结构

desc + 表名

4.查看数据库版本号+使用数据库

select version();

select database();

5.\c 用来终止输入

简单查询:

查询字段(列):

select 字段名1,字段名2 from 表名

强调:sql 以; 结尾,不区分大小写

select * from 表名 ;

效率低,可读性差,不建议开发写

给查询的列起别名:

select 字段名1,字段名2 as 别名 from 表名;(as)可以省略

注意只是将显示的查询结果显示,原表名字不会更改

如果别名里相加空格,就用单引号括起来

注意:所有数据库中,字符串统一用单引号

注:字段名 可以 + - x /

条件查询:

查询符合条件的数据:

select

字段

from

表名

where

条件

sal >=800 and sal<=3000;

sal between 800 and 3000;【】闭区间,包括两端的值

使用between and 时 必须左小右大

都有哪些条件:

= ,< ,> ,!= , <>, <=, >=,between and ,>= adn <=,

is null,is not null,

select empno,ename from emp where sal=800;

等号可以运用在字符串上

or:

select ename,job from emp where job=’manager‘ or job=’salesman‘;

and 和 or同时出现:and优先级高

select ename, job from emp where sal >2500 and deptno =10 or deptno =20;会按一下顺序执行:

select ename, job from emp where (sal >2500 and deptno =10) or deptno =20;

正确执行方式:

select ename, job from emp where sal>2500 and (deptno =20 or deptno=10);

in:相当于多个or,但不是多个区间,in后面跟的是具体的值

select empno,ename,job from emp where job in('manager' ,"salesman");

select empno,ename,job from emp where job='manager' or job="salesman";

like:模糊查询

%和_是特殊的符号,

%:任意多个字符,也可能是一个

_:任意一个字符

找出名字中含有o的:

select ename from emp where ename like '%o%';

以t结尾:

select ename from emp where ename like '%t';

以k开始:

select ename from emp where ename like 'k%';

第二个字母是a:

select ename from emp where ename like '_a%';

第三个字母是r:

select ename from emp where ename like '__r%';

找出含有_的名字:

select ename from emp where ename like '%\_%'

\转义,不然会全都查找出来

排序:

默认是升序:

select ename,sal from emp order by sal (asc);默认不写就是升序

降序:

select ename,sal from emp order by sal desc;(descend)

按照薪资升序排列,如果薪资一样,按照名字升序排列:

select ename,sal from emp order by sal,ename;

注:sal在前起主导,只有sal相等情况下才轮到ename

小综合:

select

ename,sal

from

emp

where

sal between 1250 and 3000

order by

sal desc;

数据处理函数,单行处理:

又叫单行处理函数:

特点:一个输入对应一个输出,

和单行处理函数相对的是多行处理函数:多个输入对应一个输出。

常见的单行处理函数:

lower:

select lower(ename) from emp;

upper:

select upper(ename) as ename from emp;

substr

select substr(ename,1,3) as ename from emp;

起始下标从1开始

找出名字第一个字母是a的:

第一种:模糊查找:

select ename from emp where ename like 'a%';

第二种:

select ename from emp where substr(ename,1,1) ='a';

concat:字符串拼接

select concat(substr(ename,1,1),lower(substr(ename,2,length(ename))))

from emp;

length:上面那个

trim:

select * from emp where ename = trim(' king ');

去掉前后空格

round:

select round(123.23153,3) from emp;

四舍五入保留小数位

select round(1236.23153,-1) from emp; //1240

rand:

select rand() from emp;

select round(rand()*100) from emp;

null:

null参与运算最后结果都是null

select ename,(ifnull(comm,0)+sal)*12 from emp;

case..when...then...when...then...else...end

当工作岗位是manager,工资上调10%

当工作岗位是salesman时,工资上调50%

注意:不修改数据库,只是将查询结果显示显示出来

select ename,job, (case job when 'manager' then salx1.1 when 'salsman' then sal*1.5 else sal end ) as sal from emp;

分组函数,多行处理函数:

输入多行最终输出一行

5个:

count 计数

sum 求和

avg 平均值

max 最大

min 最小

注意:分组函数必须先进行分组才能用!!!

如果没有分组,整张表默认为一组

注:分组函数自动忽略null,不需要对null提前处理。

count(*)数全部的行

count(字段)统计该字段下不为null的元素总数

分组函数不能直接使用在where中??????????????????

所有的分组函数可以组合起来一起用

分组查询*****

先进行分组,再对每一组的信息操作

select

**...**

from

...

where

...

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值