1、mysql服务的启动和停止(Windows下面)
?net stop mysql?
?net start mysql?
?
2、显示当前数据库服务器中的数据库列表:
mysql> SHOW DATABASES;
注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
?
3、显示数据库中的数据表:
mysql> USE 库名;
mysql> SHOW TABLES;
?
?
4、显示数据表的结构:
mysql> DESCRIBE 表名;
?
获取表结构方案二
命令: desc 表名,或者show columns from 表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
?
5、删除数据库:
mysql> DROP DATABASE 库名;
?
?
6、删除数据表:
mysql> DROP TABLE 表名;
?
7、查看mysql版本
select version();
?
8、将表中记录清空:
mysql> DELETE FROM 表名;
或者
teuncate table 表名
(两者有何区别呢?)
?
?
9、用文本方式将数据装入数据表中:
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;
?
10、导入.sql文件命令:
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql;
?
?
11、命令行修改root密码:
mysql> UPDATE mysql.user SET password=PASSWORD(‘新密码‘) WHERE User=‘root‘;
mysql> FLUSH PRIVILEGES;
?
12、显示use的数据库名:
mysql> SELECT DATABASE();
?
13、显示当前的user:
mysql> SELECT USER();
?
14.导出整个数据库
?
1)导出文件默认是存在mysql\bin目录下
? mysqldump -u 用户名 -p 数据库名 > 导出的文件名
? mysqldump -u user_name -p123456 database_name > outfile_name.sql
2)导出一个表
? mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
? mysqldump -u user_name -p database_name table_name > outfile_name.sql
?
?
15、从外部文件导入数据库中
1)使用“source”命令
? ? 首先进入“mysql”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面操作。
? ? mysql>source [备份文件的保存路径]
?
2)使用“<”符号
? ? 首先进入“mysql”命令控制台,然后创建数据库,然后退出 MySQL,进入 DOS 界面。最后执行下面操作。
? ? ?mysql -u root –p < [备份文件的保存路径]
?
16、在表中增加字段
命令:alter table 表名 add 字段 类型 其他;
例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0
mysql> alter table MyClass add passtest int(4) default ‘0‘
?
17、更改表名
命令:rename table 原表名 to 新表名;
例如:在表 MyClass 名字更改为 YouClass
mysql> rename table MyClass to YouClass;
?
?
18、调用存储过程
mysql> CALL procedureName(paramentList);
例:mysql> CALL addMoney(12, 500);
?
?
19、查看特定数据库的存储过程
方法一:mysql> SELECT `name` FROM mysql.proc WHERE db = ‘your_db_name‘ AND `type` = ‘PROCEDURE‘;
方法二:mysql> show procedure status;
?
20、删除存储过程
mysql> DROP PROCEDURE procedure_name;
mysql> DROP PROCEDURE IF EXISTS procedure_name;
?
?
21、查看指定的存储过程定义
?
mysql> SHOW CREATE PROCEDURE proc_name;
?
mysql> SHOW CREATE FUNCTION func_name;
?
?
22. 当计算器用
select ((4 * 4) / 10 ) + 25;?
+----------------------+?
| ((4 * 4) / 10 ) + 25 |?
+----------------------+?
| ? ? ? ? ? ? ? ?26.60 |?
+----------------------+?
1 row in set (0.00 sec)?
?
?
?
22、FROM_UNIXTIME( unix_timestamp )?
参数:通常是壹个十位的数字,如:1344887103?
返回值:有两种,可能是类似 ‘YYYY-MM-DD HH:MM:SS‘ 这样的字符串,也有可能是类似于 YYYYMMDDHHMMSS.uuuuuu 这样的数字,具体返回什么取决于该函数被调用的形式。
mysql> select FROM_UNIXTIME(1344887103); ?
+---------------------------+ ?
| FROM_UNIXTIME(1344887103) | ?
+---------------------------+ ?
| 2012-08-14 03:45:03 ? ? ? | ?
+---------------------------+ ?
1 row in set (0.00 sec) ?
?
23、FROM_UNIXTIME( unix_timestamp ,format )?
参数 unix_timestamp :与方法 FROM_UNIXTIME( unix_timestamp ) 中的参数含义一样;?
参数 format : 转换之后的时间字符串显示的格式;?
返回值:按照指定的时间格式显示的字符串;
mysql> select FROM_UNIXTIME(1344887103,‘%Y-%M-%D %h:%i:%s‘); ?
+-----------------------------------------------+ ?
| FROM_UNIXTIME(1344887103,‘%Y-%M-%D %h:%i:%s‘) | ?
+-----------------------------------------------+ ?
| 2012-August-14th 03:45:03 ? ? ? ? ? ? ? ? ? ? | ?
+-----------------------------------------------+ ?
1 row in set (0.00 sec) ?
mysql> select FROM_UNIXTIME(1344887103,‘%Y-%m-%D %h:%i:%s‘); ?
+-----------------------------------------------+ ?
| FROM_UNIXTIME(1344887103,‘%Y-%m-%D %h:%i:%s‘) | ?
+-----------------------------------------------+ ?
| 2012-08-14th 03:45:03 ? ? ? ? ? ? ? ? ? ? ? ? | ?
+-----------------------------------------------+ ?
??
1 row in set (0.00 sec) ?
?
?
?
MySQL 数据库中日期与时间函数 FROM_UNIXTIME(), UNIX_TIME()
24、UNIX_TIMESTAMP()
返回值:当前时间的UNIX格式数字串,或者说是 UNIX 时间戳(从 UTC 时间‘1970-01-01 00:00:00‘开始的秒数),通常为十位,如 1344887103。
mysql> select unix_timestamp(); ?
+------------------+ ?
| unix_timestamp() | ?
+------------------+ ?
| ? ? ? 1344887103 | ?
+------------------+ ?
1 row in set (0.00 sec) ?
?
?
25、UNIX_TIMESTAMP( date )?
参数:date 可能是个 DATE 字符串,DATETIME 字符串,TIMESTAPE 字符串,或者是一个类似于 YYMMDD 或者 YYYYMMDD 的数字串。?
返回:从 UTC 时间‘1970-01-01 00:00:00‘开始到该参数之间的秒数。服务器将参数 date 解释成当前时区的壹个值并且将其转化成 UTC 格式的内部时间。客户端则可以自行设置当前时区。当 UNIX_TIMESTAMP() 用于壹个 TIMESTAMP 列时,函数直接返回内部时间戳的值;如果你传递壹个超出范围的时间到 UNIX_TIMESTAMP(),它的返回值是零。
mysql> SELECT UNIX_TIMESTAMP(); ?
+------------------+ ?
| UNIX_TIMESTAMP() | ?
+------------------+ ?
| ? ? ? 1344888895 | ?
+------------------+ ?
1 row in set (0.00 sec) ?
??
mysql> SELECT UNIX_TIMESTAMP(‘2012-08-14 16:19:23‘); ?
+---------------------------------------+ ?
| UNIX_TIMESTAMP(‘2012-08-14 16:19:23‘) | ?
+---------------------------------------+ ?
| ? ? ? ? ? ? ? ? ? ? ? ? ? ?1344932363 | ?
+---------------------------------------+ ?
1 row in set (0.00 sec) ?
?
注意:如果你使用 UNIX_TIMESTAMP() 和 FROM_UNIXTIME() 来转换 TIMESTAMP 值与 Unix 时间戳的值,精度会丢失,因为这个映射在两个方向上不是一一对应的。比如说,由于本地时区的更改,有可能两个 UNIX_TIMESTAMP() 会映射到同壹个 Unix 时间戳的值。 FROM_UNIXTIME() 只会映射到原来的那个时间戳的值上。这里有个例子,在 CET 时区使用 TIMESTAMP:
mysql> SELECT UNIX_TIMESTAMP(‘2005-03-27 03:00:00‘); ?
+---------------------------------------+ ?
| UNIX_TIMESTAMP(‘2005-03-27 03:00:00‘) | ?
+---------------------------------------+ ?
| ? ? ? ? ? ? ? ? ? ? ? ? ? ?1111885200 | ?
+---------------------------------------+ ?
mysql> SELECT UNIX_TIMESTAMP(‘2005-03-27 02:00:00‘); ?
+---------------------------------------+ ?
| UNIX_TIMESTAMP(‘2005-03-27 02:00:00‘) | ?
+---------------------------------------+ ?
| ? ? ? ? ? ? ? ? ? ? ? ? ? ?1111885200 | ?
+---------------------------------------+ ?
mysql> SELECT FROM_UNIXTIME(1111885200); ?
+---------------------------+ ?
| FROM_UNIXTIME(1111885200) | ?
+---------------------------+ ?
| 2005-03-27 03:00:00 ? ? ? | ?
+---------------------------+ ?
?
?
?
?
26. DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
?
DATE_FORMAT(date,format) ?
可以使用的格式有:
格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位
?
实例
下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:
DATE_FORMAT(NOW(),‘%b %d %Y %h:%i %p‘) ?
DATE_FORMAT(NOW(),‘%m-%d-%Y‘) ?
DATE_FORMAT(NOW(),‘%d %b %y‘) ?
DATE_FORMAT(NOW(),‘%d %b %Y %T:%f‘) ?
?
27、显示进程/杀掉进程
mysql> show processlist;?
+-----+-------------+--------------------+-------+---------+-------+----------------------------------+----------?
| Id | User | Host | db | Command | Time| State | Info?
+-----+-------------+--------------------+-------+---------+-------+----------------------------------+----------?
|207|root |192.168.0.20:51718 |mytest | Sleep | 5 | | NULL?
|208|root |192.168.0.20:51719 |mytest | Sleep | 5 | | NULL?
|220|root |192.168.0.20:51731 |mytest |Query | 84 | Locked |?
select bookname,culture,value,type from book where id=001?
先简单说一下各列的含义和用途,第一列,id,不用说了吧,一个标识,你要kill一个语句的时候很有用。user列,显示单前用户,
如果不是root,这个命令就只显示你权限范围内的sql语句。host列,显示这个语句是从哪个ip的哪个端口上发出的。呵呵,可以用来追踪出问题语句的用户。
db列,显示这个进程目前连接的是哪个数据库。command列,显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接(connect)。time列,
此这个状态持续的时间,单位是秒。state列,显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,
state只是语句执行中的某一个状态,一个sql语句,已查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成,info列,
显示这个sql语句?
?
如果你在一个容量大的表中执行增删改字段或执行一个复杂的sql 查询导致mysql线程挂起.可用此命令查看出是哪些sql挂起,用kill命令把他K掉?
?
kill命令使用方法?
?
kill pid?
?
如上例中我们想kill掉id为207的线程则执行?
?
kill 207即可.
?
?
28、Mysql 查看进程SQL
SELECT * FROM information_schema.PROCESSLIST
WHERE info IS NOT NULL
ORDER BY TIME desc,state,INFO;
原文:http://gaojingsong.iteye.com/blog/2308649