登陆 跳到mysql bin 文件夹 mysql.exe -u root -p
端口号不是默认的时候 mysql.exe -P 53306 -u root -p
修改mysql默认root密码
http://www.douban.com/group/topic/71659358/
1、停止mysql服务
开始→运行→输入cmd,打开命令提示符窗口,然后输入net stop mysql,相关截图如下所示:
2、在命令提示符窗口中进入mysql安装目录中的bin目录
在命令提示符窗口中分别输入以下两条命令,每输入一条命令按回车键:
d:cd www\mysql\bin
3、进入mysql安全模式(这样不用输入密码就能进入mysql数据库)
输入mysqld-nt --skip-grant-tables(我用的时候没有mysqld-nt 我的mysql是5.1版本,所以使用mysqld --skip-grant-tables ),此时屏幕上可能没啥反应,不用管它,放在一边接着往下做
4、重新打开一个cmd命令提示符窗口,开始→运行→输入cmd,在新打开命令提示符窗口中输入mysql -uroot -p,然后提示输入密码,不用输入密码,直接按回车键
5、输入以下命令开始修改超级管理员root密码(注意:命令中mysql.user中间有个“点”;命令中的htmer.com即为新密码,根据你的实际情况,换成你的新密码即可)
update mysql.user set password=PASSWORD('htmer.com') where User='root';
6、刷新权限表,输入如下命令
flush privileges;
7、退出,输入如下命令
quit
8、重新启动mysql服务(也可以直接重启服务器)
①打开任务管理器,将mysql-nt.exe这个进程结束
②在命令提示符中输入net start mysql即可重新启动mysql服务了
mysql cmd向上箭头可以复制显示历史sql记录;
mysql批量复制表数据
方式1:Insert into santian_employee(last_name, email, birth,create_time,DEPARTMENT_ID) select last_name, email, birth,create_time,DEPARTMENT_ID from santian_employee
tip1:mysql 反引号可以区分MYSQL的保留字与普通字符类似sqlserver的书名号[];可以用来处理别名;但是列名不建议包起来
tip2:timestamp是时间戳,当该条数据新建或更新的时候会自动更新;可用来处理脏数据;
tip3:mysql 事务隔离级别:
读未提交:只要修改了,事务还未提交就可以改之后的结果。出现问题,无法回滚。
读已提交:改了还要提交了才可以读到结果。
可重复读:执行前保存一个快照。不管改没改,看到的都是快照的内容
串行化(不可并发):不能并发访问,类似java中的同步 serializable关键字。
MySQL 数字类型转换函数(concat/cast)
1、将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ’80′
2、将varchar 转为Int 用 cast(a as signed) a为varchar类型的字符串
总结:类型转换和SQL Server一样,就是类型参数有点点不同 : CAST(xxx AS 类型) , CONVERT(xxx,类型)
可用的类型
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED
mysql 中timestamp默认不能为null
在MYSQL中如果在建表的时候没有指定Timestamp字段是否为NULL,则系统自动添加默认值,使用DEFAULT NULL也不好用,其实是可以使用NULL直接指定的,如下:
`CREATE_DATE` TIMESTAMP NULL
2、创建一个数据库abccs
mysql> CREATE DATABASE abccs;
删除主键
ALTER TABLE `wfmtest`.`products` DROP PRIMARY KEY;
列 用特殊的符号包裹起来区别关键字`products`
string 函数 http://dev.mysql.com/doc/refman/5.7/en/string-functions.html
日期函数 http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
可视化数据库操作工具 Navicat for MySQL MySQL Administrator
mysql 常用cmd命令
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)
断开:exit (回车)
创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
修改密码:mysqladmin -u用户名 -p旧密码 password 新密码
删除授权: revoke select,insert,update,delete om *.* from test2@localhost;
显示数据库:show databases;
显示数据表:show tables;
显示表结构:describe 表名; desc 表名;
创建库:create database 库名;
删除库:drop database 库名;
使用库:use 库名;
创建表:create table 表名 (字段设定列表);
删除表:drop table 表名;
修改表:alter table t1 rename t2
查询表:select * from 表名;
清空表:delete from 表名;
备份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql
恢复表: mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql(操作前先把原来表删除)
增加列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
删除列:ALTER TABLE t2 DROP COLUMN c;
备份数据库:mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename > database.sql
恢复数据库:mysql\bin\mysql -h(ip) -uroot -p(password) databasename < database.sql
复制数据库:mysql\bin\mysqldump --all-databases > all-databases.sql
修复数据库:mysqlcheck -A -o -uroot -p54safer
文本数据导入: load data local infile \"文件名\" into table 表名;
数据导入导出:mysql\bin\mysqlimport database tables.txt
MYSQL获取自增ID的四种方法
1. select max(id) from tablename
2.SELECT LAST_INSERT_ID() 函数
LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。
在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的 Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update 操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。使用单INSERT语句插入多条记录, LAST_INSERT_ID返回一个列表。
3. select @@IDENTITY;
@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。
比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。
4. SHOW TABLE STATUS;
得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.