01:插入数据
- 使用insert语句来完成插入操作,插入操作可以采用下列方式
- 插入完整的行
- 插入行的一部分
- 插入多行
- 插入某些查询的结果
02:插入完整的行
- 插入完整的行,格式:insert into 表名(列名) Values(各个列的值)
插入完整的行(说明)
- 在插入行时,MySQL将用values列表中的相应值填入列表的对应项,VALUES的第一个值对应于第一个指定的列名。因为提供了列名,VALUES必须以其指定的次序匹配指定的列名,不一定按各个列出现在实际表中的次序,优点是,即使表的结构改变,此insert语句仍然能正常工作
03:插入多行
- Insert可以插入一行到一个表中,也可以同时插入多行到一个表中
04:插入其他查询得到的数据
- insert 可以插入由select查询出来的值。该方法由一条insert语句和一条select语句组成
- 格式:insert into 表A(列1,列2)select 列1,列2 from 表B;
05:更新数据
- 为了更新表中的数据,可使用update语句
- Update语句可以更新表中特定的行,也可以更新表中所有航
- 注意:update语句如果后面不跟where语句的话,将修改表中所有的行,使用的时候需要小心
以免产生错误的修改
更新数据(实例)
- 修改客户编号为1005的客户的电子邮件地址
更新多个列
06:删除数据
- 从一个表中删除数据,使用delete语句
- delete的使用方法有以下两种
- 从表中删除特定的行(通过where子句指定条件)
- 从表中删除所有的行(不带where子句)
删除数据(实例)
- 删除表中特定的行,通过使用where子句来指定删除哪一行
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:数值类型
- 数值型的列类型包括:
- 整型
- 浮点型
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字节大整数
- 带符号:-
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是常用的两种字符串类型,区别是:
- CHAR是固定长度的,每个值占用相同的字节,不够的位数MySQL会在它的右边用空格字符补足
- VARCHAR是一种可变长度的类型,每个值占用其刚好的字节数再加上一个用来记录其长度的字节即L+1字节
18:CHAR VS VARCHAR?
- 如果数据都有相同的长度,选用VARCHAR会多占用空间,因为有一位用来存储其长度
如果数据长短不一,选用VARCHAR能节省存储空间
- 而CAHR不论字符长短都需要占用相同的空间,即时是空值也不例外
- 如果长度出入不大,而且是使用MyISAM或ISAM类型的表,则用CHAR会比VARCHAR好,因为MyISAM和
ISAM类型的表对处理固定长度的行的效率高
19:日期、时间型类型
- MySQL总是把日期和日期里的年份放在最前面,按照年月日的顺序显示
- DATE、TIME、和DATATIME类型分别存放日期值,时间值,日期和时间值的组合
- 格式分别为:
- ‘CCYY-MM-DD’
- ‘hh:mm:ss’
- 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