MY-SQL数据库教程 计算机_第1页
MY-SQL数据库教程 计算机_第2页
MY-SQL数据库教程 计算机_第3页
MY-SQL数据库教程 计算机_第4页
MY-SQL数据库教程 计算机_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

卜一页目录下一页

对数据库进行操作

我们可以对数据库进行四种方式的操作:添加、删除、修改和查询(搜索)。请大家注意的是,SQL

语言和其它编程语言一样,对命令语句的语法格式很在意,比如一个括号、逗号或分号的错误都会导致

命令无法执行。所以一定要熟悉语法格式。

插入记录

这里我们继续使用前面创建过的数据库作为例子:

mysql>CREATETABLEtest(

>nameVARCHAR(15).

>emailVARCHAR(25).

>phone_numberINT,

>IDINTNOTNULLAUTOJNCREMENT,

>PRIMARYKEY(ID));

使用INSERT命令插入数据,将数据分别插入姓名、邮件地址、电话和ID号内。

mysql>INSERTINTOtestVALUES

mysql>('BugsBunny',carrots@',

mysql>5554321,NULL);

结果:

QueryOK.1rowaffected(0.02sec)

mysql>

•数据类型VARCHAR的内容必须要用单引号,所有的字符串类型数据(char,varchar,text,

blob)都必须使用单引号,否则会出错误信息。

•电话号码的内容不用单引号。整数INT类型的数据都不用单引号。

•NULL空值。为什么要在ID中插入空值?实际上该数据类型使用了AUTCUNCREMENT选

项,在插入空值时数据库会自动将ID的值加1。比如最后一个记录的ID值是2,那么再插入一

个记录时,新记录的旧值就是3。如果将空值插入TIMESTAMP类型的记录时,那么新记录的

TIMESTAMP值就是当前的时间。

注意:每次插入新记录时必须保证新记录的值的个数与数据类型的数目一致。上面的命令中如果只

有一个值,插入命令就会出错。

例如:

mysql>insertintotestvalues('doggy'):

ERROR1058:Columncountdoesn'tmatchvaluecount

mysql>

上一页目录下一页

版权所有©2003广州市靖康计算机科技有限公司™

ISP经营许可证号:粤B2-20030107

24小时服务热线:(020)88271083OICQ:33932188

通讯地址:广州市花城大道5号南天广场龙庭阁903邮政编码:510623

Tel:(020)382073963820739738207399Fax:(020)38207399Email:JK耻♦灯con

Jik.靖康科技

上一页目录下一页

对数据库进行操作

选取内容

如果不能从一个数据库搜索和提取信息,那么这个数据库就没有什么用处。在MySql里,这一功

能是通过SELECT命令来实现。

mysql>SELECT*FROMtest

mysql>WHERE(name="BugsBunny");

结果:

phone_nu1

nameemail

mberD

Bugscarrots@devshed

55543211

Bunny.com

假设我们已经插入了多个不同的记录,所有记录都有相同的姓名,但有不同的邮件地址和电话号码。

那么表test的内容显示如下:

phone_nu1

nameemail

mberD

Bugscarrots@devshed.

55543211

Bunnycom

Bugspeppers@devshedZ,

55543314

Bunny.com

Bugslettuce@devshed.c

5554341匚

Bunnyom

Bugscelery@devshed.c

5554351

Runnyom4

删除

我们如果想将表中的某些记录删除,可以使用DELETE命令:

mysql>DELETEFROMtest

mysql>WHERE(name-"BugsBunny");

结果:

test表中所有包含"BugsBunny"字段的记录会被删除。

例如:

mysql>DELETEFROMtest

mysql>WHERE(phone_number-5554321);

结果:

phone_nu1

nameemail

mberD

Bugspeppers@devshedZ-

55543314

Bunny.com

Bugslettuce@devshed.c

LV

5554341J

Bunnyom

Bugscelery@devshed.c

5554351

Bunnyom

修改

MySQL也提供对表中的数据进行修改的功能,该操作可以用UPDATE命令完成。

mysql>UPDAIttestStIname=DattyDuck'

mysql>WHEREname="BugsBunny";

1

phone_nu1

nameemail

mberD

lippys@cexpress.

Lippy5554331

com

lee@cexpress.co

Lee5554341s.

m

fish@cexpress.co

Fish5554351L

m

上面我们讲过了对MySQL数据库中的数据进行基本的插入、删除、修改和查询功能。下面将结合实际

数据库操作的应用,详细讲讲这些命令的具体使用方法。

上一页目录下一页

版权所有©2003广州市靖康计算机科技有限公司™

ISP经营许可证号:粤B2-20030107

24小时服务热线:(020)88271083OICQ:33932188

通讯地址:广州市花城大道5号南天广场龙庭阁903邮政编码:510623

Tel:(020)382073963820739738207399Fax:(020)38207399Email:Jl^cexpress.COG

上一页目录

MySQL高级命令

逻辑运算

MySQL支持所有的基本逻辑运算。

AND(&&)与

mysql>SELECT*FROMtestWHERE

mysql>(name="BugsBunny")AND

mysql>(phone_number=5554321);

结果:

所有同时包含名字"BugsBunny”和电话号码'5554321的记录会显示出来。

OR(||)或

mysql>SELECT*FROMtestWHERE

mysql>(name="BugsBunny")OR

mysql>(phone_number=5554321);

结果:

所有包含名字“BugsBunny”或电话号码’5554321的记录会显示出来。

NOT(!)非

mysql>SELECT*FROMtestWHERE

mysql>(name!="BugsBunny");

结果:

所有不包含名字"BugsBunny"的记录会显示出来。

OrderBy按序排列

mysql>SELECT*FROMtestWHERE

mysql>(name="BugsBunny")ORDERBY

mysql>phone_number;

结果:

所有包含名字“BugsBunny”的记录会显示出来,并以电话号码为排序方式。

查询功能

MySQL为用户提供了粗略搜索和详细搜索的选择。

mysql>SELECT*FROMtestWHERE

mysql>(nameLIKE"%gsBunny");

结果:

显示出来的是所有包含字符"gsBunny”的记录,下面的字段都符合该条件「BugsBunny","agsBunny","gs

Bunny",and"234rtgsBunny"o请注意这里使用的是“LIKE”而不是等号(二),表示搜索的是和条件相似的记

录,而不必是完全一样。百分号’附可以放在字符串当中的任何地方,服务器搜索字符串的方式则取决于

第放在何处。

mysql>SELECT*FROMtestWHERE

mysql>(nameLIKE"BigsBunny%");

结果:

显示出来的是所有包含字符"gsBunny”的记录,下面的字段都符合该条件:"BugsBunnys","Bugs

Bunnyyyy453","BugsBunnytrtrtrtrtr",但是"gsBunny"则不符合条件。

我们也可以使用等号条件式来搜索:

mysql>SELECTnameFROMtestWHERE

mysql>(name="BugsBunny");

结果:

name

Bugs

Bunny

更改表内容

MySQL的另一个重要功能就是修改表中已经存在的数据。修改表数据要使用ALTER命令,该命令

可以增加、修改、删除列,同时也可以对表进行重命名。

例如:将表名称由test改为mytest,

mysql>ALTERtabletestRENAMEmytest;

例如:在表mytest中添加列日期型表列birthday.

mysql>ALTERtablemytestADDbirthdayDATE;

例如:将表mytest中的name列改为newname,类型是VARCHAR(25),

mysql>ALTERtablemytestCHANGE

mysql>namenewnameVARCHAR(25);

例如:删除表mytest中名为newname的歹ij,

mysql>ALTERtablemytestDROPnewname;

顺序执行上面的四个命令之后的结果是生成下面的表。

mysql>TABLEmy:est(

>emailVARCHAR(25),

>phone.numberINT,

>IDINTAUTO」NCREMENT,

>birthdayDATE);

在这部教程里,我们只对MySQL的使用进行了简单的介绍。但这些功能都是我们进行编程所必须

熟悉的基本操作。最重要的还是多多实践,参考相关技术文档,多参加网上相关技术的讨论。

上一页目录

版权所有©2003广州市靖康计算巩科技有限公司

ISP经营许可证号:粤B2-20030107

24小时服务热线:(020)88271083OICQ:33932188

通讯地址:广州市花城大道5号南天广场龙庭阁903邮政编码:510623

Tel:(020)382073963820739738207399Fax:(020)38207399Email:expresscor.

IN靖康科技

上一页目录下一页

MySQL的环境

MySQL通常用Telnet进行登录(一个非常好的Telnet软件名为Easyterm,可以从

http:〃www.arachroid.com/下载)。我们向用户推荐使用WinMysql管理工具,下载网址是

http:〃www.tcx.se/Dowrloads/Win32/myAdminLOLOzip通过Telnet与web服务器连接后,

第二个命令提供MySQL服务器的登录。登录的步骤如下:

1.连接到服务器。

login:devshed

Password:********

Lastlogin:WedAug1209:49:14from22

Copyright1992,1993,1994,1995,1996BerkeleySoftwareDesign,Inc.

Copyright(c)1980,1983,1986,1988,1990,1991,19931994

TheRegentsoftheUniversityofCalifornia.Allrightsreserved.

BSDIBSD/OS2.1Kernel#12:MonFeb2313:46:27EST1998

Youhavenewmail.

www24:mywww/devshed#

2.登录到MySQL帐户。

www24:mywww/d5vshed#mysql-udevshed-p

Syn:ax:mysql-hhostname-uusername-p[password]

Or

mysql-hhostname-uusername--password=password

用户会被提示输入密码。-p表示输入密码。

Enterpassword:*******

用户会看见如下结果:

WelcometotheMySQLmonitor.Commandsendwith;or\g.

YourMySQLconnectionidis49toserverversion:3.21.23-beta-log

Type'help'forhelp.

mysql>

登录到数据库之后,我们就可以执行各种MySQL的命令,但在对数据库操作之前必须要先调用数

据库,也就是与数据库建立连接:

mysql>usedevshed;

结果:

Databasechangad

Mysql>

现在你已经连接到数据库。注意命令后面要加上分号(;),匚乎所有的MySQL命令都要加分号。有关

管理数据库的命令可以通过键入help,\h或?列出来。

mysql>help

help(\h)Displaythis

text?(\h)Synonymfor'help'

clear(\c)Clearcommand

connect(\r)Reconnecttotheserver.Optionalargumentsaredbandhost

edit(\e)Editcommandwith$EDITOR

exit(\)Exitmysql.Sameasquit

go(\g)Sendcommandtomysqlserver

print(\p)printcurrentcommand

quit(\q)Quitmysql

rehash(\#)Rebuildcompletionhash

status(\s)Getstatusinformationfromtheserver

use(\u)Useanotherdatabase.Takesdatabasenameasargument

Connectionid:49(Canbeusedwithmysqladminkill)

mysql>

也许这些功能不会都能用上,但应该知道每一个命令都会做什么。象命令status,use,printconnect,

clear,和quil在最开始学习使月时都会十分有用。现在,你应该对连接数据库、选择数据库和运行基本

命令都应该有一定的了解。下一步将讲解有关对数据库进行操作的基本概念和方法。

上一页目录下一页

版权所有©2003广州市靖康计算机科技有限公司™

ISP经营许可证号:粤B2-20030107

24小时月艮务热线:(020)88271083OICQ:33932188

通讯地址:广州市花城大道5号南天广场龙庭阁903邮政编码:510623

Tel:(020)382073963820739738207399Fax:(020)38207399Email:TOcexjressCQm

上一页目录下一页

MySQL基础

数据类型和表

数据库其实不过是由不同层次的数据结构构成的。MySQL中可以存放块(或记录)信息的结构就是表

(table)o而这些记录则由更小的信息格式组成,即数据类型。一个或多个的数据类型组成了记录。由记

录组成的表构成了数据库的一部分。数据库的层次可以表示如下:

Database<Table<Record<Datatype

数据类型有不同的形式和大小,这样程序员就可以根据实际应用的需要建立表。选择合适的数据类型对

于数据库的运行性能影响致关重要,所以详细了解这些概念是十分重要的。

MySQLDatatypes数据类型

MySQL支持各种数据类型(即使是编程新手也都基本熟悉)。常用的类型包括:

CHAR(M)固定长度字符

用来表示固定长度的字符串。字符串的长度范围是1-255。例如:cajmodelCHAR(IO);

VARCHAR(M)可变长度字符

VARCHAR是一个具有灵活性的字符数据类型。字符串的长度范围是1-255。选用VARCHAR通常是比

较明智的决定。尽管处理CHAR类型的数据比VARCHAR类型的数据要快,有时会快50%。(CHAR类型

存储的数据的长度是声明变量时的固定长度,而不管数据的实际长度“VARCHAR存储的是按数据的实

际长度,从而减小了数据文件的大小。)car_modelVARCHAR(IO);

INT(M)[Unsigned]整数类型

NT是整数类型,存储整数的值范围是-2147483648到21474836470在声明类型时可选用“unsigned”,

这样值的范围就是0到4294967295。

light_yearsINT;

合法整数:'-245671,非法整数<,

light_yearsINTunsigned;

合法整数’3000000000’,非法整数’-24567’。

上一页目录下一页

版权所有©2003广州市靖康计算机科技有限公司™

ISP经营许可证号:粤B2-20030107

24小时服务热线:(020)88271083OICQ:33932188

通讯地址:广州市花城大道5号南天广场龙庭阁903邮政编码:510623

Tel:(020)382073963820739738207399Fax:(020)38207399Email:Jl^cexpress.COG

上一页目录下一页

MySQL基础

FLOAT[(M.D)]浮点类型

FLOAT代表浮点类型,用来表示更精确的数字类型。

rainfallFLOAT(4,2);

这个变量可以用来表示一年当中的平均降水量,并精确到小数。FLOAT(4.2)表示数值一共可以有4位数

字,小数点后有2位数字。请看下面哪些数值可以用上面的变量类型表示:

42.35是合法的

324.45是不合法的,将被修改为324.5

2.2是合法的数值

34.542不合法,将被修改为34.54

注意:由于FLOAT会将数值四舍五入,所以如果不想让数值随意被更改,建议使用DECIMAL。

DATE日期类型

用来存放日期信息,缺省的格式是'YYYY-MM-DD',日期范围可以从‘0000-00-00'到’9999-12-31。声

明日期型变量the_date:the_dateDATE;

TEXT/BLOB文本和大对象

如果字符串的长度超过了255,或者要将一篇文章保存到数据库中,CHAR和VARCHAR就无法使用了,

这里就要用到TEXT和BLOB类型,该类型可以保存的字符串长度在255-65535字节内。BLOB是一个

能保存二进制数据的的大对象。BLOB和TEXT数据类型是一样的,唯一的区别就是TEXT不区分大小写,

而BLOB区分大小写。

SET固定类型

一个SET是可以有零或多个值的一个字符串对象,其每一个必须从表创建造被指定了的允许值的一张列

表中被选择。由多个集合成员组成的SET列通过由由逗号分隔(”「)的成员被指定。SET类型最多可以

64个值。

transportSET("truck","wagon")NOTNULL;

经过上面的声明之后,transport可以有下面几个值:

am

"truck"

"wagon"

"truck.wagon"

ENUM枚举类型

ENUM是与SET属性相同的数据类型,但从中取值时只能取一个值。

transportENUM("truck","wagdn")NOTNULL;

经过上面的声明之后,transport可以有下面几个值:

(>((

"truck"

"wagon"

上一页目录下一页

版权所有©2003广州市靖康计算机科技有限公司™

ISP经营许可证号:粤B2-20030107

24小时服务热线:(020)88271083OICQ:33932188

诵讯地址:广州市花城大道5号南天广场龙庭阁903邮政编码:510623

Tel:(020)382073963820739738207399Fax:(020)38207399Email:Jl®cexpress.COG

IN靖康科技

上一页目录下一页

MySQL基础

Records记录

一组数据类型就构成了记录。一个记录可以只有一个数据类型,也可以根据需要设置很多个。一个或多

个记录构成了一个表。

Tables表

在我们可以对数据库进行操作之前,必须建立一个可以存放数据的表。可以通过如下方法创建:

mysql>CREATETABLEtest(

>nameVARCHAR(15),

>emailVARCHAR(25),

>phone_numberINT,

>IDINTNOTNULLAUTO_INCREMENT,

>PRIMARYKEY(ID));

输出结果:

QueryOK,0rowsaffected(0.10sec)

mysql>

这样你的第一个表就建成了。

所有的数据类型都可以使用下面的选项:

•主键值PrimaryKey。主键值是用来将记录区分开来,因为没有两个记录能使用同一个主键值。

在必须要保持记录的唯一性时,使用主键值是非常有用的。

•Autojncrement自动增量。使用了这个选项的列在每增加一个记录时,都会自动将记录在该列

的值加1。

NOTNULL非空变量。表示该列不能被分配为空值,

例:

soc_sec_numberINTPRIMARY<EY;

这样soc_sec_number字段就不能有重复的值。

ID.NUMBERINTAUTO」NCREMENT;

从1开始,自动按顺序将后面的值在前面的基础上增加lo

与表相关的命令

我们可以使用一些与表有关的命令:

显示表内容

如果想显示数据库当中存在的所有表,可以使用命令showtables,mysql>showtables;

显示列

mysql>showcolumnsfromtest;

结果:

显示出与表相关的列及数据。

现在你已经对创建表有了一个基本的认识。表是由数据类型构成的,所有的数据类型形成了记录。

上一页目录下一页

版权所有©2003广州市靖康计算叽科技有限公司™

ISP经营许可证号:粤B2-20030107

24小时服务热线:(020)88271083OICQ:33932188

通讯地址:广州市花城大道5号南天广场龙庭阁903邮政编码:510623

Tel:(020)382073963820739738207399Fax:(020)38207399Email:TOcmresscor>

目录下一页

MySQL简介

什么是MySQL?

MySQL是一个多用户、多线程的SQL数据库,是一个客户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论