资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,/45,初识,MySQL,线上线下,平台预习,2,/45,本课目标,学完本次课程后,你能够,:,了解,MySQL数据库,学会安装MySQL,学会使用SQLyog数据库管理,工具,了解常用的数据库命令,熟悉创建数据库表的语句,熟悉常见的数据列属性、类型和索引,3,/,45,为什么学习数据库,岗位技能需求,现在的世界,得数据者得天下,存储数据的方法,程序、网站中大量,数据,需,长久保存,4,/,45,什么是数据库,数据库(,Database,简称,DB,),概念,长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”,作用,保存、管理数据,5,/,45,数据库总览,关系型数据库(,SQL,),MySQL,、,Oracle,、,SQL Server,、,SQLite,、,DB2,非关系型数据库(,NOSQL,),Redis,、,MongoDB,6,/,45,什么是DBMS,数据库管理系统,(Database Management System,),数据管理软件,科学组织和存储数据、高效地获取和维护数据,7,/,45,MySQL简介,概念,是现流行的开源、免费的关系型数据库,特点,免费、开源数据库,小巧、功能齐全,使用便捷,可运行于,Windows,或,Linux,操作系统,可适用于中小型甚至大型网站应用,8,/,45,MySQL,的运行机制,支持接口,标准,C,的,API,、,JDBC,、,CDBC,、,.NET,、,PHP,、,Python,、,Perl,、,Ruby,、,Cobol,企业管理服务和工具,备份与恢复,安全,复制,群集,分区管理,事例管理,数据模板管理,工作台,查询浏览,合并工具,连接池,验证与授权,线程,连接限制,内存与缓存管理,SQL,接口,数据管理语言和数据定义语言、存储过程、视图、触发器等,解析器,查询,事务对象优先级,查询优化器,访问路径,统计,缓存和缓冲池和具体引擎的缓存和缓冲池,文件系统,新技术文件;网络文件系统,存储区域网络和网路附加存储,文件和日志,Redo,、,Undo,、,Data,、,Index,、,Binary,Error,、,Query and Slow,可插式存储引擎,内存,索引和存储管理,MySQL Server,9,/,45,在Windows操作系统下安装2-1,下载,MySQL,MySQL,5.5.40(Windows,版,),下载地址:,(int(11),PK),SubjectName(varchar 50),ClassHour(int (4),GradeID(int(4),添加数据,演示:使用,SQLyog,创建数据表,14,/,45,练习,1,:,SQLyog,创建数据库,需求说明,使用,SQLyog,管理工具,连接本地,MySQL,数据库,新建,MySQL,数据库,数据库名称,MySQL,新建数据库表(,grade,),字段,GradeID:int(11)Primary Key(pk),GradeName:varchar(50),15,/,45,连接数据库,打开,MySQL,命令窗口,在,DOS,命令行窗口,(cmd.exe),在窗口中进入 安装目录,mysqlbin,可设置环境变量,连接数据库语句,mysql,-h,服务器主机地址,u,用户名,-p,用户,密码,演示示例,1,:,命令行连接数据库,16,/,45,结构化查询语句,SQL,结构化查询语句分类,名称,解释,命令,DDL,(数据定义语言,),定义和管理数据对象,,如数据库,数据表等,CREATE,、,DROP,、,ALTER,DML,(数据操作语言),用于操作数据库对象中所包含的数据,INSERT,、,UPDATE,、,DELETE,DQL,(数据查询语言),用于查询数据库数据,SELECT,DCL,(数据控制语言),用来管理数据库的语言,包括管理权限及数据更改,GRANT,、,COMMIT,、,ROLLBACK,17,/,45,命令行操作数据库,创建数据库,删除数据库,查看数据库,使用数据库,CREATE DATABASE IF NOT EXISTS,数据库名,;,DORP DATABASE IF EXISTS,数据库名,;,SHOW DATABASES;,USE,数据库名,;,演示示例,2,:命令行操作数据库,18,/,45,对比工具操作数据库,建库,学习方法,对照,SQLyog,工具自动生成的语句学习,固定语法中的单词需要记忆,19,/,45,工具建表,建表,显示表结构,desc,表名,显示表创建语句,show create table 表名,20,/,45,创建数据表,属于,DDL,的一种,CREATE TABLE IF NOT EXISTS ,表名,(,字段名,1,列类型,属性,索引,注释,字段名,2,列类型,属性,索引,注释,字段名,n,列类型,属性,索引,注释,),表类型,表字符集,注释,;,反引号(可选、区别于单引号),反引号用于区别,MySQL,保留字与普通字符而引入,的,演示示例,3,:数据表创建语法,语法,注意,21,/,45,列类型,表列类型设置,CREATE TABLE IF NOT EXISTS ,表名,(,字段名,1,列类型,属性,索引,注释,字段名,2,列类型,属性,索引,注释,字段名,n,列类型,属性,索引,注释,),表类型,表字符集,注释,;,22,/,45,语法,数据值和列类型,列类型,规定数据库中该列存放的数据类型,分为,数值类型,字符串类型,日期和时间型数值类型,NULL,值,23,/,45,列类型分类,4-1,数值类型,类型,说明,取值范围,存储需求,tinyint,非常小的数据,有符值:,-2,7,2,7,-1,无符号值:,0 2,8,-1,1,字节,smallint,较小的数据,有符值:,-2,15,2,15,-1,无符号值:,0 2,16,-1,2,字节,mediumint,中等大小的数据,有符值:,-2,23,2,23,-1,无符号值:,0 2,24,-1,3,字节,int,标准整数,有符值:,-2,31,2,31,-1,无符号值:,0 2,32,-1,4,字节,bigint,较大的整数,有符值:,-2,63,2,63,-1,无符号值:,0 2,64,-1,8,字节,float,单精度浮点数,1.1754351e-38,4,字节,double,双精度浮点数,2.2250738585072014e-308,8,字节,decimal,字符串形式的浮点数,decimal,(,m,d,),m,个字节,24,/,45,列类型分类,4-2,字符串类型,类型,说明,最大长度,char,(M),固定长字符串,检索快但费空间,,0=M =255,M,字符,varchar,(M),可变字符串,0=M=65535,变长度,tinytext,微型文本串,2,8,1,字节,text,文本串,2,16,1,字节,25,/,45,列类型分类,4-3,日期和时间型数值类型,类型,说明,取值范围,DATE,YYYY-MM-DD,,日期格式,1000-01-01 9999-12-31,TIME,Hh:mm:ss,,时间格式,-838:59:59838:59:59,DATETIME,YY-MM-DD hh:mm:ss,1000-01-01 00:00:00,至,9999-12-31 23:59:59,TIMESTAMP,YYYYMMDDhhmmss,格式表示的时间戳,197010101000000 2037,年的某个时刻,YEAR,YYYY,格式的年份值,19012155,26,/,45,列类型分类,4-4,NULL,值,理解为“没有值”或“未知值”,不要用,NULL,进行算术运算,结果仍为,NULL,选择,数据类型,整数和浮点,日期类型,char,和,varchar,27,/,45,数据字段属性,表列类型设置,CREATE TABLE IF NOT EXISTS ,表名,(,字段名,1,列类型,属性,索引,注释,字段名,2,列类型,属性,索引,注释,字段名,n,列类型,属性,索引,注释,),表类型,表字符集,注释,;,28,/,45,语法,数据字段属性,2-1,UNSIGNED,无符号的,声明该数据列不允许负数,ZEROFILL,0,填充的,不足位数的用,0,来填充,如,int(3),5,则为,005,AUTO_INCREMENT,自动增长的,每添加一条数据,自动在上一个记录数上加,1,通常用于设置主键,且为整数类型,可定义起始值和步长,29,/,45,数据字段属性,2-2,NULL,和,NOT NULL,默认为,NULL,即没有插入该列的数值,如果设置为,NOT NULL,,则该列必须有值,DEFAULT,默认的,用于设置默认值,例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值,30,/,45,数据字段注释,表列类型注释,CREATE TABLE IF NOT EXISTS ,表名,(,字段名,1,列类型,属性,索引,注释,字段名,2,列类型,属性,索引,注释,字段名,n,列类型,属性,索引,注释,),表类型,表字符集,注释,;,CREATE TABLE IF NOT EXISTS test,(,id int(11)UNSIGNED,COMMENT ,编码号,),COMMENT=,测试,表,;,示例,31,/,45,语法,练习,2,:,创建数据表,student,需求,说明,使用语句新建,student,表,具体设计,如下,32,/,45,数据表的,类型,3-1,表列类型设置,CREATE TABLE IF NOT EXISTS ,表名,(,字段名,1,列类型,属性,索引,注释,字段名,2,列类型,属性,索引,注释,字段名,n,列类型,属性,索引,注释,),表类型,表字符集,注释,;,演示示例,4,:,设置数据表的类型,33,/,45,语法,数据表的类型,3,-2,设置数据表的类型,CREATE TABLE,表名,(,#,省略一些代码,),ENGINE=MyISAM,或者,CREATE TABLE,表名,(,#,省略一些代码,),ENGINE=InnoDB,MySQL,注释:,1,、,#,单行注释,2,、,/*/,多行注释,示例,34,/,45,数据表的类型,3-3,MySQL,的数据表的,类型,MyISAM,、,InnoDB,、,HEAP,、,BOB,、,CSV,等,常见的,MyISAM,与,InnoDB,类型,名称,MyISAM,InnoDB,事务处理,不支持,支持,数据行锁定,不支持,支持,外键约束,不支持,支持,全文索引,支持,不支持,表空间大小,较小,较大,约,2,倍,使用,MyISAM:,节约空间及相应速度,使用,InnoDB:,安全性,事务处理及多用户操作数据表,技巧,35,/,45,设置数据表字符集,表列类型设置,CREATE TABLE IF NOT EXISTS ,表名,(,字段名,1,列类型,属性,索引,注释,字段名,2,列类型,属性,索引,注释,字段名,n,列类型,属性,索引,注释,),表类型,表字符集,注释,;,36,/,45,语法,设置数据表字符集,可为数据库、数据表、数据列设定不同的字符集,设定方法,创建时通过命令来设置,如,如无设定,则根据,MySQL,数据库配置文件,my.ini,(,Windows,系统)中的参数设定,如,:,character-set-sever=utf8,CREATE TABLE,表名,(,#,省略一些代码,),CHAR,SET,=utf8;,37,/,45,语法,练习,3,:,新建,subject,表,需求,说明,使用语句新建,subject,表,设置数据表为,MyISAM,类型,具体设计,如下,38,/,45,创建表,索引,CREATE TABLE IF NOT EXISTS ,表名,(,字段名,1,列类型,属性,索引,注释,字段名,2,列类型,属性,索引,注释,字段名,n,列类型,属性,索引,注释,),表类型,表字符集,注释,;,39,/,45,语法,数据表的存储位置,MySQL,数据表以文件方式存放在磁盘中,包括表文件、数据文件以及数据库的选项文件,位置:,MySQL,安装目录,data,下存放数据表。目录名对应数据库名,该目录下文件名对应数据表,注意,InnoDB,类型数据表只有一个,*.frm,文件,,数据文件为上,一级目录的,ibdata1,文件,MyISAM,类型数据表对应三个文件:,*.frm -,表结构定义文件,*.MYD -,数据文件,*.MYI -,索引,文件,40,/,45,修改数据表,修改表(,ALTER TABLE,),修改表名,添加字段,修改字段,删除字段,ALTER TABLE,旧表名,RENAME AS,新表名,ALTER TABLE,表名,ADD,字段名,列类型,属性,ALTER TABLE,表名,MODIFY,字段名,列类型,属性,ALTER TABLE,表名,DROP,字段名,ALTER TABLE,表名,CHANGE,旧字段名 新字段名,列类型,属性,演示示例,5,:,修改数据表,41,/,45,语法,删除数据表,IF EXISTS,为可选,判断是否存在该数据表,如删除不存在的数据表会抛出错误,DROP TABLE IF EXISTS,表名,语法,演示示例,6,:,删除数据表,42,/,45,总结,简单说说,DBMS,与,DB,的关系?,MySQL,数据库的特点是什么?,如何使用,SQLyog,工具来创建数据库表?,如何创建数据表?,如何修改和删除数据表?,43,/,45,问题及作业,集中问题,&,课后作业,44,/45,
展开阅读全文