MySQL笔记(一)

来源:互联网 发布:互换期权 知乎 编辑:程序博客网 时间:2024/06/07 19:31
(一)
命令行启动mysql服务:如果是在win7系统,要在管理员身份运行下才能启动
net start mysql55
命令行关闭mysql服务:net stop mysql55或mysqladmin -u root -p shutdown
连接MYSQL
mysql -h 主机地址  -u 用户名  -p 用户密码
修改密码 
mysqladmin -u用户名  -p 旧密码  password 新密码
增加新用户
grant select on  数据库.* to 用户名@登录主机  identified by " 密码"
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc"; 
如果你不想 test2 有密码,能再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
显示数据库:mysqlshow  
显示root的数据库:mysqlshow -u root -p910812
显示版本号、状态、进程信息等:mysqladmin version status pro


查询版本信息,时间函数:select version(),current_date(); 
在没有打;的时候可以打\c消去前面的内容
显示全部的数据库/表:SHOW databases;SHOW TABLES;  
查看标的信息:DESCRIBE mytable;  


使用下面命令将文本文件“mytable.txt” 装载到 mytable表中: 
mysql> LOAD DATA LOCAL INFILE "c:\mytable.txt" INTO TABLE mytable;   
查看服务:
开始->运行->services.msc或者在我的电脑上右键-->管理-->服务或者控制面板\系统和安全\管理工具-->服务

(二)
备份数据库user所有表
mysqldump  -u 用户名 -p databasename >exportfilename”
mysqldump -h localhost -u root -p user >d:/log/user.sql
还原数据库user所有表
进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database user;",回车;切换到刚建立的数据库,输入"use user;",回车;导入数据,输入"source d:\\user.sql;",回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。 
放弃正在输入的命令:\c
显示命令清单:\h
退出mysql程序:\q
查看MySQL服务器状态信息:\s
SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分)
使用函数时,函数名和后面的括号之间不能有空格

(三)
drop 列名     //可以删除一列
drop primary key      //可以删除主键
engine 类型名       //可以改变表类型
rename as 新表名     //可以将表名更改
用字符串表示的数字在任何可能便于计算的地方都被自动地转换为数字。当执行转换时,MySQL遵循两个基本规则:
如果第一位是数字的字符串被用于一个算数运算中,那么它被转换为这个数字的值。
如果一个包含字符和数字混合的字符串不能被正确的转换为数字,那么它被转换成0。
在数据库中有时我们可能需要对一些数据进行处理,例如四舍五入、直接舍去后面的几位等,其实很简单,都是有现成的函数,我们只需要套用就行了:
select round(10.98*10)/10 from dual;--四舍五入
select ceil(10.63*10)/10 from dual;--取上限值
select floor(10.68*10)/10 from dual;--取下限值
1、CONCAT(str1,str2,...)
返回来自于参数连结的字符串。如果任何参数是NULL, 返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。 
2、LEFT(str,length) 
从左开始截取字符串.说明:left(被截取字段,截取长度) 
MYSQL的关键词 : 
SQL_CALC_FOUND_ROWS 
查看手册后发现此关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制)

(四)
MySQL默认操作模式是AUTOCOMMIT模式,在当前连接中,可以通过变量设置,启用(Enable),禁用(Disable)AUTOCOMMIT模式:
mysql>show variables like 'autocommit';
值1和ON是等效的,0和OFF也是等效的
mysql>set autocommit=0;
NySQL允许使用SET TRANSACTION ISOLATION LEVEL命令设置隔离级,新的隔离级将在下一个事物开始后生效。用户也可以在配置文件中,为整个服务器设置隔离级;或者使用下列命令,只为当前会话设置隔离级。
mysql>set session transaction isolation level read committed;
如需获知具体每张表使用何种引擎,可以使用SHOW TABLE STATUS命令,如检查user表:
mysql>show table status like 'user' \G;
MyISAM不支持事物和行级锁
一般来说,MyISAM将每个表存储成两个文件:数据文件和索引文件。两个文件的扩展名分别为.MYD和.MYI。
MyISAM的格式是平台通用的。
表转换三种方式:
1、mysql>alter table mytable engine=myisam;
2、转储(Dump)和导入(Import) 
3、create和select:
mysql>create table mytable_1 like mytable;
mysql>alter mytable_1 engine=myisam;
mysql>insert into mytable_1 select * from mytable;
如果数据量不大,这种方法效果不错。但是更高效的方法是增量地填充表,在填充每个增量数据块的时候都提交事务,这样就不会导致撤销日志变得过于庞大。假定id是主键,可以重复运行下列查询(每次主次增大x,y的值),直至所有的数据都复制到新表。
mysql>start transaction;
mysql>insert into mytable_1 select * from mytable where id between x and y;
mysql>commit;