MySQL学习--01(数据类型,基本语法,单行函数)

本文详细介绍Mysql数据库的基础知识,包括数据类型的选择与使用,如VARCHAR与CHAR的区别,主键设计原则,以及INT类型的特性。同时,讲解了SELECT语句的灵活运用,NULL值的特殊处理,字符串函数如CONCAT、UPPER、LOWER的应用,数字和日期函数的实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.Mysql的数据类型

2.Select

3.NULL

4.字符串的连接

5.WHERE

6.单行函数


1.Mysql的数据类型

   

   

   对于字符串类型的数据,有多少个字节就能存多少个汉字或者字符或者数字。char和varchar都是用来存储字符串的,但是他们保持和检索的方式不同。InnoDB存储引擎:建议使用VARCHAR类型。对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的CHAR列不一定比使用可变长度VARCHAR列性能要好。因而,主要的性能因素是数据行使用的存储总量。由于CHAR平均占用的空间多于VARCHAR,因此使用VARCHAR来最小化需要处理的数据行的存储总量和磁盘I/O是比较好的。

  

1.主键

    每个表都要有自己的主键id,一般都是长整型,无符号 20位的大小,无符号表示id为非负数,bigint是8个字节,64位,igint最多20个字符,也可能是19个字符,这是因为正数时是19个数字,负数时有负号,所以一共是20个数字。

2.普通字符串字段

  varchar 是可变长字符串,不预先分配存储空间,长度不要超过5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索引效率。需要指定长度,如果存储的字符串长度几乎相等,使用 char 定长字符串类型。

3.普通int类型的字段

   int类型的存 储大小为4个字节 10亿左右

  1. int(M) 中的M表示什么?
    M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。
    当实际的值的长度 小于 (M)时,可以使用zerofill属性,让该值从左侧填满长度。
    当实际的值的长度 大于 (M)时,照样可以显示实际值的长度。
    也就是说,int的长度并不影响数据的存储精度,长度只和显示有关。
  2. 指定M的实际用途有什么?
    1.当实际的值的长度 小于 (M)时,可以使用zerofill属性,表示用0填充,让0从左侧填满长度,如果没有zerofill,(M)就是无用的。
    --例子:字段 int(4) zerofill, 插入值 1,则会显示 0001
    2.暂时还不知道其它用途
    综上,整数类型的(M)不管值是多少,该类型所占的存储空间都是固定的,所以对大多数应用来说是没有意义的。

​​​​​​​

2.Select

    select中查询对于数值和日期类型的字段可以进行"加减乘除", 数值不说,看看日期类型的加减乘除   

3.NULL

需要注意的是null不能进项四则运算,如果进行了四则运算其结果还是null.

4.字符串的连接

||

5.WHERE

          

字符里面包含匹配符:

还可以指定转义字符:

6.单行函数

SQL里面的函数包含了单行和多行函数,单行函数包含日期函数,数字函数,字符函数,转换函数,

  • 字符函数(大小写转换函数和字符串操作函数)

  

  

  

   1.length:获取参数数值的字节个数

        Utf8的字母站一个字节,汉字三个字节

   2.concat:拼接字符串

       select concat(last_name,'_',firset_name) 姓名 from employees;

   3.upper\lower:转换大小写

      函数可以嵌套函数

    4.substr substring:索引从1 开始

      截取从指定索引处后面所有字符;截取从指定索引处指定字符长度的字符。

   5.instr:返回字符串第一次出现的索引,如果找不到返回0

   6.trim 去掉前后空格,若是想去掉某些不是空格的,可以使用trim('a' from'aaazhaojinchaoaaa')

   7.lpad :用指定的字符实现左填充指定长度

   8. rpad:用指定的字符实现右填充指定长度

      当长度小于字符长度时,截取长度大小的字符。

   9.replace 替换

  •   数字操作函数

 1.round 四舍五入

      

 2.ceil 向上取整,

   Select ceil(-7.78)返回-7

  Floor 向下取整  ,

    Select ceil(-7.78)返回-8

  3.TRUNCATE(x,y) 截断 ,与 ROUND 最大的区别是不会进行四舍五入

      SELECT TRUNCATE(1.23456,3) -- 1.234

  4.mod取余

  •   日期操作函数

   

    1.now() 函数, 获取本地时间

    2.year() , month(), dayofmonth()  分别从一个日期或者时间中提取出年 ,月 ,日 。例如想得到创建日期为8月份的学生

SELECT * FROM hand_student a WHERE MONTH(a.CREATION_DATE)=8

  

   3.monthname() ;输出月份的英文单词名称

   

    4.timestampdiff() 函数,比较两个日期之间的差值,第一个参数为计算的结果单位。例如可以根据生日计算出年龄。

    

   5.to_days(),将日期转换成天数,比如计算最近三个月内过生日的学会。

   6.date_add()

    查询一个日期:

SELECT a.CREATION_DATE FROM hand_student a

     

  Mysql中日期的加减都是有函数的,比如日期进行加法运算的函数:date_add(), 比如说给一个日期增加一天,

select date_add(a.CREATION_DATE, interval 1 day) FROM hand_student a

    

 MySQL 为日期减去一个时间间隔:date_sub()

    

    MySQL 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)

    获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp(),因为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。select now()获得本地时间。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空恋旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值