数据库篇——MySql



mysql数据库基础教程

数据库从最初的数据 件的简单集合发展到今天的 型数据库管 系统已经成为我们 常 活中 
可缺少的组成部分。如果 借助数据库的帮助,许多简单的 作将变得冗 乏味,甚 难以实现。
尤其是象银 、院校和图书馆这样的 型组织 加依靠数据库系统实现其正常的运作。再看互联 
上,从搜索引擎到在线商场,从 上聊天到邮件 表,都离 开数据库。

总体来说,mysql数据库具有以下主要特点:
1. 同时访问数据库的 户数 受限制;
2. 可以保存超过50,000,000条记录;
3. 是 前市场上现有产品中运 速度最快的数据库系统;
4. 户权限设置简单、有效。
如今,包括siemens和silicon graphics这样的国际知名公司也开始把mysql作为其数据库管 系统,这就 加证明 mysql数据库的优越性能和 阔的市场发展前景。 本 将重点向读者介绍mysql数据库的 些基本操作,包括如何与数据库建 连接,如果设置数据库,以及如何执 基本的命令等。希望能够对读者学习和掌握mysql数据库有所助益。

般来说,我们访问mysql数据库时, 先需要使 telnet远程登录安装数据库系统的服务 ,

然后再进 mysql数据库。mysql数据库的连接命令如下:
mysql -h hostname -u username -p[password]
或者:
mysql -h hostname -u username --password=password 其中,hostname为装有mysql数据库的服务 名称,username和password分别是 户的登录名称和 令。 如果mysql数据库安装和配置正确的话, 户在输 上述命令之后会得到如下系统反馈信息:welcome to the mysql monitor. commands end with ; or g.

your mysql c id is 49 to server versi 3.2 3-beta-log
type help for help.
mysql$#@62; 这样, 户就成功进 mysql数据库系统,可以在mysql$#@62;命令提示符之后输 各种命

令。下 ,我们 出 些mysql数据库的主要管 命令供读者参考, 户也可以通过在命令符之后输 help,h或?得到以下命令的简单说明。

mysql$#@62; help
help (h) 显示命令帮助
? (h) 作 同上
clear (c) 清除屏幕内容
c (r) 重新连接服务 ,可选参数为 db(数据库)和 host(服务 )
exit () 退出mysql数据库,作 与quit命令相同
go (g) 将命令传送 mysql数据库
print (p) 打印当前命令
quit (q) 退出mysql数据库
status (s) 显示服务 当前信息
use (u) 打开数据库,以数据库名称作为命令参数 上述命令主要 于mysql数据库的系统管 ,如果 户需要对某个具体的数据库进 操作,可以使 use命令进 该数据库,格式如下:


mysql$#@62; use dbname; 这 需要提醒读者注意的 点就是mysql数据库要求使 者在所有命令的结尾处使 “;”作为命令结束符。

数据类型和数据表 从本质上说,数据库就是 种 断增 的复杂的数据组织结构。在mysql数据库中, 于保存数据记录的结构被称为数据表。 每 条数据记录则是由 的数据对象,即数据类型组成。因此,总体来说, 个或多个数据类型组成 条数据记录, 条或多条数据记录组成 个数据表, 个或多个数据表组成 个数据库。我们可以把上述结构 解为如下形式:
database $#@60; table $#@60; record $#@60; datatype 数据类型分为 同的格式和 ,可以 数据库的设计 员创建最 想的数据结构。能否正确的选择恰当的数据类型对最终数据库的性能具有重要的影响,因此,我们有必要 先对数据类型的有关概念进 较为详细的介绍。

mysql 数据类型
mysql 数据库提供 多种数据类型,其中较为常 的 种如下:

char (m) char数据类型 于表示固定 度的字符 ,可以包含最多达255个字符。其中m代表字符 的 度。
举 如下:

car_model char(10);
varchar (m) varchar是 种 char 加灵活的数据类型,同样 于表示字符数据,但是varchar可以保存可变 度的字符 。其中m代表该数据类型所允许保存的字符 的最 度,只要 度 于该最 值的字符 都可以被保存在该数据类型中。因此,对于那些难以估计确切 度的数据对象来说,使 varchar数据类型 加明智。varchar数据类型所 持的最 度也是255个字符。 这 需要提醒读者注意的 点是,虽然varchar使 起来较为灵活,但是从整个系统的性能 度来说,char数据类型的处 速度 快,有时甚 可以超出varchar处 速度的50%。因此, 户在设计数据库时应当综合考虑各 的因素,以求达到最佳的平衡。
举 如下:
car_model varchar(10);
int (m) [unsigned]
int数据类型 于保存从- 2147483647 到2147483648范围之内的任意整数数据。如果 户使 unsigned选项,则有效数据范围调整为0-4294967295。举 如下:
light_years int; 按照上述数据类型的设置,-24567为有效数据, 3000000000则因为超出 有效数据范围成为 效数据。
再 如:
light_years int unsigned;
这时,3000000000成为有效数据, -24567则成为 效数据。
float [(m,d)] float数据类型 于表示数值较 的浮点数据,可以提供 加准确的数据精度。其中,m代表浮点数据的 度(即 数点左右数据 度的总和),d表示浮点数据位于 数点右边的数值位数。举 如下:
rainfall float (4,2); 按照上述数据类型的设置,42.35为有效数据, 324.45和3.542则因为超过数据 度限制或者 数点右边位数 于规定值2成为 效数据。
date


date数据类型 于保存 期数据,默认格式为yyyy-mm-dd。mysql提供 许多功能强 的 期格式化和操作命令,本 法在此 进 介绍,感兴趣的读者可以参看mysql的技术 档。

date数据类型举 如下:
the_date date;
text / blob
text和blob数据类型可以 来保存255 到65535个字符,如果 户需要把 段 本保存到数据库

内的话,可以选 text或blob数据类型。text和blob这两种数据类型基本相同,唯 的区别在于text 区分 写, blob对字符的 写 感。

set set数据类型是多个数据值的组合,任何部分或全部数据值都是该数据类型的有效数据。set数据类型最 可以包含64个指定数据值。
举 如下:
transport set ("truck", "wag not null;
根据上述数据类型的设置,truck、wag
enum enum数据类型和set基本相同,唯 的区别在于enum只允许选择 个有效数据值。 如:transport enum ("truck", "wag not null;
根据上述设置,truck或wag 以上,我们只是对 户使 mysql数据库的过程中经常 到的数据类型进 简单介绍,有兴趣的读者,可以参看mysql技术 档的详细说明。

数据记录
   组经过声明的数据类型就可以组成 条记录。记录 到可以只包含 个数据变 , 到可以
满  户的各种复杂需求。多条记录组合在 起就构成 数据表的基本结构。
数据表
  在我们执 各种数据库命令之前, 先需要创建 来保存信息的数据表。我们可以通过以下

式在mysql数据库中创建新的数据表:mysql$#@62; create table test ($#@62; name varchar (15),
$#@62; email varchar (25),

$#@62; ph int,
$#@62; id int not null auto_increment,
$#@62; primary key (id));
系统反馈信息为:
query ok, 0 rows affected (0.10 sec)
mysql$#@62; 这样,我们就在数据库中创建 个新的数据表。注意,同 个数据库中 能存在两个名称相

同的数据表。
这 ,我们使 create table命令创建的test数据表中包含name,email,ph

下 ,我们来看 看创建数据表时所 到的 个主要的参数选项。

primary key
具有primary key限制条件的字段 于区分同 个数据表中的 同记录。因为同 个数据表中 会存在两个具有相同值的primary key字段,所以对于那些需要严格区分 同记录的数据表来说,primary key具有相当重要的作 。
auto_increment 具有auto_increment限制条件的字段值从1开始,每增加 条新记录,值就会相应地增加1。

般来说,我们可以把auto_increment字段作为数据表中每 条记录的标识字段。not null


not null限制条件规定 户 得在该字段中插 空值。
其它数据表命令 除 创建新的数据表之外,mysql数据库还提供 其它许多 常实 的以数据表作为操作对象的命令。

显示数据表命令

mysql$#@62; show tables;

该命令将会 出当前数据库下的所有数据表。显示字段命令
mysql$#@62; show columns from tablename; 该命令将会返回指定数据表的所有字段和字段相关信息。

数据操作 对mysql数据库中数据的操作可以划分为四种 同的类型,分别是添加、删除、修改和查询,我们将会在本节中对此进 介绍。但是, 先我们需要强调的 点就是mysql数据库所采 的sql语 同其它绝 多数计算机编程语 样,对命令的语法格式有严格的规定。任何语法格式上的错误, 如 正确的使 括号、逗号或分号等都可能导致命令执 过程中的错误。因此,建议 户在学习时 定要多 语法格式的使 。
添加记录
户可以使 insert命令向数据库中添加新的记录。
如:

mysql$#@62; insert into test values
mysql$#@62; (john, carrots@mail.com,
mysql$#@62; 5554321, null);
上述命令正确执 后会返回以下信息:
query ok, 1 row affected (0.02 sec)
mysql$#@62; 对上述命令有 点我们需要说明。 先,所有的字符类型数据都必须使 单引号括起来。其次,

null关键字与auto_increment限制条件相结合可以为字段 动赋值。最后,也是最重要的 点就是新记录的字段值必须与数据表中的原字段相对应,如果原数据表中有4个字段, 户所添加的记录包含3个或5个字段的话都会导致错误出现。 mysql数据库的 个 常显著的优势就是可以对整数、字符 和 期数据进 动转换。因此, 户在添加新记录时就 必担 因为数据类型 相符 出现错误。

查询数据 如果我们 法从数据库中查找和读取数据的话,数据库就丧失 其存在和使 的价值。 在mysql数据库中, 户可以使 select命令进 数据的查询。
如:

mysql$#@62; select * from testmysql$#@62; where (name = "john");上述命令会返回如下结果:

nameemailph
idjohn


carrots@mail.com5554321
1

删除数据 户除 可以向数据表中添加新的记录之外,还可以删除数据表中的已有记录。删除记录可以使 delete命令。
如:

mysql$#@62; delete from test
mysql$#@62; where (name = ""); 该命令将会删除test数据表中name字段的值为john的记录。同样,
mysql$#@62; delete from test
mysql$#@62; where (ph = 5554321);
将会从数据表中删除ph
修改数据 mysql数据库还 持 户对已经输 到数据表中的数据进 修改。修改记录可以使 update命令。
如:
mysql$#@62; update test set name = mary
mysql$#@62; where name = "john";
上述命令的执 结果如下:

name
email
ph
id