MySql基本内容

一、数据库定义语言DDL

二、数据库操作语言DML

三、数据库查询语言DQL

四、数据库控制语言DCL

 表中涉及到的类型!! 添加修饰符!

 

             int整型    -2 31   2 31  4个字节!

             integer 类型  4个字节!

             

             tinyint 整数类型  -128  127  1个字节

 

             samllint 整数类型  -65535/2  65535/2  2个字节

   

             bigint 整数类型 long 大于int类型  8个字节!

 

             unsigned 代表整数类型没有负值! 0-n

 

 double浮点型,例如double(5,2)  5总位数!2小数位数!

 

 10  aaa  char  'aaa       '

    varchar 'aaa'

 char固定长度字符串类型; char(10)  'abc       ' 256

 

 varchar:可变长度字符串类型;varchar(10) 'abc'    65535

 text:字符串类型;  65535

 blob:字节类型;往数据库存图片!

 

 时间戳: 1970 1 1 至今的毫秒值! varchar字段!

 date日期类型,格式为:yyyy-MM-dd

 time时间类型,格式为:hh:mm:ss

 timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss  会自动赋值

 datetime:日期时间类型 yyyy-MM-dd hh:mm:ss

 

 注意:字符串类型和double类型需要最后追加 (长度)

 

二、数据库操作语言DML

 

         insert  update  delete

 

    1.插入数据

 

          insert into 表名 1.(列名1,列名2...) value/values ("1",2,....)

            

               2.什么都不写(全部列都要插入)  value/values();

 

               value()

               values(),(),();

 

 

  注意:插入数据的时候!如果指定了列名1情况,value/values的值要跟列名

         一一对应!

        如果没有指定列名!要插入全部列!value/values的值要根据创建表的时候列的顺序进行插入!如果没有值写成null!!

 

  2.删除数据

 

   delete from 表名;  //删除所有数据

 

   delete from 表名 where 条件

          name = 'xxx' and sex = 'xxx';

          name = 'xxx' or sex = 'xxx';

          

          or/and

 

   truncate 表名;

   

   truncate速度会更快!但是慎重使用!不考虑表结构!直接删除表创建新表!

   但是问题!数据可能发生重复!!

 

    3.修改表数据 update

 

           update 表名 set 列名 = 新值,列名 = 新值 ;  //全部修改

 

                where  条件 //按条件修改!

 

 

           在原有的基础上进行修改:

           

           update 表名 set 列名 = 列名(+-*/)新值 where 条件!   

一、字段控制 

 

1.根据字段去重复  DIstinct

 

        select distinct 字段 from 表的名字;

 

2.查询求和

       

  select */列名/整数可以运算 from 表名;

  注意:整数 + null  = null

 

3.ifnull如果为空设置值

 

   SELECT * , IFNULL(comm,0)+sal FROM emp;

 

  ifnull(1,2)

  1.判断得值

2.如果判断值为null  取第二个值!

 

4.起别名 

有写时候查询出来的列名太长!我们希望用简短的列名表示!这个时候就需要起别名!

 

  select 列明 别名 

select 列名 as 别名

二、排序 

  语法 order by 列名 asc(默认) desc

 

 

1.根据薪水排序

 

         SELECT * FROM emp WHERE sal > 1000 ORDER BY sal DESC;

 

 注意:如果只是排序 可以不添加where !如果有条件!需要在排序前添加条件!!!

 

2.添加候补排序

         SELECT * FROM emp ORDER BY sal DESC,empno ASC;

 

 第一个条件相同才会触发第二个!以此类推!

        

         select 列的列表 from 表名 where 条件 order by  字段 asc/desc;

 

三、聚合函数 

 

?   COUNT():统计指定列不为NULL的记录行数;

?     MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

?     MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

?     SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0

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

 

四、分组查询 

 

    group by 字段!

   

    group by 字段 having 条件!

 

    

   where  having对比 

 

   相同点:

都是条件判断

   不同点:

where 分组前的条件!

having 分组后以组为单位的条件!通常使用的是聚合函数!

 

where  from 表名 where

        having group by 分组字段 having 条件!

 

 

   select * from 表名 where 条件  group by 字段 having;

   select * from 表名 where 条件 order by 字段。

   

   最难的sql语句!

   select * from 表名 where 条件 group by 字段 having order by 字段 

   

五、mysql的方言

   

    limit 1;   =  limit 0,1;

    

    limit 1,2;

   

    limit 1; 从第一个数据开始查询 查询值1个! 1指的是查询数量!

    

    limit 1,值2; 1代表着偏移量,值2代表查询的个数!!!

 

    总结:

   分页公式: limit (currentPage-1)*pageSize,pageSize;

 

     说明:currentPage 当前页数 1开始

         pageSize 每页显示的数量!‘’‘

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值