MySQL这个姓名,起源不是很明确。一个比较有影响的说法是,根本指南和很多的库和工具带有前缀“my”已经有10年以上,并且不管怎样,MySQLAB创始人之一的MontyWidenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个姓名至今依然是个迷,包含开发者在内也不知道。

mysql

MySQL的海豚标志的姓名叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的比赛中建议的很多的姓名表中选出的。取胜的姓名是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze供给。依据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家园乌干达邻近的坦桑尼亚的Arusha的一个小镇的姓名。
MySQL,尽管功能未必很强大,但由于它的开源、广泛传播,使得很多人都了解到这个数据库。它的前史也富有传奇性。

mysql使用入门教程

MySQL的相关概念介绍
MySQL为联系型数据库(RelationalDatabaseManagementSystem),这种所谓的”联系型”能够理解为”表格”的概念,一个联系型数据库由一个或数个表格组成,如图所示的一个表格:
表头(header):每一列的称号;
列(row):具有相同数据类型的数据的集合;
行(col):每一行用来描绘某个人/物的具体信息;
值(value):行的具体信息,每个值有必要与该列的数据类型相同;
键(key):表中用来辨认某个特定的人物的方法,键的值在当时列中具有仅有性。

mysql1

Windows下MySQL的装备
以MySQL5.1免装置版为例,下载mysql-noinstall-5.1.69-win32.zip(官方下载页:http://dev.mysql.com/downloads/mysql/5.1.html#downloads)
装备步骤:
1.将下载的mysql-noinstall-5.1.69-win32.zip解压至需求装置的方位,如:C:ProgramFiles;
2.在装置文件夹下找到my-small.ini装备文件,将其重命名为my.ini,翻开进行修正,在[client]与[mysqld]下均添加一行:default-character-set=gbk
3.翻开Windows环境变量设置,新建变量名MYSQL_HOME,变量值为MySQL装置目录路径,这儿为C:ProgramFilesmysql-5.1.69-win32
4.在环境变量的Path变量中添加;%MYSQL_HOME%bin;
5.装置MySQL服务,翻开Windows指令提示符,履行指令:mysqld–installMySQL–defaults-file=”my.ini”提示”Servicesuccessfullyinstalled.”表明成功;
MySQL服务的启动、中止与卸载
在Windows指令提示符下运转:
启动:netstartMySQL
中止:netstopMySQL
卸载:scdeleteMySQL
MySQL脚本的根本组成
与常规的脚本语言相似,MySQL也具有一套对字符、单词以及特殊符号的运用规定,MySQL经过履行SQL脚原本完结对数据库的操作,该脚本由一条或多条MySQL句子(SQL句子+扩展句子)组成,保存时脚本文件后缀名一般为.sql。在操控台下,MySQL客户端也能够对句子进行单句的履行而不用保存为.sql文件。
标识符
标识符用来命名一些对象,如数据库、表、列、变量等,以便在脚本中的其他地方引证。MySQL标识符命名规矩稍微有点繁琐,这儿咱们运用全能命名规矩:标识符由字母、数字或下划线(_)组成,且第一个字符有必要是字母或下划线。
关于标识符是否区别大小写取决于当时的操作系统,Windows下是不灵敏的,但关于大多数linuxunix系统来说,这些标识符大小写是灵敏的。
关键字:
MySQL的关键字很多,这儿不一一列出,在学习中学习。这些关键字有自己特定的意义,尽量防止作为标识符。
句子:
MySQL句子是组成MySQL脚本的根本单位,每条句子能完结特定的操作,他是由SQL规范句子+MySQL扩展句子组成。
函数:
MySQL函数用来实现数据库操作的一些高档功能,这些函数大致分为以下几类:字符串函数、数学函数、日期时刻函数、查找函数、加密函数、信息函数。
MySQL中的数据类型
MySQL有三大类数据类型,分别为数字、日期时刻、字符串,这三大类中又更详尽的划分了许多子类型:
数字类型
整数:tinyint、smallint、mediumint、int、bigint
浮点数:float、double、real、decimal
日期和时刻:date、time、datetime、timestamp、year
字符串类型
字符串:char、varchar
文本:tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等):tinyblob、blob、mediumblob、longblob
这儿不能具体对这些类型进行介绍了,篇幅或许会很长,具体介绍参见:《MySQL数据类型》:http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html
运用MySQL数据库
登录到MySQL
当MySQL服务已经运转时,咱们能够经过MySQL自带的客户端工具登录到MySQL数据库中,首要翻开指令提示符,输入以下格局的命名:
mysql-h主机名-u用户名-p
-h:该指令用于指定客户端所要登录的MySQL主机名,登录当时机器该参数能够省略;
-u:所要登录的用户名;
-p:告诉服务器将会运用一个暗码来登录,假如所要登录的用户名暗码为空,能够疏忽此选项。
以登录刚刚装置在本机的MySQL数据库为例,在指令行下输入mysql-uroot-p按回车承认,假如装置正确且MySQL正在运转,会得到以下响应:
Enterpassword:
若暗码存在,输入暗码登录,不存在则直接按回车登录,依照本文中的装置方法,默许root账号是无暗码的。登录成功后你将会看到WelecometotheMySQLmonitor…的提示语。
然后指令提示符会一向以mysql>加一个闪耀的光标等待指令的输入,输入exit或quit退出登录。
创立一个数据库
运用createdatabase句子可完结对数据库的创立,创立指令的格局如下:
createdatabase数据库名[其他选项];
例如咱们需求创立一个名为samp_db的数据库,在指令行下履行以下指令:
createdatabasesamp_dbcharactersetgbk;
为了便于在指令提示符下显现中文,在创立时经过charactersetgbk将数据库字符编码指定为gbk。创立成功时会得到QueryOK,1rowaffected(0.02sec)的响应。
留意:MySQL句子以分号(;)作为句子的完毕,若在句子结束不添加分号时,指令提示符会以->提示你持续输入(有个别特例,但加分号是一定不会错的);
提示:能够运用showdatabases;指令查看已经创立了哪些数据库。
挑选所要操作的数据库
要对一个数据库进行操作,有必要先挑选该数据库,否则会提示过错:
ERROR1046(3D000):Nodatabaseselected
两种方法对数据库进行运用的挑选:
一:在登录数据库时指定,指令:mysql-D所挑选的数据库名-h主机名-u用户名-p
例如登录时挑选刚刚创立的数据库:mysql-Dsamp_db-uroot-p
二:在登录后运用use句子指定,指令:use数据库名;
use句子能够不加分号,履行usesamp_db来挑选刚刚创立的数据库,挑选成功后会提示:Databasechanged
创立数据库表
运用createtable句子可完结对表的创立,createtable的常见方法:
createtable表称号(列声明);
以创立students表为例,表中将存放学号(id)、名字(name)、性别(sex)、年纪(age)、联系电话(tel)这些内容:
createtablestudents

idintunsignednotnullauto_incrementprimarykey,
namechar(8)notnull,
sexchar(4)notnull,
agetinyintunsignednotnull,
telchar(13)nulldefault”-”
);
关于一些较长的句子在指令提示符下或许容易输错,因此咱们能够经过任何文本修正器将句子输入好后保存为createtable.sql的文件中,经过指令提示符下的文件重定向履行履行该脚本。
翻开指令提示符,输入:mysql-Dsamp_db-uroot-p<createtable.sql
(提示:1.假如衔接远程主机请加上-h指令;2.createtable.sql文件若不在当时工作目录下需指定文件的完整路径。)
句子解说:
createtabletablename(columns)为创立数据库表的指令,列的称号以及该列的数据类型将在括号内完结;
括号内声明了5列内容,id、name、sex、age、tel为每列的称号,后面跟的是数据类型描绘,列与列的描绘之间用逗号(,)离隔;
以”idintunsignednotnullauto_incrementprimarykey”行进行介绍:
“id”为列的称号;
“int”指定该列的类型为int(取值规模为-8388608到8388607),在后面咱们又用”unsigned”加以修饰,表明该类型为无符号型,此刻该列的取值规模为0到16777215;
“notnull”阐明该列的值不能为空,有必要要填,假如不指定该特点,默许可为空;
“auto_increment”需在整数列中运用,其作用是在刺进数据时若该列为NULL,MySQL将主动产生一个比现存值更大的仅有标识符值。在每张表中仅能有一个这样的值且所在列有必要为索引列。
“primarykey”表明该列是表的主键,本列的值有必要仅有,MySQL将主动索引该列。
下面的char(8)表明存储的字符长度为8,tinyint的取值规模为-127到128,default特点指定当该列值为空时的默许值。
更多的数据类型请参阅《MySQL数据类型》:http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html
提示:1.运用showtables;指令可查看已创立了表的称号;2.运用describe表名;指令可查看已创立的表的具体信息。
操作MySQL数据库
向表中刺进数据
insert句子能够用来将一行或多行数据插到数据库表中,运用的一般方法如下:
insert[into]表名[(列名1,列名2,列名3,…)]values(值1,值2,值3,…);
其间[]内的内容是可选的,例如,要给samp_db数据库中的students表刺进一条记录,履行句子:
insertintostudentsvalues(NULL,”王刚”,”男”,20,”13811371377″);
按回车键承认后若提示QueryOk,1rowaffected(0.05sec)表明数据刺进成功。若刺进失败请查看是否已挑选需求操作的数据库。
有时咱们只需求刺进部分数据,或许不依照列的顺序进行刺进,能够运用这样的方法进行刺进:
insertintostudents(name,sex,age)values(“孙丽华”,”女”,21);
查询表中的数据
select句子常用来依据一定的查询规矩到数据库中获取数据,其根本的用法为:
select列称号from表称号[查询条件];
例如要查询students表中一切学生的名字和年纪,输入句子selectname,agefromstudents;履行成果如下:
mysql>selectname,agefromstudents;
+——–+—–+
|name|age|
+——–+—–+
|王刚|20|
|孙丽华|21|
|王永恒|23|
|郑俊杰|19|
|陈芳|22|
|张伟朋|21|
+——–+—–+
6rowsinset(0.00sec)
mysql>
也能够运用通配符*查询表中一切的内容,句子:select*fromstudents;
按特定条件查询:
where关键词用于指定查询条件,用法方法为:select列称号from表称号where条件;
以查询一切性别为女的信息为例,输入查询句子:select*fromstudentswheresex=”女”;
where子句不仅仅支撑”where列名=值”这种名等于值的查询方法,对一般的比较运算的运算符都是支撑的,例如=、>、<、>=、<、!=以及一些扩展运算符is[not]null、in、like等等。还能够对查询条件运用or和and进行组合查询,今后还会学到愈加高档的条件查询方法,这儿不再多做介绍。
示例:
查询年纪在21岁以上的一切人信息:select*fromstudentswhereage>21;
查询名字中带有”王”字的一切人信息:select*fromstudentswherenamelike”%王%”;
查询id小于5且年纪大于20的一切人信息:select*fromstudentswhereid20;
更新表中的数据
update句子可用来修正表中的数据,根本的运用方法为:
update表称号set列称号=新值where更新条件;
运用示例:
将id为5的手机号改为默许的”-“:updatestudentssettel=defaultwhereid=5;
将一切人的年纪添加1:updatestudentssetage=age+1;
将手机号为13288097888的名字改为”张伟鹏”,年纪改为19:updatestudentssetname=”张伟鹏”,age=19wheretel=”13288097888″;
删去表中的数据
delete句子用于删去表中的数据,根本用法为:
deletefrom表称号where删去条件;
运用示例:
删去id为2的行:deletefromstudentswhereid=2;
删去一切年纪小于21岁的数据:deletefromstudentswhereage<20;
删去表中的一切数据:deletefromstudents;
创立后表的修正
altertable句子用于创立后对表的修正,根底用法如下:
添加列
根本方法:altertable表名add列名列数据类型[after刺进方位];
示例:
在表的最终追加列address:altertablestudentsaddaddresschar(60);
在名为age的列后刺进列birthday:altertablestudentsaddbirthdaydateafterage;
修正列
根本方法:altertable表名change列称号列新称号新数据类型;
示例:
将表tel列改名为telphone:altertablestudentschangeteltelphonechar(13)default”-“;
将name列的数据类型改为char(16):altertablestudentschangenamenamechar(16)notnull;
删去列
根本方法:altertable表名drop列称号;
示例:
删去birthday列:altertablestudentsdropbirthday;
重命名表
根本方法:altertable表名rename新表名;
示例:
重命名students表为workmates:altertablestudentsrenameworkmates;
删去整张表
根本方法:droptable表名;
示例:删去workmates表:droptableworkmates;
删去整个数据库
根本方法:dropdatabase数据库名;
示例:删去samp_db数据库:dropdatabasesamp_db;
附录
修正root用户暗码
依照本文的装置方法,root用户默许是没有暗码的,重设root暗码的方法也较多,这儿仅介绍一种较常用的方法。
运用mysqladmin方法:
翻开指令提示符界面,履行指令:mysqladmin-uroot-ppassword新暗码
履行后提示输入旧暗码完结暗码修正,当旧暗码为空时直接按回车键承认即可。
可视化管理工具MySQLWorkbench
虽然咱们能够在指令提示符下经过一行行的输入或许经过重定向文件来履行mysql句子,但该方法效率较低,因为没有履行前的语法主动查看,输入失误造成的一些过错的或许性会大大添加,这时无妨试试一些可视化的MySQL数据库管理工具,MySQLWorkbench便是MySQL官方为MySQL供给的一款可视化管理工具,你能够在里面经过可视化的方法直接管理数据库中的内容,并且MySQLWorkbench的SQL脚本修正器支撑语法高亮以及输入时的语法查看,当然,它的功能强大,绝不仅限于这两点。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注