Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2519105
  • 博文数量: 867
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 9800
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-27 14:44
文章分类

全部博文(867)

文章存档

2007年(6)

2006年(861)

我的朋友

分类: LINUX

2006-08-12 20:10:42


 
命令:
 
1、登录数据库
shell> mysql -h host -u user -p shop
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 459 to server version: 3.22.20a-log
 
Type 'help' for help.
 
mysql> 
 
要点:登录的时候-p后不要跟密码,因为在同一个系统下的其他用户可以用w看到登录信息。最后的shop是数据库名。
 
2、退出数据库
mysql> QUIT
Bye
 
你也可以键入control-D断开。
 
3、查看版本号和当前日期
mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| version()    | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19   |
+--------------+--------------+
1 row in set (0.01 sec)
mysql>
 
要点:mysql的命令不区分大小写,select/SeleCT/SELECT等都是等效的。但是需要注意的是数据库名字是linux系统下的一个目录故数据库名字是区分大小写的。 * 一个命令通常由SQL语句组成,随后有一个分号。
 
4、如果你决定,你不想要执行你在输入过程中输入的一个命令,打入\c取消它:
mysql> SELECT
    -> USER()
    -> \c
mysql>
 
mysql>     准备好接受新命令
->     等待多行命令的下一行
'>     等待下一行,收集以单引号(“'”)开始的字符串
">     等待下一行,收集以双引号(“"”)开始的字符串
 
5、显示数据库
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql    |
| test     |
| tmp      |
+----------+
 
要点:其中mysql数据库是用来存储登录用户权限的不要操作它。
 
6、改变当前操作的数据库
mysql> USE test
Database changed
 
7、分配权限给指定用户
mysql> GRANT ALL ON menagerie.* TO your_mysql_name;
your_mysql_name是指定用户名称
 
8、创建数据库
mysql> CREATE DATABASE menagerie;
数据库名字是linux系统下的一个目录故数据库名字是区分大小写的。
 
9、查看数据库表
mysql> show tables from DB_Radius;
+---------------------+
| Tables_in_DB_Radius |
+---------------------+
| T_AcctBatchDetail   |
... ...
| T_UserDelete        |
+---------------------+
23 rows in set (0.00 sec)
 
10、查看表结构
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(20) | YES  |     | NULL    |       |
| owner   | varchar(20) | YES  |     | NULL    |       |
| species | varchar(20) | YES  |     | NULL    |       |
| sex     | char(1)     | YES  |     | NULL    |       |
| birth   | date        | YES  |     | NULL    |       |
| death   | date        | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
 
11、从外部文件装载数据
建立文本文件,pet.txt,类似:
name     owner     species     sex     birth     death
Fluffy     Harold     cat     f     1993-02-04      
 
命令:LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;
要点:这里文件需要放在mysql安装目录中。文本文件pet.txt中不需要第一行name    owner...。
 
12、增加数据
mysql> INSERT INTO pet
    -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
 
13、检索表命令
表中所有信息:
mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name     | owner  | species | sex  | birth      | death      |
+----------+--------+---------+------+------------+------------+
| Fluffy   | Harold | cat     | f    | 1993-02-04 | NULL       |
| Claws    | Gwen   | cat     | m    | 1994-03-17 | NULL       |
| Buffy    | Harold | dog     | f    | 1989-05-13 | NULL       |
按条件检索
mysql> SELECT * FROM pet WHERE birth >= "1998-1-1"; #出生日期小于1998年的宠物
 
mysql> SELECT * FROM pet WHERE species = "dog" AND sex = "f"; #找出所有雌性的狗狗 使用的 AND
 
mysql> SELECT * FROM pet WHERE species = "snake" OR species = "bird"; #找出所有的蛇和鸟 使用的OR
 
mysql> SELECT * FROM pet WHERE (species = "cat" AND sex = "m")
    -> OR (species = "dog" AND sex = "f"); #找出所有的公猫和母狗 使用的AND和OR的组合
 
mysql> SELECT name, species, birth FROM pet
    -> WHERE species = "dog" OR species = "cat"; #找出所有的狗和猫,只列出名字/类型/生日字段
 
mysql> SELECT name, birth FROM pet ORDER BY birth; #列出名字/生日,并按照生日升序排列
 
mysql> SELECT name, birth FROM pet ORDER BY birth DESC; #以逆序排列
 
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC; #类型按升序排列后生日按逆序排列,注意DESC关键词仅适用于紧跟在它之前的列名字(birth);
 
mysql> SELECT name, (TO_DAYS(death)-TO_DAYS(birth))/365 FROM pet; #计算出宠物的享年
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 FROM pet; #计算出宠物到现在的年龄
 
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age FROM pet; 同上,加上了列别名(age)
 
mysql>  SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age
    ->  FROM pet ORDER BY age; #使用列别名后就可以使用别名来排序了
 
 
 
 
14、删除数据从表
      mysql> DELETE FROM pet;
 
15、升级修改数据
      mysql> UPDATE pet SET birth = "1989-08-31" WHERE name = "Bowser";
 
要点:这里的关键字Bowser不区分大小写。
 
 
16、SQL的模式匹配
允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。
 
为了找出以“b”开头的名字:
mysql> SELECT * FROM pet WHERE name LIKE "b%";
 
为了找出以“fy”结尾的名字:
mysql> SELECT * FROM pet WHERE name LIKE "%fy";
 
为了找出包含一个“w”的名字:
mysql> SELECT * FROM pet WHERE name LIKE "%w%";
 
为了找出包含正好5个字符的名字,使用“_”模式字符:
mysql> SELECT * FROM pet WHERE name LIKE "_____"; 
 
阅读(1735) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~