玖叶教程网

前端编程开发入门

mysql基础总结(四)

1.mysql中的字符串类型都有哪些?

char(N)         0~255
varchar(N)      0~65535
tinyblob        0~255
blob            0~655335
meduimblob      0~167772150
longblob        0~4294967295
tinytext        0~255
text            0~65535
MEDIUMTEXT      0~167772150
LONGTEXT        0~4294967295
VARBINARY(N)    0~N个字节的变长字节字符集
BINARY(N)       0~N个字节的定长字节字符集

2.varchar和char的区别是什么?分别适用的场景有哪些?

VARCHAR 和 CHAR 最大区别就是,VARCHAR 的长度是可变的,而 CHAR 是固定长度,CHAR 的取值范围为1-255,因此 VARCHAR 可能会造成存储碎片。由于它们的特性决定了 CHAR 比较适合长度较短的字段和固定长度的字段,如身份证号、手机号等,反之则适合使用 VARCHAR。

3.mysql存储金额应该适用哪种数据类型?为什么?

mysql存储金额应该适用decimal 因为如果存储其他数据类型,比如float有导致小数点后数据丢失的风险

4.limit 3,2的含义是什么?

去除前三条数据之后查询两条信息

5.now()和current_date()有什么区别?

now() 返回当前时间包含日期和时分秒,current_date() 只返回当前时间

6.如何去重计算总条数?

使用 distinct 去重,使用 count 统计总条数,具体实现脚本如下:select count(distinct f) from t

7.lastinsertid()函数功能是什么?有什么特点?

lastinsertid()用于查询最后一次自增表的编号,它的特点是查询时不需要指定表名,使用selectlast_insert_id()即可查询,因为不需要指定表名所以它始终以最后一条自增编号为主,可以被其它表的自增编号覆盖,比如A表的最大编号是10,lastinsertid()查询出来的值为10,这时B表插入了一条数据,它的最大编号为3,这个时候使用lastinsertid()查询的值就是3。

8.删除表的数据有几种方式?他们有什么区别?

删除数据有两种方式:delete和truncate他们的区别如下:

a.delete可以添加where条件删除部分数据,truncate不能添加where条件只能删除整张表。

b.delete的删除信息会在mysql的日志中记录,而truncate的删除信息不被记录在mysql的日志中,因此delete的信息可以被找回而truncate的信息无法被找回。

c.truncate因为不记录日志所以执行效率比delete快

delete from t where username='redis'; truncate table t;

9.mysql中支持几种模糊查询?它们有什么区别?

mysql中支持两种模糊查询regexp和like,like是对任意多字符匹配或任意单字符进行模糊匹配,而regexp则支持正则表达式的匹配方式,提供比like更多的匹配方式,regexp和like的使用示例如下:

delete from t where username='redis'; truncate table t;
select from person where uname regexp '.SQL*.';

10.mysql支持枚举吗?如何实现?它的用途是什么?

MySQL 支持枚举,它的实现方式如下:

create table t(
    sex enum('boy','grid') default 'unknown'
);

枚举的作用是预定义结果值,当插入数据不在枚举值范围内,则插入失败,提示错误 Data truncated for column 'xxx' at row n 。


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言