数据库 & SQL
[Err] 1146 - Table 'alarmdemo.currentInfo' doesn't exist
find / -name my.cnf
vim /etc/my.cnf
[mysqld]
# (0:大小写敏感;1:大小写不敏感)
lower_case_table_names=1
重启后
cat /etc/my.cnf
MySQL8.0开户授权
drop user 'xing'@'%'; CREATE USER 'xing'@'%' IDENTIFIED BY '123456'; GRANT ALL ON *.* TO 'xing'@'%'; FLUSH PRIVILEGES; # 客户端连不上尝试下面操作 USE mysql; ALTER USER 'xing'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES; 数据库root用户 mysql -u root -p 登录不了尝试下面方式 [root@10-9-48-229 ~]# find / -name mysql.sock /var/lib/mysql/mysql.sock [root@10-9-48-229 ~]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
SC_AccessRecord记录了所有人刷卡进出闸机的记录,现在以每个人的卡号SC_CardGuidNO进行分组,找出每个人最后的刷卡记录
方式一
select s.SC_SerierNO,s.SC_DoorNO,s.SC_CardGuidNO,s.SC_EventTypeID,s.SC_InOutStatus,s.SC_AddTime from PongeeESD6806_CN.dbo.SC_AccessRecord s where s.SC_AddTime=( SELECT max(SC_AddTime) FROM PongeeESD6806_CN.dbo.SC_AccessRecord where s.SC_CardGuidNO=SC_CardGuidNO )
方式二
SELECT t.SC_SerierNO,t.SC_DoorNO,t.SC_CardGuidNO,t.SC_EventTypeID,t.SC_InOutStatus,t.SC_AddTime FROM ( SELECT SC_CardGuidNO, MAX(SC_AddTime) as SC_AddTime FROM PongeeESD6806_CN.dbo.SC_AccessRecord GROUP BY SC_CardGuidNO ) r INNER JOIN PongeeESD6806_CN.dbo.SC_AccessRecord t ON t.SC_CardGuidNO = r.SC_CardGuidNO AND t.SC_AddTime = r.SC_AddTime
显然,这个东西是max和group使用的入门级困惑
列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序
select ta.deptid,count(*) from employee ta, (select deptid,avg(salary) avgsal from employee group by deptid) tb where ta.deptid=tb.deptid and ta.salary>tb.avgsal group by ta.deptid order by ta.deptid
击石乃有火,不击元无烟!!