• MySQL增删改查&数据类型笔记8


    01:插入数据

    • 使用insert语句来完成插入操作,插入操作可以采用下列方式
    1. 插入完整的行
    2. 插入行的一部分
    3. 插入多行
    4. 插入某些查询的结果

    02:插入完整的行

    • 插入完整的行,格式:insert into 表名(列名) Values(各个列的值)

    image.png

    插入完整的行(说明)

    • 在插入行时,MySQL将用values列表中的相应值填入列表的对应项,VALUES的第一个值对应于第一个指定的列名。因为提供了列名,VALUES必须以其指定的次序匹配指定的列名,不一定按各个列出现在实际表中的次序,优点是,即使表的结构改变,此insert语句仍然能正常工作

    03:插入多行

    • Insert可以插入一行到一个表中,也可以同时插入多行到一个表中

    image.png

    04:插入其他查询得到的数据

    • insert 可以插入由select查询出来的值。该方法由一条insert语句和一条select语句组成
    • 格式:insert into 表A(列1,列2)select 列1,列2 from 表B;

    05:更新数据

    • 为了更新表中的数据,可使用update语句
    • Update语句可以更新表中特定的行,也可以更新表中所有航
    • 注意:update语句如果后面不跟where语句的话,将修改表中所有的行,使用的时候需要小心

    以免产生错误的修改

    更新数据(实例)

    • 修改客户编号为1005的客户的电子邮件地址

    image.png

    更新多个列

    image.png

    06:删除数据

    • 从一个表中删除数据,使用delete语句
    • delete的使用方法有以下两种
    1. 从表中删除特定的行(通过where子句指定条件)
    2. 从表中删除所有的行(不带where子句)

    删除数据(实例)

    • 删除表中特定的行,通过使用where子句来指定删除哪一行

    image.png

    DELETE语句注意事项

    • 在使用delete语句时,一定要确定时删除特定的行,还是删除整个表中的行,如果是删除特定的行,则需要

    提供where子句来指明删除哪些行

    • delete子句删除的是表中的行,而不是表本身

    07:TRUNCATE语句

    • 可以使用truncate table 语句删除整个表中的行,而且速度比delete语句块,truncate table语句事先删除整张表,然后重新创建一个空表
    • 格式:truncate table 表名

     

    08:MySQL列数据类型

    MySQL字段类型

    数值类型

    字符串类型

    日期类型

    时间类型

    日期时间类型

    如何选择CHAR和VARCHAR

    09:MySQL表字段类型

    • MySQL数据库的表是 一个二维表,由一个或多个数据列构成
    • 每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理
    • MySQL中的列类型有三种:

    数值类,字符串类和日期/时间类

    10:数值类型

    • 数值型的列类型包括:
    1. 整型
    2. 浮点型

    11:整型(小)

    • TINYINT:1字节,非常小的正整数

    带符号:-128~127,不带符号:0~255

    • SMALLINT:2字节小整数

    带符号:-32768~32767,不带符号:0~65535

    • MEDIUMINT:3字节 中等大小的整数

    带符号:-8388608~8388607 不带符号:

    0~16777215

    • INT:4字节 标准整数

    带符号:-2147483648~2147482647,不带符号: 0~4294967295

    12:整型(大)

    • BIGINT:8字节大整数
    1. 带符号:-

    9223372036854775808~9232272003685477

    2.不带符号:0~18446744073709551615

    13:浮点型

    • FLOAT:4字节 单精度浮点数

    最小非零值:+-1.75494351E-38,最大非零值:+-3.402823466E+38

    • DOUBLE:8字节 双精度浮点数

    最小值非零值:+-2.2250738585072014E-308

    最大非零值:+-1.7976313488623157E+308

    • DECIMAL:M+2字节 以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定

    14:字符串类型

    • 字符串可以用来表示任何一种值,所以它是最基本的类型之一
    • 我们可以用字符串类型来存储图像或声音之类的二进制数据,也可存储用gzip压缩的数据

    15:字符串类型(char)

    • CHAR[(M)]:M字节
    • VARCHAR[(M)]:M字节 L+1字节
    • TINYBLOB,TINYTEXT:2^8-1字节 L+1字节
    • BLOB,TEXT:2^16-1字节 L+2
    • MEDIUMBLOB,MEDIUMTEXT:2^24-1字节L+3
    • LONGBOB,LONGTEXT:2^32-1字节L+4

    16:字符串类型(枚举与集合)

    • ENUM(‘value1’,‘value2’,。。。):65535个成员, 1或2字节
    • SET(‘value1’,‘value2’,。。。):64个成员 1,2,3,4或8字节

    17:CHAR与VARCHAR

    • CHAR和VARCHAR是常用的两种字符串类型,区别是:
    1. CHAR是固定长度的,每个值占用相同的字节,不够的位数MySQL会在它的右边用空格字符补足
    2. VARCHAR是一种可变长度的类型,每个值占用其刚好的字节数再加上一个用来记录其长度的字节即L+1字节

    18:CHAR VS VARCHAR?

    • 如果数据都有相同的长度,选用VARCHAR会多占用空间,因为有一位用来存储其长度

    如果数据长短不一,选用VARCHAR能节省存储空间

    • 而CAHR不论字符长短都需要占用相同的空间,即时是空值也不例外
    • 如果长度出入不大,而且是使用MyISAM或ISAM类型的表,则用CHAR会比VARCHAR好,因为MyISAM和

    ISAM类型的表对处理固定长度的行的效率高

    19:日期、时间型类型

    • MySQL总是把日期和日期里的年份放在最前面,按照年月日的顺序显示
    • DATE、TIME、和DATATIME类型分别存放日期值,时间值,日期和时间值的组合
    • 格式分别为:
    1. ‘CCYY-MM-DD’
    2. ‘hh:mm:ss’
    3. CCYY-MM-DDhh:mm:ss
    • DATA

    范围:1000-01-01~9999-12-31 大小:3字节

    格式:0000-00-00

    • TIME

    范围:-838:59:59~838:59:59 大小:3字节

    格式:00:00:00

    • DATETIME

    范围:1000-01-01 00:00:00~9999-12-31 23:59:59 大小:8字节 格式:0000-00-00 00:00:00

    20:日期时间类型

    • 如果把一个NULL值插入TIMESTAMP列,这个数据列就将自动取值为当前的日期和时间
    • 在创建和修改数据行时,如果没有明确对TIMESTAMP数据列进行复制,则它就会自动取值

    为当前日期和时间,如果行中有多个TIMESTAMP列,只有第一个会自动取值

    21:日期时间类型(特点)

    • TIMESTAMP

    范围:1970010100000~2037年的某个时刻 大小:4字节

    格式:CCYYMMDDhhmmss

    • 取值范围从1970010100000开始,即1979年1月1日,最大到2037年
    • 它的特点是能把数据行的创建和修改时间记录下来

    22:YEAR类型

    • YEAR是一种单字节的数据列类型
    • YEAR(4)的取值范围是1901~2155
    • YEAR(2)的取值范围是1970~2069,但只显示最后两位数

    23:YEAR类型(特点)

    • MySQL能自动把两位数字年份转换成四位数字的年份,如97和14被转换成1997和2014
    • 转换规则是这样的年份值00~69将被转换成2000~2019;年份值70~99倍被转换成1970~1999

     

  • 相关阅读:
    为什么cmd拖拽文件进去时有时候带引号,有时候不带?
    Android开发学习笔记:Spinner和AutoCompleteTextView浅析
    使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
    Android Fragment完全解析,关于碎片你所需知道的一切
    国外程序员推荐:每个程序员都应该读的非编程书
    百度地图添加覆盖物与给定两点路线规划
    Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
    Unable to execute dex: Multiple dex files define 解决方法
    Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
    poppupwindow android
  • 原文地址:https://www.cnblogs.com/kelly11/p/13206315.html
Copyright © 2020-2023  润新知