认识Mysql与Mysql的基础知识

一、认识Mysql

1、Mysql数据库相关概念

  • DB:数据库,保存一组有组织的数据的容器
  • DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据
  • SQL:结构化查询语言,用于和DBMS通信的语言

注:常用的数据库管理系统有Oracle、db2、MySQL、PostgreSQL、SQLite、Firebird、微软的SQL Server和Access

2、Mysql数据库存储数据特点

  • 将数据放到表中,表再放到库中,将库持久化到本地磁盘中
  • 一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性
  • 表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计
  • 表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
  • 表中的数据是按行存储的,每一行类似于java中的“对象”

3、SQL的语言分类

  •  DML(Data Manipulate Language):数据操作语言

        insert 、update、delete、select(增删改查)

  • DDL(Data Define Languge):数据定义语言

        create、drop、alter(创建、修改表结构、视图、存储过程等)

  • TCL(Transaction Control Language):事务控制语言

        commit、rollback(操作事务等方面)

  • DCL:(Data Control Language)数据控制语言,包括分配数据库用户权限相关的sql语句

二、Mysql基础知识

1、SQL基础查询

语法:

select   查询列表  from  表名 where 筛选条件

或:

SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)](条件过滤,紧随 FROM 子句)
[GROUP BY column|group_by_expression](根据一个或多个字段或某一表达式进行分组)
[HAVING group_condition](对分组的结果进行过滤)
[ORDER BY column1,column2... asc|desc](根据一个或多个字段进行排序,在SELECT语句的结尾(asc为默认值,为升序,desc为降序))
limit start,size(对查询的结果进行分页处理)

        如:select * from tableName 、select  '123'、select  version()、select now()

查询可以是:表中的字段、常量值、表达式、函数等

注: mysql中的+号的作用:仅仅只有一个功能--》运算符  
    select 100+90; 两个操作数都为数值型,则做加法运算
    select '123'+90;只要其中一方为字符型,试图将字符型数值转换成数值型 , 如果转换成功,则继续做加法运算
    select 'john'+90;    如果转换失败,则将字符型数值转换成0
    select null+10,只要其中一方为null,则结果肯定为null

 

2、常见的关键词查询

1、like模糊查询

    特点:一般和通配符搭配使用 ,通配符有%: 表示任意多个字符,包含0个字符、_ :下划线表示任意单个字符(充当于占位符)
   如:select * from tableName where id like '%a%' 或 select * from tableName where id like '%_a%'

2、between...and...在两者之间,包含临界值,从小到大,不能调换位置顺序

3、is null/is not null 判断字段是否为null值
(1)=或<>等运算符不能用于判断null值
(2)安全等于(<=>)运算符:既可以判断NULL值,又可以判断普通的数值,可读性较低
(3)IS NULL:仅仅可以判断NULL值,可读性较高,建议使用

3、常见的单行函数

1、字符函数

  • length:获取字节个数(utf-8一个汉字代表3个字节,gbk为2个字节)
  • concat:字符连接,将多个字符连接起来
  • substr/subString:字符截取,截取位置从1开始算起
  • instr:获取指定字符的下标
  • trim:去空格(字符前后的空格)
  • upper:字符转化成大写
  • lower:字符转化成小写
  • lpad:左填充
  • rpad:右填充
  • replace:替换字符

2、数字函数

  • round(X,D):四舍五入,保留D位小数
  • ceil(X):向上取整
  • floor(X):向下取整
  • truncate(X,D):截取数字函数

3、时间函数

  • now():返回当前系统日期+时间
  • curdate():返回当前系统日期,不包含时间
  • curtime():返回当前时间,不包含日期
  • STR_TO_DATE(str,format):将字符通过指定的格式转换成日期
  • DATE_FORMAT(date,format):将日期转换成指定格式的字符型时间
  • DATEDIFF(expr1,expr2):返回两个时间之间的差值

时间格式(format)如下所示:

 4、流程控制函数case-when-then

语法(用法1):

java中
    switch(变量或表达式){
        case 常量1:语句1;break;
        ...
        default:语句n;break;
    }
mysql中
    case 要判断的字段或表达式
    when 常量1 then 要显示的值1或语句1;
    when 常量2 then 要显示的值2或语句2;
    ...
    else 要显示的值n或语句n;
    end

语法(用法2):

java中:
    if(条件1){
        语句1;
    }else if(条件2){
        语句2;
    }
    ...
    else{
        语句n;
    }
mysql中:
    case 
    when 条件1 then 要显示的值1或语句1
    when 条件2 then 要显示的值2或语句2
    ...
    else 要显示的值n或语句n
    end

5、常见的聚合函数(分组函数)

        分组函数作用于一组数据,并对一组数据返回一个值,常用于对查询的数据进行统计

(1)分类:

        sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数

(2)特点:

  • sum、avg一般用于处理数值型,max、min、count可以处理任何类型
  • 以上分组函数都忽略null值
  • 可以和distinct搭配实现去重的运算
  • count函数的单独介绍,一般使用count(*)用作统计行数
  • 和分组函数一同查询的字段要求是group by后的字段
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值