• 对数据操作


    对数据操作

    增加数据

    语法:

        insert into 表名【(字段列表)】 values(值列表), (值列表);

    说明:

    • 如果省略字段列表,那么则是全部字段插入数据,此种情况,要求值列表中值的顺序与表中字段的顺序,个数要一致
    • 如果有字段列表,那么则是部分字段数据插入,此种情况,要求值列表中值的个数与字段列表中的字段的个数一致,顺序也要一致
    • 值列表中字符型值需加引号(建议单引号)
    • 可以有多个值列表,表示一次插入多行数据。

    数据查询

    select *|字段列表|字段1 as 别名 from 表名【where子句】【group by子句】【having 子句】【order by 子句】【limit子句】

    数据的更改

    update 表名 set 字段=值, 字段=值,.... 【where子句】

    数据删除

    delete from 表名 【where子句】

    提示:对于更改与删除一定要注意,where条件是否正确。

    字符集

    gbk

    utf8

    gb2312

        MySQL一种C/S结构,从C通过网络向S发送数据,那么就需两者之间通讯的字符要一致(S 要明白C使用的是何种字符编码向S发送数据)

    MySQL对通讯字符集的设置是通过变量来实现的。

    字符编码问题:

    1、创建表

    2、出现错误

        出现问题的原因是当前客户端与服务器通信的字符编码,与服务器默认的不一致。

    解决:

        查看与通信相关的字符集变量:

    示例:

    说明:

        character_set_client        用于告诉服务器当前客户端与之通讯所使用的编码。MySQL服务器不知道未来连接的客户端使用的什么编码,所以默认所有的客户端都是utf8与MySQL进行通信(猜测,猜测往往是不准的)

    对应my.ini中的配置如下图:

    解决办法:

        由于cmd窗口的字符集,固定是GBK无法更改,所以需要告诉服务器端当前客户端使用的是gbk与你通信。

    语法:

        set character_set_client = '字符编码集';

    3、插入数据成功

     

    尝试查看表中的数据。出现乱码

    原因:服务器不知道当前客户端所需的显示编码,如下图

    说明:

        上一步中的set character_set_client只是告诉了服务器,客户传递给服务器的编码方式,服务器现在默认,客户所有的编码方式都是默认是UTF8

    解决办法:还需告诉服务器,当前客户端接收的编码格式

    语法:

        set character_set_results = '编码方式';

    示例:

    再查询数据:

    character_set_connection    变量只是在MySQL服务器内部为了实现数据转换的平滑过度,而设立一个变量,一般使用时,character_set_connection不能低于character_set_client变量的字符编码。

    MySQL编码的转换过程

     

    查看MySQL支持的字符集

    语法:

        show charset;

    示例:

    character_set_*            都是进程级的,只在当前连接有效,如果关闭当前连接再重新开启,又是一个新的连接,MySQL DBMS还会使用变量的默认值与客户端进行通信。

    注意:

        数据库的存储编码与character_set_*三个变量没有任何关系。只要DBMS能正常接收到数据,那么就可以在内部自动转换。

     

    列类型(字段类型)

    create table 表名(

    字段名 字段类型 【附加属性】,

    字段名 字段类型 【附加属性】,

    ....

    )【表选项】

    整型    

    类型

    字节

    最小值(有符号)

    最大值(有符号)

    最小值(无符号)

    最大值(无符号)

    TINYINT

    1

    -128

    127

    0

    255

    SMALLINT

    2

    -32768

    32767

    0

    65535

    MEDIUMINT

    3

    -8388608

    8388607

    0

    16777215

    INT

    4

    -2147483648

    2147483647

    0

    4294967295

    BIGINT

    8

    -9223372036854775808

    9223372036854775807

    0

    18446744073709551615

    unsinged

    默认MySQL认为整型数据是分正负数,在现实的需求,有时是不需负数,所以,可以使用unsigned关键字指定,整型数据为无符号位。

    显示宽度

        主要是用于在显示时的一个位数,并不对真实的数据位数进行限制。

    示例:

    零填充

    zerofill

        当为某个字段仅设置了显示宽度时,在显示的时没有任何效果,显示宽度必须配合zerofill。当设置了显示宽度的字段,在显示时数据没有达到显示的宽度时,会在数值前使用'0'进行填充。

    小数型

    float单精度

    double双精度

    类型

    字节

    最小值

    最大值

    Float

    4

    -3.402823466 E+38

    3.402823466E+38

    Double

    8

    -1.7976931348623157E+308

    1.7976931348623157E+308

     

    0 000 0000 0 1.000 0000 0000 0000 0000 0000

    float(m,n);

        m表示总位数

        n表示小数位

        整数位m-n

    浮点数的特点:

    • 浮点数只能精确到7位左右,由于浮点数的存储格式(000 0000 0000 0000 0000 0000)全为1时,能够表示的十进制数只有6至7位。
    • 整数位不能超过m-n
    • 小数位可以超过n
    • 浮点数不可以人为的越过设置的位数,但是由于系统自动进位产生超过的情况,mysql认可。

    示例:

    定点型(货币型)

    decimal(m,n);

    m也是表示全部数位

    n表示小数

    文本型

    char定长

        char(L),L长度,表示的是字符,L最大是255

        如果实际存储的数据小于L个,那么所占存储空间也是L个字符的空间

    varchar变长

        varchar(M),M最大长度,M最大的理论值是65535

        如果实际存储的数据小于M,那么所占存储空间是,实际字符个数所占的空间,还需加1或2个字节。

    存储空间:示例如下

    f1所占的存储空间:

        10*2=20字节

    f2所占的存储空间:

        6*2=12字节+1字节=13字节

    MySQL记录长度

    MySQL中一条记录的最大的长度是65535个字节。

    一条记录中可能存储多种数据类型。

    原因:

        MySQL会为每个字段的默认值设置为null,所以需要有一个字节来记录Null值

        varchar需要1或2个字节记录数据的长度,所以65535-2=65533

    text            

    tinytext            255

    text                65535

    mediumtext        

    longtext        

     

    blob    主要用于存储二进制数据,比如:图片文件内容、视频、音频文件内容,但是不会使用数据库存储二进制数据。

     

  • 相关阅读:
    MongoDB构架图分享
    如何打印一个对象
    使用thrift进行跨语言调用(php c# java)
    MySQL 数据类型
    海量存储(转)
    Redis文章链接
    关于ActiveMQ的配置
    MySQL TIPS
    如何得到一个随机密码
    MySQL VS Oracle
  • 原文地址:https://www.cnblogs.com/nyxd/p/5356965.html
Copyright © 2020-2023  润新知