MySQL培训人:***启动MySQL服务器启动MySQL服务器的方法有两种:系统服务器和命令提示符(DOS)1.通过系统服务器启动MySQL服务器如果MySQL设置为Windows服务,则可以通过选择“开始”/“管理工具”/“服务”命令打开Windows服务管理器。在服务器的列表中找到mysql服务并右击,在弹出的快捷菜单中选择“启动”命令,启动MySQL服务器,如图所示。启动MySQL服务器2.在命令提示符下启动MySQL服务器选择“开始”/“运行”命令,在弹出的“运行”对话框中输入cmd命令,按Enter键进入DOS窗口。在命令提示符下输入:\netstartmysql按Enter键,即可启用MySQL服务器,如图所示。断开MySQL服务器1.通过系统服务器停止MySQL服务器如果将MySQL设置为Windows服务,则可以通过选择“开始”/“管理工具”/“服务”命令,打开Windows服务管理器,在服务器的列表中右击mysql服务,在弹出的快捷菜单中选择“停止”命令,停止mysql服务,如图所示。停止MySQL服务器2.在命令提示符下停止MySQL服务器选择“开始”/“运行”命令,在弹出的“运行”对话框中输入cmd命令,进入DOS窗口,在命令提示符下输入:\netstopmysql按Enter键即可停止MySQL服务器,如图所示。创建数据库CREATEDATABASE•使用CREATEDATABASE语句可以轻松创建MySQL数据库。•语法格式如下:•CREATEDATABASE数据库名;•在创建数据库时,数据库命名有以下几项规则:不能与其他数据库重名,否则将发生错误。名称可以由任意字母、阿拉伯数字、下划线(_)和“$”组成,可以使用上述的任意字符开头,但不能使用单独的数字,否则会造成它与数值相混淆。不能使用MySQL关键字作为数据库名、表名。在默认情况下,Windows下数据库名、表名的大小写是不敏感的,而在Linux下数据库名、表名的大小写是敏感的。为了便于数据库在平台间进行移植,建议采用小写来定义数据库名和表名。删除数据库DROPDATABASE•删除数据库可以使用DROPDATABASE语句。•语法格式如下:•DROPDATABASE数据库名;数据库基础知识•数据库基础知识概述•SQL概述•SQL语言数据库基础知识•数据库由一批数据构成的有序集合,这些数据被分门别类地存放在一些结构化的数据表(table)里,而数据表之间又往往存在交叉引用的关系,这种关系使数据库又被称为关系型数据库•档案柜=数据库•抽屉=表•文件=记录数据库数据表存储过程视图….…订单客户产品表产品数据库数据表行(记录)列(字段)数据在表中的存放编号姓名年龄民族部门1王涛33汉族人事管理部2李梅27汉族人事管理部存在冗余1127李梅21133王涛1部门编码民族编码年龄姓名编号回族2汉族1民族民族编码市场营销部2人事管理部1部门部门编码为减少数据查找的麻烦,允许数据有一定的冗余数据存储的完整性RollNumberNameAddressBookTaken12AliciaRuth12,TempleStreetAC09114JasonDarren123,SunsetBlvd.AC04315MaryBeth32,GoldenAvenueAC02112AliciaRuth12,TempleStreetAC04312AliciaRuth12,TmpleStreetAC01115MaryBeth33,GoldenAvenueAC011存在不正确、不准确的数据,数据库“失去了完整性”姓名不同的地址!数据的完整性可靠性准确性数据完整性完整性分类•数据实体完整性•字段完整性•引用完整性•自定义完整性数据实体完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012….地址姓名学号×江西南昌雷铜0010014约束方法:唯一约束、主键约束、标识列字段完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012….地址姓名学号×湖北江门李亮8700000000约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束引用完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012…地址姓名学号科目学号分数…数学001001288数学001001374语文001001267语文001001381数学001001698约束方法:外键约束自定义完整性AV121322乔峰CV0016AV372133玄痛CV0015AV378291沙悟净AV0014AV378290猪悟能AV0013AV378289孙悟空AV0012….会员证用户姓名用户编号帐号姓名信用….00192孙悟空700288猪悟能612333段誉890111虚竹4093000岳不群-10×触发器:检查信用值约束方法:规则、存储过程、触发器完整性包括…•输入的类型是否正确?——年龄必须是数字•输入的格式是否正确?——身份证号码必须是18位•是否在允许的范围内?——性别只能是”男”或者”女”•是否存在重复输入?——学员信息输入了两次•是否符合其他特定要求?——信誉值大于5的用户才能够加入会员列表•……列值要求(约束)整行要求(约束)SQL概述•什么是SQL?SQL是StructuredQueryLanguage(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL语法组成•DML(DataManipulationLanguage数据操作语言)——查询、插入、删除和修改数据库中的数据;——SELECT、INSERT、UPDATE、DELETE等;•DCL(DataControlLanguage数据控制语言)——用来控制存取许可、存取权限等;——GRANT、REVOKE等;•DDL(DataDefinitionLanguage数据定义语言)——用来建立数据库、数据库对象和定义其列——CREATETABLE、DROPTABLE、ALTERTABLE等•功能函数——日期函数、数学函数、字符函数、系统函数等MySQL中使用SQL语言几点说明•属于一个SQL语句,使用分号(;)结尾,否则mysql认为语句没有输入完。•箭头(-)代表SQL语句没有输入完•取消SQL语句使用(\c)•SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分)•使用函数时,函数名和后面的括号之间不能有空格MySQL数据类型•数据类型种类•数值列类型•字符串列类型•日期和时间列类型数据类型种类•数值型分为整型和浮点型–整型:可以由十进制和十六进制表示整数由数字序列组成,如:1,100。由十六进制表示方法:0x且后面加1—9和A—F的任意数字或字母,并且0x中的X不能大写。–浮点型:浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。日期和时间值是存储如“2005-1-1”或者“12:00:00”这样的数值的值。在MySQL中日期是按”年-月-日”的顺序。NULL值是一种无类型的值,表示“空,什么也没有”。数值列类型MySQL为除了NULL值外的所有通用数据类型提供了列类型。列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。•数值列类型所有数值列类型的类型名及其说明和所占的字节数见下表:数值列的完整性约束–AUTO_INCREMENT自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOTNULL,并定义为PRIMARYKEY或者定义为UNIQUE键。NULL和NOTNULL默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOTNULL,则必须在插入值时在此字段添入值,不允许插入NULL值。字符串•字符串列类型•所有字符串列类型及其说明和所占的字节数见下表:CHAR和VARCHAR类型CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。BLOB和TEXT类型BLOB是二进制大对象,如果想存储二进制数BLOB将是最佳选择,而TEXT与之相同,只是BOLOB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。•ENUM和SET类型是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(不推荐使用)日期和时间列类型•所有时间和日期列类型的类型名及其说明和所占的字节数见下表:•说明:•每个时间和日期列类型都有一个零值,当插入非法数值时就用零值来添加•表示日期时必须先按:年,月,日的顺序给出•DATE,TIME,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为“YYYY-MM-DD”,“hh:mm:ss”和“YYYY-MM-DDhh:mm:ss”,对于DATETIME类型,日期和时间部分都需要•TIMESTAMP•时间戳列类型以YYYYMMDDhhmmss的格式来表示值,其取值范围是19700101000000到2037年的某个时间,主要用于记录更改或创建某个记录总结:常用数据类型分类备注和说明数据类型说明二进制数据类型存储非子符和文本的数据BLOB可用来存储图像文本数据类型字符数据包括任意字母、符号或数字字符的组合char固定长度的非Unicode字符数据varchar可变长度非Unicode数据text存储长文本信息日期和时间日期和时间在单引号内输入time时间date日期datetime日期和时间数值型数据该数据仅包含数字,包括正数、负数以及浮点数intsmallint整数floatdouble浮点数货币数据类型用于财务数据decimal定点数Bit数据类型表示是/否的数据bit存储布尔数据类型创建数据库•建立数据库操作:语法:createdatabase数据库名叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。例:建立一个student库。mysqlcreatedatabasestudent;mysql数据库备份及恢复命令mysqldump,source的用法还原一个数据库:mysql-hlocalhost-uroot-p123456数据库名数据库所在路径(c:\数据库名.sql)备份一个数据库:mysqldump-hlocalhost-uroot-p123456数据库名数据库所在路径(d:\数据库.sql)备份MySQL数据库的命令mysqldump-hhostname-uusername-ppassworddatabasenamebackupfile.sql直接将MySQL数据库压缩备份mysqldump-hhostname-uusername-ppassworddatabasename|gzipbackupfile.sql.gz备份MySQL数据库某个(些)表mysqldump-hhostname-uusername-ppassworddatabasenamespecific_table1specific_tabl