白桦的天空

第一次的心动,永远的心痛!
  首页  :: 新随笔  :: 联系 :: 管理

MySQL基本操作

Posted on 2008-09-17 09:37  白桦的天空  阅读(397)  评论(0编辑  收藏  举报
数据库 /ksmgt 

MySQL基本操作
要进行 mysql 数据库的操作,首先要把 mysql 的服务启动。
在安装了XteamServer3.0 i-class 的机器上 mysql 在开机时,自动启动,不需要敲入命令,手工启动了。
手工启动 mysql 服务:
# /etc/rc.d/init.d/mysql start
停止 mysql 服务
# /etc/rc.d/init.d/mysql stop

使用goose 启动与停止MySQL

在"goose" 中的左边栏目,点击 "控制面板" 下的 "服务设置" ,在 "goose" 的右边便出现服务列表,界面如图[1-1]所示。
在服务列表中点击 mysql , 进入到服务 mysql 的详细信息画面。如图[1-2]所示。
在此画面中,点击 "开始服务" 按钮,便可启动 mysql 服务。 点击 "停止服务" 按钮,便是停止 mysql 服务。

进入MySQL
  进入mysql时,你需要提供一个MySQL用户和此用户的口令。如果数据库运行在其它机器上,而不是你所在的这台机器上,你需要指定主机名。
命令:
mysql -h <主机名> -u <用户名> -p <数据库名>
Enter password: ********

********代表你的口令;当mysql显示Enter password:提示时输入它。

MYSQL 有缺省库mysql, 在此系统中,缺省的口令为空,打回车即可。
例如,在此机器上,你可以敲入:
# mysql -u root -p mysql
Enter password:
屏幕如下提示:
Welcome to the MySQL monitor. Commands end with ; or .
Your MySQL connection id is 459 to server version: 3.22.23a-log

Type ''help'' for help.

mysql>

这就进入了mysql 的工作环境, 进入到名为mysql 的数据库中。
你可看见mysql>提示后的一些介绍信息:

提示符 mysql> 告诉你mysql准备为你输入命令。

退出MySQL
在你成功地连接后,你可以在mysql>提示下打入QUIT随时断开:
mysql> QUIT
Bye
你也可以键入control-D断开。

操作MySQL
  在之前要指出的是:一条操作即是一条SQL语句,注意随后要跟上一个分号,以标志此条语句的结束。而且一条SQL 语句不必全在一个单独行给出,可以写入多行,最后以分号结束此语句的输入。

  在之前要指出的是:一条操作即是一条SQL语句,注意随后要跟上一个分号,以标志此条语句的结束。而且一条SQL 语句不必全在一个单独行给出,可以写入多行,最后以分号结束此语句的输入。

创建数据库
命令:CREATE DATABASE <数据库名>
例如,建立一个名为 test 的数据库
mysql> CREATE DATABASE test;

删除数据库
命令: DROP DATABASE <数据库名>
例如,删除名为 test 的数据库
mysql> DROP DATABASE test

连接数据库

命令: USE <数据库名>
例如,如果test数据库存在,尝试存取它:
mysql> USE test
屏幕提示:
Database changed

建表
命令:CREATE TABLE <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
例如,建立一个名为table_1的表,此表记录班上的人员及平均成绩,那么用字段 id 代表编号,为数字类型,且编号唯一,不能为空, 缺省值为 0 ; 用字段 name 代表人名,为字符型,不为空;用字段 degree 代表成绩,为数字型,可为空。编号id 为此表的关键字。建表如下:
mysql> CREATE TABLE table_1 (
> id INT(4) DEFAULT ''0'' NOT NULL,
> name CHAR(20) NOT NULL
> degree DOUBLE(16,2) ,
> PRIMARY KEY(id));

删除表
命令:DROP TABLE <表名>
例如,删除表名为 table_1 的表
mysql> DROP TABLE table_1;

插入数据

命令:INSERT INTO <表名> [( <字段名1>[,..<字段名n > ])]
VALUES ( 值1 )[, ( 值n )]
例如,往表 test 中插入二条记录, 这二条记录表示:编号为1的名为joan 的成绩为96.45, 编号为2 的名为jeanny 的成绩为82.99.
mysql> INSERT INTO test VALUES(1,''joan'',96.45),(2,''jeanny'',82.99);

查询表中的数据
命令: SELECT <字段1,字段2,...> FROM < 表名 > WHERE < 表达式 >
例如,查看表 test 中所有数据
mysql> SELECT * FROM test;
屏幕显示:
+----+-------------+----------+
| id | name | degree |
+----+-------------+----------+
| 1 | joan | 96.45 |
| 2 | jeanny | 82.99 |
+----+-------------+----------+ 

删除表中数据
命令: DELETE FROM < 表名 > WHERE < 表达式 >
例如,删除表 test 中编号为1 的记录
mysql> DELETE FROM test WHERE id=1;

字段类型


   1.INT[(M)]

   正常大小整数类型

   2.DOUBLE[(M,D)] [ZEROFILL]

   正常大小(双精密)浮点数字类型

   3.DATE

   日期类型。支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列

   4.CHAR(M)

   定长字符串类型,当存储时,总是是用空格填满右边到指定的长度

   5.BLOB TEXT

   BLOB或TEXT类型,最大长度为65535(2^16-1)个字符。

   6.VARCHAR
变长字符串类型

   1: 显示数据库
 
   SHOW DATABAS,

   2:当前选择的数据库,

   mysql> SELECT DATABASE();
   +------------+
   | DATABASE() |
   +------------+
   | test ;
   +------------+
   | DATABASE() |
   +------------+
   | test    |
   +------------+

  3: 当前数据库包含的表信息:

   mysql> SHOW TABLES;
   +---------------------+
   | Tables in test 
   mysql> SHOW TABLES;
   +---------------------+
   | Tables in test   |
   +---------------------+
   | mytable1      |
   | mytable2      |
   +---------------------+

  4: 获取表结构

   mysql> desc mytable1;
   +---------+-------------+------+-----+---------+-------+
   | Field  mysql> desc mytable1;
   +---------+-------------+------+-----+---------+-------+
   | Field  | Type  | Null | Key | Default | Extra |
   +---------+-------------+------+-----+---------+-------+
   | s1  | varchar(20) | YES |NULL  |    |
   +---------------------+------+-----+---------+-------+


导入数据库表


   (1)创建.sql文件

   (2)先产生一个库如auction.c:mysqlbin>mysqladmin -u root -p creat auction,会提示输入密码,然后成功创建。

   (2)导入auction.sql文件

   c:mysqlbin>mysql -u root -p auction < auction.sql。

   通过以上操作,就可以创建了一个数据库auction以及其中的一个表auction。
修改数据库

   (1)在mysql的表中增加字段:

   alter table dbname add column userid int(11) not null primary key auto_increment;

   这样,就在表dbname中添加了一个字段userid,类型为int(11)。

mysql数据库的授权
   mysql>grant select,insert,delete,create,drop

   on *.* (或test.*/user.*/..)

   to 用户名@localhost

   identified by 密码;

   如:新建一个用户帐号以便可以访问数据库,需要进行如下操作:

   mysql> grant usage

   -> ON test.*
   -> TO testuser@localhost;
   Query OK, 0 rows affected (0.15 sec)

   此后就创建了一个新用户叫:testuser,这个用户只能从localhost连接到数据库并可以连接到test 数据库。下一步,我们必须指定testuser这个用户可以执行哪些操作:

   mysql> GRANT select, insert, delete,update
   -> ON test.*
   -> TO testuser@localhost;
   Query OK, 0 rows affected (0.00 sec)

   此操作使testuser能够在每一个test数据库中的表执行SELECT,INSERT和DELETE以及UPDATE查询操作。现在我们结束操作并退出MySQL客户程序:

   mysql> exit
   Bye