MySql理解及最常用到的函数

MySql

1.关系型的数据库是表结构
2.非关系型的是数据库是键值对

Delete :一条一条的删,表结构还是在的。删除后的数据可以找回。
truncate:创建一个新表,直接把之前的表drop,然后再创建一个同样的新表。删除后数据是找不回的,执行的速度比delete块。

NOT 默认不包括null

unique:不认为null是重复

自动增长列:(auto_increment)
1.只能用于数值型的类型
2.中间的值一旦被删除,他不会自动填充,找到最大的值,直接加一操作

备份表结构和表中的数据
1.create table tname2 as select * from tname1;

备份表结构:
create table tname2 like tname1;

ALTER TABLE employee MODIFY job varchar(60);

在mysql中,字符串类型和日期类型都要用单引号括起来。

int:整型 			
double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99; 			
char:固定长度字符串类型;    char(10)     'aaa       '  占10位 			
varchar:可变长度字符串类型; varchar(10)  'aaa'  占3为 			
text:字符串类型; 			
blob:字节类型; 			
date:日期类型,格式为:yyyy-MM-dd; 			
time:时间类型,格式为:hh:mm:ss 			
timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss  会自动赋值 			
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss 

查看数据库编码的具体信息

show variables like ‘charater%’;

临时更改客户端和服务器结构集的编码

Set character_set_client = gbk;
Set character_set_server = gbk;

DQL

【WHERE --> GOUP BY -->HAVING–> ORDER BY LIMIT】

语法: SELECT selection_list /要查询的列名称/
FROM table_list /要查询的表名称/
WHERE condition /行条件/
GROUP BY grouping_columns /对结果分组/
HAVING condition /分组后的行条件/
ORDER BY sorting_columns /对结果排序/
LIMIT offset_start, row_count /结果限定/

条件查询:

条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:
=、!=、<>、<、<=、>、>=;
BETWEEN…AND; IN(set); IS NULL; AND; OR; NOT;

多表查询:

  • 合并结果集:union (去重),union all(全部):

    union:两个表的字段个数和类型必须一致。自动去重

  • 连接查询:笛卡儿积(n*m):创建了好多无意义的数据。

并不是必须得有主外键,只要字段类型一样就行

  • 内连接:select * from emp e inner jion dept d on e.sss=d.sss;

  • 外连接:左外连接 右外连接 全外连接(mysql不支持) 自然连接

    自然连接:必须有主外键,可以省了条件

自然连接——表里面相同的字段

select 字段 from 表名 where where条件 group by 分组条件 having having条件

函数是通过select调

聚合函数

  • count() 统计指定列不为null的记录的行数

  • max() 计算指定列的最大值,如果指定列是字符串,那么使用字符串排序运算

  • min() 计算指定列的最小值,如果指定列是字符串,那么使用字符串排序运算

  • sum() 计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

  • avg() 计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

having

having与where的区别:

1.having是在分组后对数据进行过滤.where是在分组前对数据进行过滤 .
2.having后面可以使用分组函数(统计函数);where后面不可以使用分组函数。
WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

mysql中的函数

数学函数:

addtime(date2,time_interval)
ABS(X)返回x的绝对值
MOD(N,M):返回N被M除的余数
FLOOR(x):向下取整
criling(x):向上 取整
pound(x):返回参数的四舍五入

字符串函数:

ascll(str):返回字符串str的最左面字符的ascll,如果str是空字符,返回0,如果str是null,返回null
concat(str1,str2…):返回参数连接的字符串,如果任何参数是null,返回null
length(str):返回字符串str的长度
locate(substr,str):返回字串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0
instr(str,substr):返回字串substr在字符串str中第一个出现的位置
left(str,len):返回字符串str的最左面len个字符
righr(str,len):返回字符串str的最右面len个字符
substring(str,pos):从字符串str的起始位置pos返回一个字串
trim(str):去除前后的空格
LTRIM(str):返回删除了其前置空格字符的字符串str。
RTRIM(str):返回删除了其拖后空格字符的字符串str
prpeat(str,count):返回重复count次数的str组成的字符
reverse(str):反转字符串
insert(str,pos,len,newstr):返回字符串str,在位置pos起始len个长度,由字符串newstr代替。

流程控制函数:

1.case when [condition] then result…else result end

select uuid,mobile- 1
 when age >=70 and age <=100 then 2
 else 9
 end 
 as "年龄"
 from user where mobile="53437569";

2.case when [condition] then result…end

 select uuid,mobile,case 
 when age <= 12 then 1
 when age >=70 and age <=100 then 2
 end 
 as "年龄"
 from user where mobile="53437569";

3.IF(expr1,expr2,expr3):expr1 判断条件,如果是true的话,走expr2,否则的话走expr3.

SELECT IF(1>2,2,3);

格式化函数:

format(x,n):可以将数字x进行格式化,将x保留到小数点后n位

加序列:

select (@i:=@i+1) pm
from @i:=0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值