MySQL入门到精通.ppt
《MySQL入门到精通.ppt》由会员分享,可在线阅读,更多相关《MySQL入门到精通.ppt(152页珍藏版)》请在三一办公上搜索。
1、MySQL入门,课程总目标,MYSQL安装及配置有关数据库的DDL操作有关数据表的DDL操作数据库的CRUD操作索引、视图事务控制存储过程、触发器权限管理数据的导入、导出,目标,数据库介绍数据库相关的基本概念MYSQL简介MYSQL下载、安装及配置启动和停止MYSQL服务,为何使用数据库,存储数据的方法第一种方法:用大脑记住 数据第二种方法:写在纸上第三种方法:写在计算机的内存中第三种方法:写成磁盘文件,数据库能做什么,存储大量数据,方便检索和访问保持数据的一致、完整共享和安全通过组合分析,产生新的有用信息,数据库的发展,萌芽阶段-文件系统使用磁盘文件来存储 数据初级阶段-第一代数据库出现了网
2、状模型、层次模型的数据库中级阶段-第二代数据库关系型数据库和结构化查询语言高级阶段-新一代数据库“关系-对象”型数据库,当前数据库产品,Oracle-甲骨文DB2-IBMSQL Server-微软Sybase-赛贝斯My SQL-甲骨文,数据库和应用程序,数据库的基本概念,概念模型:基于客户的想法和观点所形成的认识和抽象实体(Entity):客观存在的、可以被描述的事物。如:员工、部门属性(Attribute):用于描述实体所具有的特性或特征。如:使用编号、姓名、部门、工资等属性来描述员工的特征关系(Relationship):实体之间的关系。如:部门和员工之间有一对多的关系,数据库的基本概念
3、,数据模型:也叫关系模型,是实体、属性、关系在数据库中的具体体现关系数据库:用于存储各种类型数据的“仓库”,是二维表的集合。表:实体的映射行和列:行代表一个具体的实体的数据。也叫一条记录。列是属性的映射,用于描述实体的。主键和外键:主键:是指定该列的值可以唯一的标识该条记录外键:是指定该行记录从属于主表中的一条记录,主要用于保证参照完整性。,数据库的基本概念,数据库管理系统(DBMS),My SQL是什么,My SQL是最流行的开放源码SQL数据库管理系统My SQL是一种关系数据库管理系统My SQL软件是一种开放源码软件My SQL数据库服务器具有快速、可靠和易于使用的特点My SQL服务
4、器工作在客户端/服务器模式下,或嵌入式系统中My SQL数据库软件是一种客户端/服务器系统,由支持,My SQL是什么,不同后端的1个多线程SQL服务器,数种不同的客户端程序和库,众多管理工具和广泛的应用编程接口API组成。有大量可用的共享My SQL软件,My SQL体系结构,My SQL的发展,My SQL最早起始于1979,开始是Michael.Monty.Widenius为瑞典的TcX公司创建的UNIREG数据库工具1996年5月My SQL 1.01996年10月以用于Linux和Solaris系统的二进制分发形式发布2003年3月My SQL 4.02004年6月My SQL 4.
5、12005年10月My SQL 5.0,My SQL的发展,2008年1月16日Sun出价10亿美元收购 了My SQL2011年,My SQL的特性,内部构件和可移植性使用C和C+编写,能够工作在众多不同的平台上列类型众多列类型,定长和可变长度记录语句和函数安全允许基于主机的验证可伸缩性和限制,My SQL 的特性,连接性在任何平台上,客户端可使用TCP/IP协议连接到My SQL服务器本地化客户端和工具,著名的My SQL用户,GoogleGoogle和My SQL建立了协议,它所有的数据库都建立在My SQL之上其收购的世界最大的视频网站YouTube也采用了My SQL数据库雅虎财经网
6、站的数据库维基百科腾讯大家所熟知的腾讯QQ就是采用Linux操作系统+My SQL数据库平台,My SQL数据库下载,帮助手册下载,My SQL安装,见操作演示。,启动和停止My SQL服务,以Windows服务方式启动从命令行启动服务器在命令行窗口下切换到My SQL安装目录bin目录下启动:Mysqld-nt-console-服务器在前台运行,需另开一个控制台窗口来运行客户端程序Net start mysql停止:Mysqladmin-u root p shutdown,总结,数据库介绍数据库相关概念My SQL简介My SQL下载、安装和配置启动和停止My SQL服务,MYSQL数据库表
7、管理,目标,数据库管理SQL简介有关数据库的DDL操作数据表的列类型有关数据表的DDL操作帮助的使用,客户端程序连接与断开服务器,连接:My sql h My SQL服务器地址-u 用户名-p-h(hostname)My SQL数据库主机地址-u(username)登录My SQL数据库服务器主机的用户-p(password)用户登陆My SQL服务器的密码本地登陆用:my sql u 用户名 p断开:在my sql提示符下输入quit(或q)随时退出,SQL语句概述,SQL:结构化查询语言(Structured Query Language)一般读作si:kju:或”ess-que-el”(
8、字母”S”、”Q”、”L”的发音)在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。,SQL分类,在My SQL数据库中,SQL语句主要可以划分为以下几类:DDL(Data Definition Language):数据定义语言,定义对数据库对象(库、表、列、索引)的操作Create、Drop、Alter、Rename等DML(Data Manipulation Language):数据操作语言,定义对数据库记录的操作Insert、Delete、Update、Select、Truncate等,SQL分类,DCL(Data Control Language):数据控制语言,定义对数据
9、库、表、字段、用户的访问权限和安全级别Grant、Revoke等Transaction Control:事务控制Start Transaction、Commit、RollBack、Savepoint等,SHOW DATABASES,语法:SHOW DATABASESLike wild;如果使用like wild部分,wild字符串可以是一个使用SQL的%”和”_”通配符的字符串。功能:列出在My SQL服务器主机上的数据库My SQL自带的数据库Information_schema:主要存储了系统中的一些数据库对象信息:如用户表信息、列信息、权限信息、字符集信息、分区信息等,SHOW DATA
10、BASES,My SQL自带的数据库:my sql:存储了系统的用户权限信息及帮助信息test:系统自动创建的测试数据库,任何用户都可以使用。,SQL语句语法,SQL语句可单行或多行书写,以”;”结尾用空格和缩进来提高语句的可读性。关键词不能跨多行或简写,大小写不敏感子句通常位于独立行,便于编辑,提高可读性例如:select*from emp;,SQL语句语法,注释:SQL标准从/*多行注释*/从-到行尾。注意:第2个破折号后面至少跟一个空格符(例如空格、tab、换行符等等)。该语法与标准SQL注释语法稍有不同。My SQL从”#”字符到行尾,Create Data Base,语法:Creat
11、e DataBase if not exists 数据库名;功能:用给定的名字创建一个数据库前提:需要获得数据库Create权限如果数据库已经存在,发生一个错误,Drop Data Base,语法:Drop DataBase if exists 数据库名;功能:删除数据库中的所有表和数据库前提:需要获得数据库Drop权限要小心使用这个命令,用USE选用数据库,语法:Use 数据库名;功能:把指定数据库作为默认(当前)数据库使用,用于后续语句。,列类型,My SQL支持多种列类型数值类型日期/时间类型字符串(字符)类型,数值数据类型整数,数值数据类型浮点数,注:M表示最大显示宽度;D表示小数点后
12、面的位数。定点数DECIMAL在内部以字符串形式存放,适合于表示货币等精度高的数据。一定要指定M和D。,日期/时间类型,注:TIMESTAMP跟时区相关,插入日期时,会先转换为本地时区后存放,而取出时,也会将日期转换为本地时区后显示。,字符串类型,SHOW,语法:Show tables from 数据库名 like wild功能:显示当前数据库中已有的数据表的信息,DESCRIBE,语法:DESCRIBE|DESC 表名列名功能:查看数据表中各列的信息用”show create table 表名;”可以查看更全面的表定义信息,用Create table创建数据表,简单语法:Create tab
13、le 表名(列名 列类型,列名 列类型,.);功能:在当前数据库中创建一张表前提:必须拥有表Create权限,关于识别符,数据库名、表名、索引名、列名和别名是识别符:操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性Windows系统大小写不敏感,Linux、Unix系统大小写敏感,建表示例,Create table dept(dept_id int,name varchar(20);Create table emp(emp_id int,name varchar(20),gender char,address varchar(100);,删除数据表,语法:Drop table if e
14、xists 表名;功能:删除指定的表,用Alter Table语句修改表的结构,修改列类型Alter table 表名 modify 列名 列类型;增加列Alter table 表名 add 列名 列类型;删除列Alter table 表名 drop 列名;,用Alter Table语句修改表的结构,列改名Alter table 表名 change 旧列名 新列名 列类型;更改表名Alter table 表名 rename 新表名;Rename table 表名 to 新表名;,My SQL帮助的使用,安装自带的文档安装目录Docsmanual.chm命令行帮助?contents 显示所有可供
15、查询的分类?类别名称 如:?Data types;?关键字 如:?Create table;,总结,有关数据库的DDL操作Show databases;Create database 数据库名;Drop database if exists 数据库名;Use 数据库名;有关数据表的DDL操作Show tables from 数据库名;Desc 表名;Create table 表名(.);Drop table if exists 表名;Alter table 表名;,总结,数据表的列类型数值类型日期类型字符串类型帮助的使用manual.chm?,作业,有一Blog系统使用的数据库是myblog,
16、现在有几个要求:创建好数据库My blog.根据实际应用情况在my blog中创建好以下两张表帐号、文章类别帐号(account)编号(category_id)、用户名(username)、密码(password)、邮箱号(email)、性别(gender)、博客名(title)通过alter table 给此表添加两个字段:昵称(nickname)、头像(headlmg),作业,文章类别表(category)编号(category_id)、帐户编号(account_id)、类别名(title)、描述(description)、文章数(articleNum)、可访问性(visible)、创建时
17、间(createdTime),常用运算符和函数,目标,常用运算符算术运算符比较运算符逻辑运算符常用函数字符串函数数值函数日期和时间函数流程函数其他常用函数,算术运算符,比较运算符,逻辑运算符,字符串常用函数,数值常用函数,日期和时间常用函数,流程函数,其他常用函数,总结,常用运算符算术运算符比较运算符逻辑运算符常用函数字符串函数数值函数日期和时间函数流程函数其他常用函数,My SQL 数据表DML操作,目标,有关数据表的DML操作Insert intoDelete、TruncateUpdate Select条件查询查询排序聚合函数分组查询,Insert语句,语法:Insert into 表名(
18、列名1,列名n)values(值1,.值n);功能:向指定的表添加指定值的记录一次性插入多条记录:Insert into 表名(列名1,列名n)values(值1,.值n),(值1,.值n),.;,Delete 语句,语法:Delete from 表名 where 条件;功能:用于删除满足指定条件的记录注:所有SQL语句的条件子句中都可以使用运算符和函数,Truncate语句,语法:Truncate table table name;功能:用于完全清空一张表,Update 语句,语法:Update 表名 set 列名1=值1,.列名n=值nwhere 条件;,Select 语句,基本语法:Se
19、lect selection_list 选择哪些列 from table_list 从何处选择行 where primary_constraint 行必须满足什么条件 group by grouping_columns 怎样对结果分组 having secondary_constraint 行必须满足的第二条件 order by sorting_columns 怎样对结果排序 limit offset_start,row_count 结果限定,普通查询,查询所有的记录的所有列Select*from employees;查询特定行Select*from emp where name=张三;查询特
20、定列Select name,age form emp;去掉重复的值Select distinct dept_id from emp;给列取别名Select name as 姓名 from emp;,条件查询,语法:Select 列名,.from 表名 where 条件;Where子句中的条件表达式可以包括运算符可以使用圆括号将一个表达式分成几个部分可以使用常量、列和函数来完成运算Where 子句中不能出现组函数,查询排序,语法Select 列名,from 表名 where 条件 order by 排序列名1asc|desc,排序列名2asc|desc,;Asc:升序,缺省;Desc:降序,查询
21、排序,例:Select*from emp order by dept_id,sal desc;Select*from emp order by rand();,分组查询,语法:Select 列名,from 表名 where 条件 group by 分组的列;Group by 子句的真正作用在于与各种聚合函数配合使用。它用来对查询出来的数据进行分组,分组后的数据执行组函数计算,最终结果自动按分组列进行升序排序。,常用聚合函数,聚合函数对一组值执行计算,并返回单个值。也叫组函数。除了count()以外,聚合函数都会忽略空值。聚合函数不能和非分组的列混合使用。,示例,Select count(*)a
22、s 总数 from emp;Select dept_id,count(*),sum(sal),avg(sal)from emp group by dept_id;查询分组中一个非常重要的规则:出现在select 列表中的列,如果出现的位置不是在组函数中,那么必须出现在group by 子句中。,Having,Having 子句用来对分组后的结果再进行条件过滤。例如:Select dept_id,avg(sal)from emp where sal between 2500 and 8000 group by dept_id having count(*)1;,Having 与Where的区别,
23、Where 子句是在分组前进行的条件过滤,所以where子句中不能使用聚合函数。Having 子句是分组后进行的条件过滤,所以having子句中可以使用聚合函数。,查询结果限定,在select语句的最后可以用limit来限定查询结果返回的起始记录和总数量。(my sql特有的)语法:Select from emp limit start_row,row_count;Start_row:起始点,默认为0Row_count:记录数例如:Select*from emp limit 6;/*检索前5条记录*/Select*from emp limit 6,10;-检索记录行7-16*,总结,有关数据表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 入门 精通
链接地址:https://www.31ppt.com/p-5441053.html