ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2020-06-29 10:07:23  阅读:223  来源: 互联网

标签:00 字节 数据类型 表中 改查 插入 MySQL 类型


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

 

标签:00,字节,数据类型,表中,改查,插入,MySQL,类型
来源: https://www.cnblogs.com/kelly11/p/13206315.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有