mysql 技术总结

以前自己的保存的技术文档,都在自己的硬盘上,后来硬盘出错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_;

你可能感兴趣的:(mysql)