1、取随机记录 SELECT id FROM student order by rand() limit 102、分配远程用户权限GRANT ALL ON db_name.* TO username@% IDENTIFIED BY 'userpassword'或GRANT ALL PRIVILEGES ON *.* TO username@% IDENTIFIED BY 'mypassword' WITH GRANT OPTION;3、select into 和 setselect a,b,c into @a,@b,@c from t where id=1;set @a='',@b=1,@c=NOW();4、忘记密码解决办法
更新中……
1。停止mysql服务。//打开命令行窗口,停止mysql服务: Net stop mysql2。启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe 执行:mysqld-nt --skip-grant-tables 当前窗口将会停止。3。另外打开一个命令行窗口,进入MYSQL的安装位置下BIN目录,运行mysql4。输入如下命令: >use mysql >update user set password=password("new_password") where user="root"; >flush privileges; >exit6。用Ctrl+Alt+Del,找到mysqld-nt的进程杀掉它,在重新启动mysql-nt服务,就可以用新密码登录了5.OPTIMIZE TABLE
当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删除操作后在数据文件中留下碎片所致。Discuz! 在系统数设置界面提供了数据表优化的功能,可以去除删除操作后留下的数据文件碎片,减小文件尺寸,加快未来的读写操作。您只要在做完批量删除,或定期(如每一两个月)进行一次数据表优化操作即可。 OPTIMIZE TABLE通过制作原来的表的一个临时副本来工作OPTIMIZE TABLE语法OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] 如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新利用未使用的空间,并整理数据文件的碎片。在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次即可,只对特定的表运行。OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。对于MyISAM表,OPTIMIZE TABLE按如下方式操作:1. 如果表已经删除或分解了行,则修复表。2. 如果未对索引页进行分类,则进行分类。3. 如果表的统计数据没有更新(并且通过对索引进行分类不能实现修复),则进行更新。对于BDB表,OPTIMIZE TABLE目前被映射到ANALYZE TABLE上。对于InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE上,这会重建表。使用—skip-new或—safe-mode选项可以启动mysqld。通过启动mysqld,您可以使OPTIMIZE TABLE对其它表类型起作用。注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。OPTIMIZE TABLE语句被写入到二进制日志中,除非使用了自选的NO_WRITE_TO_BINLOG关键词(或其别名LOCAL)。已经这么做了,因此,用于MySQL服务器的OPTIMIZE TABLE命令的作用相当于一个复制主服务器,在默认情况下,这些命令将被复制到复制从属服务器中。6.常用语句
----------------------------------------------------------------- -- 备份与恢复 ----------------------------------------------------------------- -- 备份数据库(cmd 命令行下进入mysql / bin目录操作)mysqldump -- default - character - set = gbk - uroot - proot bugfree > d: / bugfree080228.txt -- 导出数据库(在同一数据库操作时可以不设定字符)mysqldump - uroot - proot bugfree > f: / bugfree.txt -- 导出表(在同一数据库操作时可以不设定字符)mysqldump - uroot - proot bugfree > f: / bugfree.txt -- 创建库mysql > create database rbugfree; -- 导入数据mysql > source d: / bugfree080228.txt ----------------------------------------------------------------- -- 基本操作 ----------------------------------------------------------------- -- 登陆数据库D:\phpStudy\MySQL\bin > mysql - uroot - proot -- 查看数据库mysql > show databases; -- 选择数据库mysql > use bugfree; -- 设置字符集mysql > set names ' gbk ' ; -- 查询数据库中的表mysql > show tables; -- 创建表mysql > create table test( -> tid int ( 10 ) not null , -> tname varchar( 100 ) not null , -> tdate datetime not null default ' 0000-00-00 ' , -> primary key (tid)); -- 查看表结构mysql > desc test; -- 添加列mysql > alter table test add(tage int ( 3 )); -- 修改原表结构mysql > alter table test modify tage int ( 5 ) not null ; -- 修改列的默认值mysql > alter table test alter tage set default ' 0 ' ; -- 去掉列的默认值mysql > alter table test alter tage drop default ; -- 删除列mysql > alter table test drop column tage; -- 插入数据mysql > insert into test(tid,tname,tdate) value( 1 , ' yangjuqi ' , ' 2008-03-21 ' ); -- 查询数据mysql > select * from test; -- 模糊查询mysql > select * from test where tname like ' %杨% ' ; -- 修改数据mysql > update test set tname = ' 张三 ' where tid = ' 2 ' ; -- 删除数据mysql > delete from test where tid = ' 2 ' ; -- 删除表mysql > drop table test; -- 重命名表mysql > alter table test rename testbak; -- 分页查询(limit 起始行,取多少行)mysql > select * from testbak limit 2 , 1 ; -- 刷新数据库mysql > flush privileges; -- 显示数据库版本mysql > select version(); -- 显示当前时间mysql > select current_date; -- 修改用户密码D:\phpStudy\MySQL\bin > mysqladmin - uroot - proot password yangjuqi -- 将查询出的数据写入文件mysql > select * from testbak into outfile " d:/test.txt " fields terminated by " , " ; -- 查看数据库状态mysql > status; -- 查看所有编码mysql > show variables like ' character_set_% ' ; -- 导入sql文件命令mysql > source d: / mysql.sql;7.让mysql查询区分大小写select * from partner where md5(log_name)=md5('wangyang') and log_pswd=password('admin');
8.将blob类型转换成字符串类型
select convert(con_bytes using utf8) from mms_content where id=3;
9.使用游标
Code /*初始化*/ drop procedure if exists useCursor // /*建立 存储过程 create */ CREATE PROCEDURE useCursor() BEGIN /*局部变量的定义 declare*/ declare tmpName varchar(20) default '' ; declare allName varchar(255) default '' ; declare cur1 CURSOR FOR SELECT name FROM test.level ; /* mysql 不知道为什么用异常加入判断 ? * 此请参考官方文档 20.2.11. 光标 光标 * 这把 游标 异常后 捕捉 * 并设置 循环使用 变量 tmpname 为 null 跳出循环。 */ declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = null; /*开游标*/ OPEN cur1; /*游标向下走一步*/ FETCH cur1 INTO tmpName; /* 循环体 这很明显 把游标查询出的 name 都加起并用 ; 号隔开 */ WHILE ( tmpname is not null) DO set tmpName = CONCAT(tmpName ,";") ; set allName = CONCAT(allName ,tmpName) ; /*游标向下走一步*/ FETCH cur1 INTO tmpName; END WHILE; CLOSE cur1; select allName ;END;//转载于:https://www.cnblogs.com/tuyile006/archive/2008/07/14/1203289.html
相关资源:尚硅谷MySQL高级教程笔记Xmind版