欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySql入门

程序员文章站 2022-03-10 13:12:42
...

MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQLAB公司开发、发布并支持的。MySQLAB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价取向、方法和成功的商业模型。 在MySQL的网站( http://www.mysql.com/ )

MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQLAB公司开发、发布并支持的。MySQLAB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。

在MySQL的网站(http://www.mysql.com/)上,给出了关于MySQL和MySQL的最新信息。

MySQL是一种数据库管理系统

数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。

MySQL是一种关联数据库管理系统

关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL指得是“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言,它是由ANSI/ISOSQL标准定义的。SQL标准自1986年以来不断演化发展,有数种版本。在本手册中,“SQL-92”指得是1992年发布的标准,“SQL:1999”指得是1999年发布的标准,“SQL:2003”指得是标准的当前版本。我们采用术语“SQL标准”标示SQL标准的当前版本。

MySQL软件是一种开放源码软件

“开放源码”意味着任何人都能使用和改变软件。任何人都能从Internet下载MySQL软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。MySQL软件采用了GPL(GNU通用公共许可证),http://www.fsf.org/licenses/,定义了在不同情况下可以用软件作的事和不可作的事。如果你对GPL不满意,或需要在商业应用s程序中嵌入MySQL代码,可从我方购买商业许可版本。

MySQL数据库服务器具有快速、可靠和易于使用的特点

如果它正是你所寻找的,不妨一试。MySQL服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了MySQL服务器和其他数据库管理器的比较结果。

MySQL服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。尽管MySQL始终在不断发展,但目前MySQL服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性,这使的MySQL十分适合于访问Internet上的数据库。

MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中

MySQL数据库软件是一种客户端/服务器系统,由支持不同后端的1个多线程SQL服务器,数种不同的客户端程序和库,众多管理工具和广泛的应用编程接口API组成。

我们还能以嵌入式多线程库的形式提供MySQL服务器,你可以将其链接到你的应用程序,从而获得更小、更快、和更易管理的产品。

有大量可用的共享MySQL软件

你所喜欢的应用程序和语言均支持MySQL数据库服务器,这种情况十分可能。

“MySQL”的正式发音是“MyEssQueEll”(而不是“mysequel”),但我们并不介意你的发音方式是“mysequel”或其他当地方式。

MySQL的历史

我们最初的出发点是,使用mSQL来连接我们的表,这类表采用了我们的快速低层面(ISAM)子程序。然而,经过一些测试后,我们得出结论,mSQL的速度或灵活性不足以满足我们的要求。其结果是,为我们的数据库提供了新的SQL接口,但API接口与mSQL的几乎一样。设计该API的目的在于,允许将为mSQL编写的第三方代码方便地移植到MySQL。

MySQL名称的起源不明。10多年来,我们的基本目录以及大量库和工具均采用了前缀“my”。不过,共同创办人MontyWidenius的女儿名字也叫“My”。时至今日,MySQL名称的起源仍是一个迷,即使对我们也一样。

MySQLDolphin(我方徽标)的名称为“Sakila”,它是由MySQLAB公司的创办人从用户在“Dolphin命名”比赛中提供的众多建议中选定的。该名称是由来自非洲斯威士兰的开放源码软件开发人AmbroseTwebaze提出的。根据Ambrose的说法,按斯威士兰的本地语言,女性化名称Sakila源自SiSwati。Sakila也是坦桑尼亚、Arusha地区的一个镇的镇名,靠近Ambrose的母国乌干达。

MySQL稳定性

MySQL服务器采用了多层设计和独立模块。在此列出了一些较新的模块,并指明了它们的测试情况。

·Replication(稳定)

大量使用复制功能的服务器均处于生产模式下,结果良好。在MySQL5.x中,将继续增强复制功能。

·InnoDB表(稳定)

自3.23.49版以来,InnoDB事务存储引擎一直很稳定。InnoDB正用于大型、重负荷生产系统。

·BDB表(稳定)

BerkeleyDB码十分稳定,但在MySQL服务器中,我们仍在改进BDB事务存储引擎。

·全文本搜索(稳定)

全文本搜索的使用范围十分广泛。在MySQL4.0和4.1中,增加了重要的特性增强。

·MyODBC3.51(稳定)

MyODBC3.51采用了ODBCSDK3.51,并广泛用于生产活动中。某些出现的情况看上去与应用程序相关,与ODBC驱动程序或底层数据库服务器无关。

MySQL表最大能达到多少

MySQL3.22限制的表大小为4GB。由于在MySQL3.23中使用了MyISAM存储引擎,最大表尺寸增加到了65536TB(2567–1字节)。由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定的。

InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。

在下面的表格中,列出了一些关于操作系统文件大小限制的示例。这仅是初步指南,并不是最终的。要想了解最新信息,请参阅关于操作系统的文档。

操作系统

文件大小限制

Linux2.2-Intel32-bit

2GB(LFS:4GB)

Linux2.4+

(usingext3filesystem)4TB

Solaris9/10

16TB

NetWarew/NSSfilesystem

8TB

win32w/FAT/FAT32

2GB/4GB

win32w/NTFS

2TB(可能更大)

MacOSXw/HFS+

2TB

在Linux2.2平台下,通过使用对ext2文件系统的大文件支持(LFS)补丁,可以获得超过2GB的MyISAM表。在Linux2.4平台下,存在针对ReiserFS的补丁,可支持大文件(高达2TB)。目前发布的大多数Linux版本均基于2.4内核,包含所有所需的LFS补丁。使用JFS和XFS,petabyte(千兆兆)和更大的文件也能在Linux上实现。然而,最大可用的文件容量仍取决于多项因素,其中之一就是用于存储MySQL表的文件系统。

安装MySql

在安装MySQL前,你应该:

1.确定是否MySQL将运行在你的平台上。

2.选择安装的分发版。

3.下载分发版并验证其完整性。

MySql安装的关键步骤

关键步骤一:鼠标双击打开MySql的安装程序,进入选择安装类型步骤。可选择三种安装类型如下:

l Typical:典型安装

l Complete:完全安装.

l Custom:自定义

一般情况下我们选择“Complete:完全安装”,对于某些熟练的操作者可以选择自定义安装(Custom:自定义)。

关键步骤二:安装到“数据集选择”步骤时;要注意:一定要选第三个,并且选择“GBK”数据集。如下图所示:(某些与图片不符,要以实际为例)

以上对“数据集”的选择,保证我们在创建数据库及录入数据时,可以方便的输入中文字符。

关键步骤三:“设置windows选项”;这一部是选择安装MySql的windows的服务项以及把您安装的MySql二进制运行目录包含在windows的PATH环境变量里。如果没什么特殊需要,要求两项都要勾选,如下图所示:

关于windows服务和windows的PATH详细解释,请参看其他资料或搜索“百度”网站,已获得更多问题的答案。

关键步骤四:配置并启动MySql服务;最后发现启动了如下所示的选项,就认为是MySql安装成功了。

请注意关键字“Writeconfigurationfile”,后面的目录“(C:\Soft\MySQL5.0\my.ini)”,是安装MySql时选择的安装目录。“my.ini”是MySql的配置文件,如果以后发现配置问题,需要修改这个文件才能正常运行服务。

启动MySql

MySql安装完毕后,需要启动MySql,才可以做建立数据库及建表等操作;以下说明启动MySql需要注意的步骤。

启动MySql注意事项——确认是否已经启动服务

一般情况下,如果是刚刚安装完MySql,那么服务已经启动;如果安装完MySql后又重启了电脑;需要重新启动MySql服务;

启动MySql服务的方法有:“服务项启动”和“命令行启动”两种。

服务项启动:打开windows的服务项,找到MySql服务,鼠标右键启动就可以了。

命令行启动:“开始菜单”—》“运行”—》输入“netstartmysql”

如果需要在命令行启动和关闭MySql,需要使用以下命令:

netstopmysql:停止服务

netstartmysql:启动服务

启动MySql注意事项——使用数据库用户名和密码进入

启动完毕服务后,需要启动数据库模式;步骤如下:

“开始菜单”—》“运行”—》键入

“mysql-uroot-p123456”

“-uroot”表示用户名为root;“-p123456”表示数据库密码为123456

注意:根据您安装时指定的root的密码来确定,请不要认为所有的数据库密码都是123456;一定要根据实际的安装密码来进入MySql编辑模式。

补充知识:所有数据库默认都支持命令行,如果你要做一些高级动作,备份、导出数据库,一般都需要用命令行,这样效率比较高。

简单MySQL语句

MySql和我们学过的SqlServer基本区别不是很大;大部分语句都很相似;所以,主要注意特殊的MySql语句的使用就可以了。

常用的MySql语句

1、使用SHOW语句找出在服务器上当前存在什么数据库:

mysql>SHOWDATABASES;

+----------+

|Database|

+----------+

|mysql|

|test|

+----------+

3rowsinset(0.00sec)

2、创建一个数据库abccs

mysql>CREATEDATABASEabccs;

注意不同操作系统对大小写的敏感。

3、选择你所创建的数据库

mysql>USEabccs

Databasechanged

此时你已经进入你刚才所建立的数据库abccs.

4、创建一个数据库表

首先看现在你的数据库中存在什么表:

mysql>SHOWTABLES;

Emptyset(0.00sec)

说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable:

我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。

mysql>CREATETABLEmytable(nameVARCHAR(20),sexCHAR(1),

->birthDATE,birthaddrVARCHAR(20));

QueryOK,0rowsaffected(0.00sec)

由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTERTABLE语句。);性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);birth列则使用DATE数据类型。

创建了一个表后,我们可以看看刚才做的结果,用SHOWTABLES显示数据库中有哪些表:

mysql>SHOWTABLES;

+---------------------+

|Tablesinmenagerie|

+---------------------+

|mytables|

+---------------------+

5、显示表的结构:

mysql>DESCRIBEmytable;

+-------------+-------------+------+-----+---------+-------+

|Field|Type|Null|Key|Default|Extra|

+-------------+-------------+------+-----+---------+-------+

|name|varchar(20)|YES||NULL||

|sex|char(1)|YES||NULL||

|birth|date|YES||NULL||

|deathaddr|varchar(20)|YES||NULL||

+-------------+-------------+------+-----+---------+-------+

4rowsinset(0.00sec)

6、往表中加入记录

我们先用SELECT命令来查看表中的数据:

mysql>select*frommytable;

Emptyset(0.00sec)

这说明刚才创建的表还没有记录。

加入一条新记录:

mysql>insertintomytable

->values(′abccs′,′f′,′1977-07-07′,′china′);

QueryOK,1rowaffected(0.05sec)

再用上面的SELECT命令看看发生了什么变化。我们可以按此方法一条一条地将所有员工的记录加入到表中。

修改MYSQL中的一个字段的类型或长度

altertable表名modifycolumn字段名类型;

例如,数据库中user表name字段是varchar(30);可以用

altertableusermodifycolumnnamevarchar(50);

修改数据库结构

1、增加字段

altertabledbnameaddcolumn

2、修改字段

altertabledbnamechange

3、删除字段

altertabledbnamedropcolumn 

4.修改表名

altertablejsxtrenameasjsxt_tmp;

altertablepersonadd(pidintauto_incrementprimarykey);

altertablearticlemodifyidint(10)auto_increment;

其他语句用法

更新语句

mysql>UPDATEpersondataSETage=age+1;

给一个字段插入值

INSERTINTOusesSETname='姚明',age=25;

一次性插入多个值

INSERTINTOusers(name,age)

VALUES('姚明',25),('比尔.盖茨',50),('火星人',600);

删除一行语句

deletefromusetablewherename='xiaoli';

修改一个字段

ALTERTABLETableNameCHANGEField_name_tobe_changenew_NameVARCHAR

(32);//altertableusetablechangeagesexint(10);

删除一个字段

ALTERTABLETableNameDROPField_name_tobe_delete

重命名表

ALTERTABLETableNamerenameasnewTableName

 

实践问题:



1. 如果想记录一个公司的员工情况,你是用普通的纸张,还是使用Office软件,还是使用数据库呢?



小结:

在本章中,我们主要学习了:

u MySql的概念和历史

u MySql的安装和使用



英语词汇:

英文 全 文 中 文

MySql MySql 是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以*使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大*软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。特别是在与PHP的配合使用中被Linux下WEB开发者称为PHP的黄金搭档。



练习项目:

使用本章所学的MySql数据库,创建一个您的月收入和支出的记录;(用自己的名字的缩写建立数据库,用带有英文意义的字母建立表)