MYSQL部分
问题1.概述Group by 和Distinct去重的区别
distinct简单来说就是用来去重的,而group by的设计目的则是用来聚合统计的,两者在能够实现的功能上有些相同之处,但应该仔细区分,因为用错场景的话,效率相差可以倍计。
单纯的去重操作使用distinct,速度是快于group by的
mysql:distinct, group by 去重用法和区别
问题2.命令行执行insert into语句向表中插入数据报如下错误:
解答:1、检查对应数据库脚本该表是不是utf8编码
2、检查报错的字段(column) 是不是utf8编码
修改MySQL该字段的字符集与整理规则即可。假设数据表为test_01, SQL语句的字符集为utf8,出错的字段为address:
3、如果上边两条都没问题,直接输入带中文的插入语句发现没报错,那么就说明你的sql文件编码不对
用记事本打开cd.sql,另存为uft8格式文件,重新执行source /cd/example/cd.sql,发现ok。
问题3.MYSQL中where 和and的区别是什么?
解答:在MYSQL中where用来进行条件查询,后面支持多种运算符,进行条件的处理。and是一种逻辑运算符,使用and可以对多个条件进行查询
例:select * from students where age>18 or height>=180;
问题4.left join on and与left join on where的区别
解答:两者放置相同条件,之所以可能会导致结果集不同,就是因为优先级。on的优先级是高于where的。
首先明确两个概念:
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
在使用left jion时,and和where条件的区别如下:
1、 and条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。和右边的表关联不上,右边表的字段显示null;
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
PYTHON 部分
问题1:
1 # coding=utf‐8
2 import pandas
执行上面的代码,得到以下的错误提示
1 Traceback (most recent call last):
2 File "/xx/PycharmProjects/xx/xx/errs.py", line 2, in <module>
3 import requests
4 ImportError: No module named pandas
错误提示是什么意思?如何解决报错
解答:还没学到这里。
ImportError: No module named 'pandas'
问题2:
1 # coding=utf‐8
2 value = 9
3 if value % 2 == 1
4 print ("奇数")
5 else:
6 print ("偶数")
执行上面的代码,得到以下的错误提示
1 File "/xx/xx/PycharmProjects/xxx/errs.py", line 4
2 if value % 2 == 1
3 ^
4 SyntaxError: invalid syntax
SyntaxError报错是什么意思?如何解决此报错
解答:“SyntaxError: invalid syntax” 的意思就是 语法错误。应该在if声明后添加英文冒号 即正确语句应该是:if value%2==1:
【python】错误SyntaxError: invalid syntax的解决方法总结
问题3:
1 # ‐*‐ coding:utf‐8 ‐*‐
2
3 lst = [1, 2, 3]
4 print (lst[3])
执行上面的代码,得到以下的错误提示
1 Traceback (most recent call last):
2 File "/xxx/xxxx/PycharmProjects/error.py", line 4, in <module>
3 print (lst[3])
4 IndexError: list index out of range
为什么会出现上述错误?
解答:查询超出了索引的范围,越界。列表的索引是从0开始的,题中列表索引最大是到2,print(lst[2])