转 mysql distinct函数 与 免密码登录 与 查看表的结构
#########sample 1
mysql中去重 distinct 用法
在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段,例如有如下表user:
用distinct来返回不重复的用户名:select distinct name from user;,结果为:
这样只把不重复的用户名查询出来了,但是用户的id,并没有被查询出来:select distinct name,id from user;,这样的结果为:
distinct name,id 这样的mysql 会认为要过滤掉name和id两个字段都重复的记录,如果sql这样写:select id,distinct name from user,这样mysql会报错,因为distinct必须放在要查询字段的开头。
所以一般distinct用来查询不重复记录的条数。
如果要查询不重复的记录,有时候可以用group by :
select id,name from user group by name;
https://www.cnblogs.com/shiluoliming/p/6604407.html
#####sample 2
1、查看标的创建语句
SHOW CREATE TABLE table_name;
2、简单查看表结构
DESC table_name;
3、查询表结构详细信息——包括列注释
select * from information_schema.columns where table_schema = 'db' #表所在数据库
and table_name = 'tablename' ; #你要查的表
4、查询表结构部分详细信息——包括列注释
select column_name,
column_comment from information_schema.columns where table_schema ='db' and
table_name = 'tablename' ;
5、查看表的信息
select table_name,table_comment from information_schema.tables where table_schema = 'db' and table_name ='tablename'
————————————————
版权声明:本文为CSDN博主「qq_42072311」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42072311/article/details/80600200
########sample 3
利用.my.cnf,安全实现Shell下MySQL免输入密码登录
2018-06-18 17:22:25 1428次
MySQL,相信大家都不陌生,平时也可能会在Linux服务器上使用mysql,mysqldump等登录到MySQL服务器进行操作。
如果直接执行
mysql/mysqldump -u root -p
则会提示输入该用户的密码。
想一想,如果执行该命令的是cron等非交互式的程序,那到这一步就无法继续。
有人会在-p后接上密码,这是非常不安全的一种做法,万一有用户这时执行ps aux,你的密码就暴露了……
其实,MySQL官方文档有说明,可以在~/.my.cnf处指定用户的密码。
.my.cnf的格式如下:
[client]
password="MySQL密码"
user=MySQL用户名
上面的user一行可以省略,不指定user,则自动以当前Shell登录的用户身份登入mysql。
把上述代码保存到~/.my.cnf,再次输入mysql(或mysql -u 用户名),mysql-client就会自动读取当前用户的家目录下.my.cnf文件的信息,可以无密码自动登入MySQL。
cron等非交互式的程序执行mysql,可能不会自动读取~/.my.cnf,或者.my.cnf保存在其他路径或保存为其他文件名时,就需要使用–defaults-file参数手动指定该配置文件的路径了:
mysql --defaults-file=/folder1/folder2/filename -u 用户名
最后说一句:一定要保证.my.cnf别的用户/组不能读取(chmod 400)