美文网首页
mysql 练习题

mysql 练习题

作者: 奋斗的喵儿 | 来源:发表于2020-07-29 15:06 被阅读0次

MYSQL部分

1.概述Group by 和Distinct去重的区别?

    Group by: 分组,相同字段归为一个,可以进行计数、求和等

    Distinct: 去重,得到只有唯一记录。

2.命令行执行insert into语句向表中插入数据报如下错误: ERROR 1366:Incorrect string value: '\xC3\XF7' for column 'name' at row 1

分析此类错误的原因及解决思路

    插入的数据与表中设置的编码不符,修改2个编码一致。

3.MYSQL中where 和and的区别是什么?

    where用于定位,查找范围

    and 逻辑连接词

4.left join on and与left join on where的区别

    left join on and 左联结,on条件下 and对前面的集合起作用,

    where 是集合聚合之后起作用。

Mysql 基础

1、Mysql中字段char、varchar的区别

char:长度固定,char(10), 存入frog,所占长度10

varchar:长度可变, varchar(10),存入frog,所占长度为4

char的存取速度比varchar快的多,优先速度,再次空间;char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节。

参考答案

在MySQL中,char、varchar类型的字段都可以用来存储字符类型的数据,char、varchar都可以指定最大的字符长度

它们的存储方式和数据的检索方式也都不一样。

数据的检索效率是:char> varchar

具体说明:

char:存储定长数据很方便,CHAR字段上的索引效率级高,必须在括号里定义长度,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时候后面的空格会隐藏掉,所以检索出来的数据需要记得用什么trim之类的函数去过滤空格。

varchar:存储变长数据,但存储效率没有CHAR高,必须在括号里定义长度,可以有默认值。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。

2、请建立一张表judge_varchar_char

表名judge_varchar_char,字段分别为

varchar_info varchar(5),

char_info char(5),

int_info int(2)

要求int_info字段增加unsigned zerofill属性

create table judge_varchar_char(

varchar_info varchar(5),

char_info char(5),

int_info int(2))

alter table judge_varchar_char modify int_info int(2) unsigned zerofill;

3、题目2的表中,插入(‘200000’,‘300000’,1)的数据会出现什么情况,为什么?

insert into judge_varchar_char values('200000','300000',1);

2 warnings : 插入的数据 200000,300000 均长度超过设定长度,结果只截取前5个,如下:

+--------------+-----------+----------+

| varchar_info | char_info | int_info |

+--------------+-----------+----------+

| 20000        | 30000    |      01 |

+--------------+-----------+----------+

4、请插入带空格的数据('ab  ','ab  ',2)分别求varchar_info,char_info的字符长度和字节长度

insert into judge_varchar_char values('ab  ','ab  ',2);

select length(varchar_info),length(char_info),char_length(varchar_info),length(char_info)

from judge_varchar_char where int_info='02';

补充:

length() 字节长度, 单位是字节,utf8编码下,一个汉字三个字节,一个数字或字母一个字节。gbk编码下,一个汉字两个字节,一个数字或字母一个字节。

char_length():单位为字符,不管汉字还是数字或者是字母都算是一个字符

5、用题4的数据证明varchar和char的差别

varchar: 空格保留

char :删除了空格

6、创表时int(5),5代表什么?与varchar(5)的5有什么区别?

int(5):表示数据宽度,zerofill存在的条件下,不足5位前面会用0填充,超过5位实际值显示

varchar(5):表示数据存储的最大长度,超过5则取前5个

7、请一次语句中插入2条数据,(‘cd  ’,'cd  ',1),('cd  ','cd  ',123456')

insert into judge_varchar_char values('cd  ','cd  ',1),

('cd  ','cd  ',123456);

8、这两个数据有什么不同,为什么?

int(2) 可以完全显示超出长度的值

相关文章

  • 数据库语言杂记

    MySQL ORDER BY 排序 IF 及 IN 字符串连接函数concat() MySQL练习题:练习题一 ...

  • 数据蛙第九期就业班 2020/7/23

    MYSQL练习题 1、MySQL中的varchar和char有什么区别? 1、CHAR的长度是固定的,而VARCH...

  • 2020 -7-23

    mysql 练习题1、mysql中的varchar 和 char 有什么区别?二者存储长度不同,char 是不可变...

  • Mysql练习题-50

    Mysql 练习题 文章来自网络,仅供自学 我使用的Mysql版本是5.7.19。答案可能会因版本会有少许出入。 ...

  • 7.27 mysql练习

    mysql练习题目: GROUP BY 语句 基本用法: GROUP BY 语句中的GROUP_CONCAT()函...

  • 10-16练习题

    MySQL练习题 题目1 问题1:如何暂停或开启mysql服务? 按win+r打开,输入cmd,快速打开命令行界面...

  • LeetCode-mysql练习题

    leetcode-mysql练习题总结: 老师指路->https://www.jianshu.com/u/989c...

  • mysql练习题

    端口登录 3306或3308

  • MySQL 练习题

    01第一天20180703 【SQL练习】经典SQL练习题 02第二天20180704 sql语句练习50题(My...

  • MySql 练习题

    在网上收集到的一些mysql查询题目项目地址:https://github.com/ECUST-XX/mysql_...

网友评论

      本文标题:mysql 练习题

      本文链接:https://www.haomeiwen.com/subject/ksihrktx.html