mysql基础回顾

运算符

  • 算数运算符
    • +,-,*,/,%
  • 逻辑运算符
    • And,or,not
  • 条件运算符
    • <,>,=,!=,<>,<=,>=
  • 模糊查询
    • like
    • in、not in
    • between…and
    • is null、is not null
  • 位运算符

常用SQL

  • DQL(数据查询语言)
    • select[distinct]—>from—>where—>group by—>having—>order by[desc|asc]—>limit
      • 优先级:from—>where—>group by—>having—>select—>distinct—>order by[desc|asc]—>limit
    • 基础查询:select…from…where…
    • 排序查询:select…from…where…order by[desc|asc]…
    • 分页查询:select…from…where…order by[desc|asc]…limit…
    • 分组查询:select…from…where…group by…having…order by[desc|asc]…limit
    • 连接查询:select…from…join[left join|right join|full join]…on…
      • 内连接
      • 左连接
      • 右连接
      • 全外连接
      • 自连接
      • 等值连接
      • 不等值连接
    • 联合查询:select…from …union[union all] select…from….
    • 子查询:
      • Select后面的子查询
      • From后面的子查询
      • Where后面的子查询
      • Exists后面的子查询
  • DML(数据操纵语言)
    • insert
    • delete
    • update
      • 修改多表的记录
  • DDL(数据定义语言)
    • 关键字:create;alter;drop;truncate
    • 库、表的管理
        • create database if not exists 名字;
        • Drop database if exists 名字;
        • Alter database 名字 选项
        • show databases;
        • Use 库名;
        • select database();
        • 其他select now(),version(),user();
        • 操作表信息
          • Create table if not exists 表名;
          • Drop table if exists 表名;
          • delete from 表名/truncate 表名;
          • Alter table 表名 表选项;
          • rename table 原名 to 现名
          • Create table 表名 select * from 表名 复制表结构和数据
          • Create table 表名 like 表名 复制表结构
          • show tables 【from 库名】;
          • Show create table 表名;
          • Desc 表名;
        • 修改字段、索引、字段约束等
          • Alter table 表名 具体操作
          • 操作
            • add column 字段名 字段选项;
            • drop column 字段名;
            • modify column 字段名 修改的字段信息
            • change column 字段名 新字段名 字段信息
            • Add primary key(字段名)
            • Add index| unique index|fulltext index 索引名(字段名)
            • drop primary key
            • Drop index 索引名
    • 常见的约束
      • 主键约束:primary key
      • 唯一约束:unique
      • 非空约束:not null
      • 默认约束:default
      • 自增约束:auto_inrement
      • 外键约束:foreign key
    • 索引类型
      • 主键索引
      • 唯一索引
      • 普通索引
      • 联合索引
      • 全文索引
    • DDL操作是隐性提交的!不能rollback!
  • DCL(数据控制语言)
    • grant
    • Revoke
  • TCL(事务控制语言)
    • RollBack
    • Commit
    • SavePoint

数据类型

  • 整数
    • 分类
      • tinyint:1字节,0-255(无符号)
      • smallint :2字节 0-65534(无符号)
      • mediumint :3字节
      • int :4字节
      • Bigint :8字节
    • 特点
      • unsigned 无符号,数值范围翻倍
      • int(3) 括号内表示的是显示的宽度,并不实际存储的数值范围。
      • 类型选择,在满足条件的情况下,越小越好
  • 实数(阿里规范,强制:小数类型为decimal,禁止使用float和double)
    • 分类
      • 浮点数
        • float (M,D):单精度,4字节,7个有效数字(整数位),大概是+(-)3.4*10^38的数量级。小数位无法精准存储。
          • float范围[-3.4028235E38, 3.4028235E38],可以精准表示[0,16777215]范围内的整数,小数并不能精确表示,要根据内部二进制存储的结构来进行截取。
          • float存储方式:转成二进制的科学计数法后进行存储.
          • 32位:1位符号位(0正数,1负数),8位指数位,23位尾数位。
          • 比如6.5,转成二进制是110.1=1.101*2^2.如下存储,符号位0,指数位2+127=129进行存储,尾数位101,不够0补齐。
          • float为什么有效数字是7个!尾数位是23位,加上科学计数法整数部分的默认1,实际存储的数字224-1=16777215=1.6777215*107,所以有效数字是7,16777215以内的整数可以精准存储。超过的部分是跳跃的,部分可以精准存储,部分不可以。
          • float小数部分不能精准存储!如5.2,转换成二进制后表示为101.0011001100110011001100110011……最后的0011无限循环下去,但是float最多能存储23位尾数,那么计算机存储的5.2应该是101.001100110011001100110,也就是数字 5.19999980926513671875,计算机使用这个最接近5.2的数来表示5.2。
          • 另外:mysql存储的float数据select出来的和实际存储的并不一样,所以如果进行计算,结果会出乎意料!
        • double(M,D) :双精度,8字节,15个有效数字(整数位)
      • 定点数
        • decimal(M,D) :可变长度,精准存储。(小数部分超过允许长度会四舍五入,整数部分绝对精准)
        • M不要超过65,D不要超过30
        • 不指定M,D,默认是(10,0)
        • 整数部分不能超过(M-D),不然报错。
        • 小数部分长度不超过D,是精准存储!超过的话会进行四舍五入(如果四舍五入后,整数部分超过,会正常显示,由系统承担)
    • 特点
      • M表示总位数,D表示小数位,(M-D)则是整数长度
      • float和double都是近似值,float整数位是7个有效数字,double整数位是15分有效数字。
      • float和double不指定D,M,以实际长度进行存储。
      • 整数位不能超过M-D,小数位可以超过D但是float和double小数位都不是精准存储,会有精度丢失,实际存储的值会不一样!而decimal会进行四舍五入!
  • 字符串
    • char :定长字符串,0-255个字符长度,无字符集无关
    • varchar :变长字符串,0-65534个字符长度
      • 实际长度和记录行长度和字符集有关。
      • 一个记录行的长度最长为65535字节,utf-8,按照一个字符=3个字节,最多varchar长度为21844
      • varchar变长字符串,长度小于255,有1个字节存储长度,小于65535有2个字节存储长度。
      • 因为在varchar存字符串时,第一个字节是空的,不存在任何数据,然后还需两个字节来存放字符串的长度,所以有效长度是65535-1-2=65532字节
      • 例:若一个表定义为 CREATE TABLE tb(c1 int, c2 char(30), c3 varchar(N)) charset=utf8; 问N的最大值是多少? 答:(65535-1-2-4-303)/3
    • Text:大文本字符串,比如一篇文章
    • Blob:二进制字符串,比如图片
    • Enum:枚举值代替字符串
      • 枚举中字符串数量最大是65535
      • 枚举值保存是以2字节的smallint整数进行存储的,每个枚举值存储位置从1开始递增
  • 日期与时间
    • datetime:8字节,日期+时间,范围是0000-9999
    • Timestamp:4字节,
      • 时间戳,从1970年开始的毫秒数,最大到2038年。
      • UTC随着时区变化
      • 一个表中第一个timestamp字段,默认是not null,default current——timestamp,当更新或者插入时也默认也更新。
      • 一个表中第二个之后的timestamp字段,默认是0000-00-00,如果指定为null,则为当前时间,如果是default则是0000-00-00,也可以更改default current_timestamp
      • 具体属性,最好通过show create table看建表语句
    • Date:3字节
    • Time:3字节
    • Year :1字节,1901-2155
  • 位数据类型
    • Bit
    • Set

函数

  • 数值函数
    • round(X,D)四舍五入,小数点后保留D位
    • ceil()向上取整
    • floor()向下取整
    • mod(m,n)
    • abs()绝对值
    • pi()圆周率
    • pow(m,n)m的n次方
    • sqrt(x)x开平方
    • rand()返回0-1的随机数
    • truncate(x,D)截取D位小数(注意是截取)
  • 字符串函数
    • concat()
    • Length()
    • Upper()
    • Lower()
    • repeat(string, count)
    • Substr(字符串,开始索引) / substr(字符串,开始索引,长度)
    • instr(字符串,子串):返回子串第一次出现的索引,没有就返回0
    • trim():去除字符串前后指定字符/默认去除前后空格
      • ltrim
      • rtrim
    • replace(字符串,要替换的子串,替换后的子串)
    • LPAD(字符串,长度,填充字符串)在指定字符左边填充字符已达到总长度。
      • RPAD
  • 日期函数
    • now()
    • Unix_timestamp()
    • From_unixtime()
    • Year(‘YYYY-MM-DD hh-mm-ss’)
    • date(‘YYYY-MM-DD hh-mm-ss’)
    • time(‘YYYY-MM-DD hh-mm-ss’)
    • Date_formate(‘2020-10-10’,’%Y 年%m月’) 日期转字符
    • str_to_date(字符串,日期格式)
  • 分组函数
    • count()
    • avg()
    • max()
    • min()
    • sum()
    • Group_concat()
  • 控制流函数
    • if(expr,expr1,expr2) 如果expr是true,就是expr1,否则就是expr2
    • case
      when[condition] then…
      when[condition1] then…
      else …
      End
  • 格式化函数
  • 加密函数
    • Md5()
  • 类型转换函数
  • 系统信息函数

变量

  • 按照属性分
    • 系统变量
    • 自定义变量
  • 按照作用范围分为
    • 全局变量
    • 会话变量

视图

存储过程

流程控制结构

正则表达式

处理重复数据

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值