深入浅出mysql基础篇读书笔记

版本8.0.25
1、p19 int(2)已经不推荐了
2、p28 无序排列改为按原表顺序排列会更好,无序也没错,但是容易被误解为随机排列(类似HashMap),但其实是按照原表顺序排列
3、p29 count(1),读者可以通过select 1 from emp的执行结果进行理解。
4、p30 mysql是有inner join语句的
5、p31 输出结果中会有NULL
6、p34 DCL语句有误,新版本请参考
MYSQL8创建新用户报错:You have an error in your SQL syntax;check…
7、p39 中关于zerofill的测试,说明8.0版本的 int (2) 这类写法虽然不会报错,但是已经无效了。默认宽度就是10。
8、p40 中创建测试表的语法错误,表名和字段名都不需要单引号。作者应该是将show create table xx 的输出,截图了。
9、p42 中bit的值会显示了,格式是0x
深入浅出mysql基础篇读书笔记_第1张图片
10、p45 创建timestamp类型的字段并没有赋予默认值,null依旧为yes,因为默认explicit_defaults_timestamp为on
11、p45 中间的add column以timestamp为类型的后面必须跟上一个default current_timestamp,所以是不会出现0000-00-00 00:00:00的
12、p47 insert into t values(19700101080001)报错,解决办法比较复杂而且涉及mysql设置,我测试了一下08不行 9点之后的时间是可以的,估计是往后延了一个小时不让用。下限变成了
1970年1月1日9点
上限也变了,但是变化比较小
还有就是现在插入不合适的时间会直接报错,不让插入,所以不会有0000-00-00 00:00:00的情况
13、p51 奇怪的语法,insert into xxx set c = ‘a’; 没见过,但是能用。和普通版本的insert一个效果。
14、p51的enum类型,只能插入两种值,一种就是设定的枚举值,一种是1和2这两种数字,其他数据会报错
ERROR 1265 (01000): Data truncated for column ‘gender’ at row 1
15、p52页最顶上的那句话没看懂,什么叫只能从值集合中选取单个值,而不能一次取多个值。应该是不能像set那样用把枚举值用逗号隔开。
16、p52 create table语句有问题,很简单的问题,这里就不说了。
17、p53 语法错误的json数据,会报更详细的错误提示,缺少],会说
“Missing a comma or ‘]’ after an array element.”
缺少},会说
“Missing a comma or ‘}’ after an object member.”
18、这算是勘误了,p57的<=介绍中写成0<1了
19、补充insert(str,x,y,str2)对中文字符无差别。
20、p64 left(‘beijing2008’,null)会显示null
21、p67建议补充rand()函数范围是包含0,不包含1
22、p67 round(1,2)输出1而不是1.00
23、p69 unix_timestamp()中传入curdate()显示的会是当天0点的timestamp,传入数字会显示0
24、p70的%U的解释中的周(0,1,52)看不懂什么意思
25、p71也的date_add的负数例子建议把列名的after改为before
26、p72中的case的相关语句,中的第一句as salary_level没有as,第二句有 as,但是效果完全相同。
27、p73句的case when expr中的解释的一句:直接在when后面写条件表达式,并且只返回第一个符合条件的值。 这个并且只,这句看不懂什么意思。
28、p75 json文档其实也就是json文本
29、p76 中mysql的set语句之前并没有介绍过,看到的话会很茫然,其实是mysql的一种设置用户变量的一种语法,还有select也可以设置变量,具体的内容请看这篇文章
mysql用户变量与set语句示例详解
30、p76 的select json_containts(@j,@j2,’$.jack’);要小心变量里的json文档写错。
31、p76 json_contains_path可以加一句默认one_path
32、突然想到测试一下json_object是否传入同一个key的对象,然后测试了一下,
insert into t4 values(json_object(“name”,“小李”,“name”,“小陈”));
最后只会留下 “name”:“小陈”
这个可以在p53做个例子。
33、p77介绍的 $2这种语法会报错
ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 1.
34、p87 over和partition by 语法看不懂
35、p89 的5.6.3上面的amount都是800的两条记录上随机排序,应该说按原表顺序列
36、p90 ntile()写成了nfile()
37、p91 nth_value(order_id,2)之后会出现很奇怪的结果,导致我没法看懂,那个结果是第一组确实是null,4,4,4,4但是第二组全是10 ,没有null,不知道为什么。应该是我还不够了解的原因,
38、p91下面的create_date下划线没加
39、p95 password函数在8.0已经取消了,可以用sha1()、md5()

你可能感兴趣的:(笔记,mysql,数据库,database)