Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1125633
  • 博文数量: 165
  • 博客积分: 5957
  • 博客等级: 大校
  • 技术积分: 2015
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-24 15:04
文章分类

全部博文(165)

文章存档

2014年(10)

2013年(14)

2012年(9)

2011年(22)

2010年(17)

2009年(17)

2008年(26)

2007年(34)

2006年(16)

我的朋友

分类: LINUX

2008-12-11 15:35:20

mysql中文文档可以参考:http://dev.mysql.com/doc/refman/5.1/zh/index.html
 
一、基本操作
1、语句中的关键词的大小写是不区分的,mysql通过寻找终止分号来决定语句在哪结束。一行输入多条语句,分号分割即可。
2、如果你决定不想执行正在输入过程中的一个命令,输入\c取消它
 

mysql> select user() \c

mysql>

对于输出内容可能会超过80列显示器可用宽度的语句,应使用“--vertical”选项(或“\G”语句终结符)

3、查看当前存在的数据库

mysql> show databases;

4、创建新的数据库

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

5、选定并使用该数据库

mysql> use exp

or(-s -N表示无框线,无抬头)

mysql -h host -u user -p -s -N --default-character-set=gbk ex

6、删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

7、查看表

mysql> show tables;

8、创建表

mysql> CREATE TABLE an_hosts
    -> (
    -> `host_id` int(11) unsigned NOT NULL auto_increment,
    -> `ip` varchar(50) NOT NULL default '',
    -> `hostalias` varchar(50) NOT NULL default '',
    -> PRIMARY KEY (host_id)
    -> );
Query OK, 0 rows affected (0.02 sec)

9、删除表

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]

使用TEMPORARY是确保您不会意外取消一个非TEMPORARY表的良好方法。

10、获取列信息

{DESCRIBE | DESC} tbl_name [col_name | wild]

11、查看用户权限

mysql> show grants for 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+

12、添加新用户帐户

多种方法可以选择,举例:

mysql> grant all privileges on *.* to 'test1'@'localhost' identified by 'somepass' with grant option;
mysql> grant all privileges on *.* to 'test2'@'%' identified by 'somepass' with grant option;
mysql> grant reload,process on *.* to 'test3'@'localhost';
mysql> grant usage on *.* to 'test4'@'localhost';

mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','test5','');
mysql> FLUSH PRIVILEGES;

你用INSERT创建账户时使用FLUSH PRIVILEGES的原因是告诉服务器重读授权表。

再举个例子,对database cc赋指定的一些权限:

点击(此处)折叠或打开

  1. mysql> create database cc;
  2. Query OK, 1 row affected (0.05 sec)

  3. mysql> GRANT INSERT, SELECT, UPDATE, DELETE, CREATE, DROP, ALTER ON cc.* TO 'cc'@'localhost' IDENTIFIED BY 'xxxx';
  4. Query OK, 0 rows affected (0.01 sec)

  5. mysql> FLUSH PRIVILEGES;
  6. Query OK, 0 rows affected (0.00 sec)

13、删除用户帐户

mysql> delete from user where User like 'test%';
Query OK, 5 rows affected (0.00 sec)

 
14、修改表结构——增加一列
 

mysql> alter table filter add vlan_name varchar(100) after owner;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0


15、时间运算

mysql> select curdate() date;
+------------+
| date |
+------------+
| 2010-11-13 |
+------------+
1 row in set (0.00 sec)

mysql> select date_add(curdate(), interval 60 day) date;
+------------+
| date |
+------------+
| 2011-01-12 |
+------------+
1 row in set (0.00 sec)


16、update示例
  1. $each = implode(",", $_POST["each"]);
  2. $sql_select = "update filter set expire_time=expire_time+60,expire_real_time=date_add(expire_real_time, interval 60 day) where id in ($each);";
  3. $query = mysql_query($sql_select) or die("Invalid query: " . mysql_error());
17、复制
复制表结构及数据到新表:
  1. CREATE TABLE 新表 SELECT * FROM 旧表
只复制表结构到新表
  1. CREATE TABLE 新表 LIKE 旧表
复制旧表的数据到新表(假设两个表结构一样)
  1. INSERT INTO 新表 SELECT * FROM 旧表
复制旧表的数据到新表(假设两个表结构不一样)
  1. INSERT INTO 新表(字段1,字段2,.......)
  2.   SELECT 字段1,字段2,...... FROM 旧表
18、释放表空间
optimize table xxx;
阅读(1494) | 评论(0) | 转发(0) |
0

上一篇:感冒一定要对症吃药

下一篇:HTTP状态代码

给主人留下些什么吧!~~