以前自己的保存的技术文档,都在自己的硬盘上,后来硬盘出错4年积累的功能技术文档,项目代码全部都不存在了,于是思前想后决定,以后将自己的技术都分享出来,这样既可以帮助别人又可以永久保存,双赢。因为我用到的mysql技术会不断的深入,本文档会持续的更新。
一、Linux 下的使用:
查询mysql的安装情况:rpm -qa|grep -i Mysql 只显示mysql的安装程序,不加i有其他的
1、安装服务
MySQL-server-5.6.23-1.linux_glibc2.5.x86_64.rpm
2、安装客户端
MySQL-client-5.6.23-1.linux_glibc2.5.x86_64.rpm
3、刚安装没有密码
提示 You must SET PASSWORD before executing this statement
mysql>SET PASSWORD = PASSWORD('123456');
绿色版:window下的。设置path后
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
4、远程连接还没有复权,针对用户复权
提示 :ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
或者:'Access denied for user 'root'@'localhost' (using password: YES)'
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
5、密码过期修改密码
# mysqladmin -u USER -p password PASSWORD;
6、ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
7、绿色版解压后,首先增加 环境变量讲 \bin目录加入 到path里面 然后进行3的无密码操作。
8、启动mysql service mysqld start
二、windows
1、windows 安装mysql后,如果 cmd 启动mysql时提示“不是内部或外部命令,也不是可运行的程序”。在环境变量下面,加入 MYSQL_HOME 并将%MYSQL_HOME%\bin 加入%PATH%下.
三、sql、函数、索引、试图、触发器
函数
(1) 日期、字符串转换
date_format(date,'%Y-%m-%d') -------------->oracle中的to_char();
str_to_date(date,'%Y-%m-%d') -------------->oracle中的to_date();
%Y:代表4位的年份
%y:代表2为的年份
%m:代表月, 格式为(01……12)
%c:代表月, 格式为(1……12)
%d:代表月份中的天数,格式为(00……31)
%e:代表月份中的天数, 格式为(0……31)
%H:代表小时,格式为(00……23)
%k:代表 小时,格式为(0……23)
%h: 代表小时,格式为(01……12)
%I: 代表小时,格式为(01……12)
%l :代表小时,格式为(1……12)
%i: 代表分钟, 格式为(00……59)
%r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)
%T:代表 时间,格式为24 小时(hh:mm:ss)
%S:代表 秒,格式为(00……59)
%s:代表 秒,格式为(00……59)
sql
(1) usersEditLog 表内有多条 userId,editStatus 字段相同 的数据,如果去除想要数据的id,再根据id 获取去掉那些重复的数据。
SELECT * FROM usersEditLog WHERE id IN (
SELECT one.id FROM (
SELECT userId,editDate,id FROM usersEditLog WHERE editStatus = 3 AND userId IN ( 44 , 51 )
ORDER BY userId,editDate DESC ) ONE GROUP BY userId
)
(2)表字段增加,删除,修改字段, 修改表名 字段后面课追加 属性设置 default 0 not null auto_increment ,add primary key (new_field_id);
添加字段 添加一个字符串字段 ,并设置默认值 ALTER TABLE users ADD (autoWithdraw VARCHAR(16) DEFAULT 'NO')
删除字段 ALTER TABLE users DROP COLUMN autoWithdraw ;
修改字段 类型 将字段修改为 Integer ALTER TABLE users MODIFY autoWithdraw INTEGER;
修改字段 名称 ,指定新字段的类型 ALTER TABLE users CHANGE autoWithdraw autoWithdrawTwo INTEGER ;
修改表名 alter table users rename users_;