MYSQL练习题
1、MySQL中的varchar和char有什么区别?
1、CHAR的长度是固定的,而VARCHAR的长度是可以变化的,比如,存储字符串“abc”,对于CHAR(10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR(10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度储存。
2、CHAR的效率比VARCHAR的效率稍高。
3、CHAR(10)若输入数据的字符小于10,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其中超出部分。VARCHAR(10)数据类型的存储长度为实际数值长度。
2、MySQL中having后面可以使用别名吗?为什么?
SQL语句的语法顺序:
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> UNION -> ORDER BY
因此一般不能在having condition中使用select list中的alias。
但是mysql对此作了扩展。在mysql 5.7.5之前的版本,ONLY_FULL_GROUP_BY sql mode默认不开启。在5.7.5或之后的版本默认开启。
如果ONLY_FULL_GROUP_BY sql mode不开启,那么mysql对标准SQL的扩展可以生效:
1.允许在select list、having condition和order by list中使用没有出现在group by list中的字段。此时mysql会
随机选择没有出现在group by list中的字段的值。效果和使用ANY_VALUE()是相同的。
2.允许在having condition中使用select list中的alias
3、查找入职员工时间排名倒数第三的员工所有信息
建表:
CREATE TABLE `employees`
(`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(10) NOT NULL,
`last_name` varchar(10) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL);
插入数据:
insert into employees values(10001,'1955-01-21','Tom','Brant','M','1989-09-01');
insert into employees values(10002,'1955-01-21','Li','Brant','M','1989-09-02'),
(10003,'1955-01-21','Zhang','Brant','M','1989-09-03'),
(10004,'1955-01-21','Wang','Brant','M','1989-09-04'),
(10005,'1955-01-21','Zhao','Brant','M','1989-09-05'),
(10006,'1955-01-21','Zhou','Brant','M','1989-09-06');
查询语句:
select a.emp_no,a.birth_date,a.first_name,a.last_name,a.gender,a.hire_date
from
(select *,row_number() over(order by hire_date desc) as 'rank'
from employees limit 2,1)a;
捕获.PNG
PYTHON练习题
1、怎么对列表进行去重操作?
list1=[2,1,2,4,5,6,10,3,3,3,7]
输出示例:
[2, 1, 4, 5, 6, 10, 3, 7]
执行代码:
list1=[2,1,2,4,5,6,10,3,3,3,7]
list2=[]
for i in list1:
if i not in list2:
list2.append(i)
print(list2)
2、pandas的axis参数怎么理解?
axis=0、axis=index,指的是遍历每个index、行号,即在纵向上遍历每列,所以做sum()、mean()等运算时,是对每列数据做操作,而drop(index, axis=0),传入的参数指定了某一行号,所以会在纵向上遍历每列,去掉行号对应位置的数据。
axis=1、axis=columns,指的是遍历每个columns、列名,即在横向上遍历每行,所以做sum()、mean()等运算时,是对每行数据做操作,而drop(col, axis=1),传入的参数指定了某一列名,所以会在横向上遍历每行,去掉列名对应位置的数据。
网友评论