登陆  跳到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.

posted on 2015-04-20 09:44  一天两天三天  阅读(314)  评论(0编辑  收藏  举报