第六章MYSQL数据库.ppt

上传人:本田雅阁 文档编号:3455422 上传时间:2019-08-27 格式:PPT 页数:50 大小:787.54KB
返回 下载 相关 举报
第六章MYSQL数据库.ppt_第1页
第1页 / 共50页
第六章MYSQL数据库.ppt_第2页
第2页 / 共50页
第六章MYSQL数据库.ppt_第3页
第3页 / 共50页
第六章MYSQL数据库.ppt_第4页
第4页 / 共50页
第六章MYSQL数据库.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第六章MYSQL数据库.ppt》由会员分享,可在线阅读,更多相关《第六章MYSQL数据库.ppt(50页珍藏版)》请在三一文库上搜索。

1、第六章mysql数据库,本章议题,数据库导论 初识MYSQL数据库 MySQL数据类型 MySQL运算符 SQL语句 MySQL数据库管理,数据库导论,数据的定义: 描述事物的符号记录。数据是数据库中存储的基本对象。 数据的种类 文字、图形、图象、声音 数据的特点 数据与其语义是不可分的,数据库导论,数据库的定义: 数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合,数据库导论,数据库的特征 数据按一定的数据模型组织、描述和储存 可为各种用户共享 冗余度较小 数据独立性较高 易扩展,数据库导论,什么是DBMS: 数据库管理系统(Database Manag

2、ement System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。 DBMS的用途: 科学地组织和存储数据、高效地获取和维护数据。,数据库导论,什么是数据库系统: 数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。 在不引起混淆的情况下常常把数据库系统简称为数据库。 数据库系统的构成: 由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。,初识MYSQL数据库,MySQL介绍 MySQL是一个真正的多用户、多线程SQL数据库服务器。 MySQL是一个客户机/服务器结构的实现,它由一个服务器守护程序my

3、sqld和很多不同的客户程序和库组成。 MySQL主要目标是快速、健壮和易用。,初识MYSQL数据库,MySQL的特点 成本:Mysql是免费的,并且它的技术支持也很便宜 速度:Mysql胜过它的大多数竟争对手 功能;Mysql提供了开发人员所需要的大多数功能。 可移植:Mysql可以在绝大多数的操作系统中运行 易用:Mysql易于使用和管理。,MySQL数据类型,数值类型 字符串类型 日期和时间类型,数值类型,字符串类型,字符串类型,CHAR和VARCHAR类型 CHAR类型和VARCHAR类型长度范围都是0255之间的大小。他们之间的差别在于MySQL处理这个指示器的方式:CHAR把这个大

4、小视为值的准确大小(用空格填补比较短的值,所以达到了这个大小),而VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短 )。,日期和时间类型,MySQL运算符,算数运算符 比较运算符 逻辑运算符 位运算符 通配符,算数运算符,比较运算符,逻辑运算符,位运算符,通配符,SQL语句,SQL语言的分类 SQL语句,SQL被称为结构化查询语言 (Structured Query Language ) SQL 是操作和检索关系型数据库的标准语言,使用

5、Sql语句,程序员和数据库管理员可以完成如下的任务 改变数据库的结构 更改系统的安全设置 增加用户对数据库或表的许可权限 在数据库中检索需要的信息 对数据库的信息进行更新,SQL语言的分类,DML语句(数据操作语言) Insert / Update / Delete / Merge DDL语句(数据定义语言) Create / Alter / Drop / Truncate DCL语句(数据控制语言) Grant / Revoke,SQL语句,建表(数据库)操作 显示表(数据库)操作 使用数据库操作 显示表结构操作 删除表(数据库)操作 更新表结构 插入记录操作 更改记录操作 删除记录操作 查

6、询记录操作 使用集函数 复制表,建表(数据库)操作,语法:create database 数据库名 实例:建立一个student库。 mysql create database student;,建表(数据库)操作,常见完整性约束: PRIMARY KEY 主码约束(主键) UNIQUE 唯一性约束 NOT NULL 非空值约束 AUTO_INCREMENT 用于整数列默认自增1 DEFAULT default_value 默认值约束 PRIMARY KEY 与UNIQUE 指定必须包含唯一值的索引,建表(数据库)操作,例:要建立一个学生情况表(student) CREATE TABLE st

7、udent: (st_class CHAR(8), st_no CHAR(10) NOT NULL, st_name CHAR(8) NOT NULL, st_sex CHAR(2), st_age SMALLINT, PRIMARY KEY (st_no);,显示表(数据库)操作,显示数据库操作 语法:show databases; 叙述:列出服务器主机上可用的数据库。 显示表操作 语法:show tables; 叙述:显示数据库中表的清单。,使用数据库操作,语法:use 数据库名 叙述:选择此数据库成为当前数据库(即不包含明确的数据库名的表引用中的缺省数据库)。如果数据库不存在或没有访问它

8、的权限,则USE语句将失败。,显示表结构操作,语法:describe 表名;desc 表名 叙述:用于显示表的创建结构。,删除表(数据库)操作,删除表操作 语法:drop table if exists tab_name ,tab_name. 删除数据库操作 语法:drop database if exists db_name,更新表结构,语法:alter table 表名 action;,说明:action 可以是如下语句: add 列名 (first | after 列名) 可以为表添加一列,如果没指定first或者after,则在列尾添 加一列,否则在指定列添加新列 add primar

9、y key (列名) 为表添加一个主键,如果主键已经存在,则出现错误 alter 列名 set default 默认值 可以更改指定列默认值 change (modify) 列名 (first | after) 可以更改列类型,如果原列的名字和新列的名字相同,则change Modify的作用相同 drop 列名 /可以删除一列 drop primary key /可以删除主键 drop index index_name; /可以删除索引 rename as 新表名 /可以将表名更改,插入记录操作,语法: insert into 表名(字段名,字段名, . ) values(字段值,字段值,.

10、); 叙述: 如果表名后面没写字段名,则默认是向所有的字段添加值字符串值应该用引号括起来 举例1:向people表中添加一条记录: insert into people(name,age) values(“zhangsan”,20); 举例2:向people表中添加三条记录: insert into people values (“zhangsan”,20), (“lisi”,10), (“wangwu”,40);,更改记录操作,语法: update 表名 set 列名=数据值 where子句; 叙述: where 子句是判断语句,用来设定条件,限制只更新匹配的行。 举例: 将people表中

11、的所有名称“JoHn“改为“Tom“: update people set name=“Tom“ where name=“JoHn “;,删除记录操作,语法:delete from 表名 where子句; 叙述:此语句删除表中的行,如果不带where子句,则删除整个表中的记录,但是表不被删除。 举例: 删除people表中的所有名字与record表中name相同的记录: delete from people where people.name = record.name; 说明: 表和字段的引用方式有两种:绝对引用和相对引用 绝对引用:数据库名.表名(.字段名) 相对引用:表名.(字段名),查

12、询记录操作,语法: select 字段名,字段名, . (*) from 表名 where 子句 group by子句having子句 order by子句 limit子句 desc(asc) group by子句是对匹配where子句的查询结果进行分组 having子句是对分组后的结果进行条件限制 order by子句是对查询结果结果进行排序,后面跟desc或asc。 limit子句是对查询的显示结果限制数目 desc是将最终结果进行降序排列,asc是将最终结果进行升序。,查询记录操作,举例1 :查询全体学生的学号与姓名。 select sno,sname from student; 举例2

13、 :查询全体学生的详细记录。 select sno,sname,ssex,sage,sdept from student; 或select * from student; 举例3 :查全体学生的姓名及其出生年份。 select sname,2004-sage from student; 举例4 :查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。 select sname,year of birth: ,2004-sage,islower(sdept) from student 举例5:查询选修了课程的学生学号(去掉重复的记录) select distinct sno from

14、 sc; 说明:使用distinct可以将查询结果中的重复记录只显示一次.,查询记录操作,使用列别名: select long_field_name_are_annoying as myfield from thizlinux 使用表别名: select myfield from long_table_name_are_my_table as thizlinux 查询所有年龄在20岁以下的学生姓名及其年龄。 select sname,sage from student where sage=20;,查询记录操作,在WHERE子句中使用谓词 : BETWEEN AND :在两数之间 NOT BE

15、TWEEN AND :不在两数之间 IN :是否在特定的集合里(枚 举) NOT IN :与上面相反 LIKE :是否匹配于一个模式 IS NULL(为空的) 或 IS NOT NULL(不为空的REGEXP : 检查一个值是否匹配一个常规表达式。,查询记录操作,查询年龄在2023岁(包括20岁和23岁)之间的学生的姓名、系别和年龄 。 select sname,sdept,sage from student where sage between 20 and 23; 查询年龄不在2023岁之间的学生姓名、系别和年龄。 Select sname,sdept,sage from student

16、where sage not between 20 and 23; 查询信息系(is)、数学系(ma)和计算机科学系(cs)学生的姓名和性别。 select sname,ssex from student where sdept in (is,ma,cs);,查询记录操作,查询学号为95001的学生的详细情况。 select * from student where sno like 95001; 等价于:select * from student where sno=95001; 查询所有姓刘学生的姓名、学号和性别。 select sname,ano,ssex form student wh

17、ere sname like 刘%; 某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。 Select sno,cno from sc where grade is null; 查所有有成绩的学生学号和课程号。 select sno,cno from sc where grade is not null; 查询计算机系年龄在20岁以下的学生姓名。 select sname from student where sdept=cs and sage20;,查询记录操作,查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别 s

18、elect sname,ssex from student where sdept in (IS,MA,CS); 可改写为: Select sname,ssex from student where sdept=IS or sdept=MA or sdept=CS; 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。 select sno,grade from sc where cno=3 orber by grade desc; 查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。 select * from student order by sde

19、pt,sage desc;,查询记录操作,连接查询: 同时涉及多个表的查询称为连接查询 用来连接两个表的条件称为连接条件 举例:select name ,id from people ,record where people.name = record.name 外连接 。 外连接与普通连接的区别 普通连接操作只输出满足连接条件的元组 外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出: 举例:select student.sno,sname,ssex,sage,sdept,cno,grade from student.sc where student.sno=sc.sno;

20、,查询记录操作,SQL提供的统计函数称为集函数. 主要的集函数: 记数函数: count(列名) 计算元素的个数 求和函数: sum(列名) 对某一列的值求和,但属性必须是整型 计算平均值:avg(列名) 对某一列的值计算平均值 求最大值: max(列名) 找出某一列的最大值 求最小值: min(列名) 找出某一列的最小值,查询学生总人数。 SELECT COUNT(*) FROM Student; 2:查询选修了课程的学生人数。 SELECT COUNT(DISTINCT Sno) FROM SC 说明:DISTINIC代表去除重复的值 3: 计算1号课程的学生平均成绩。 SELECT AVG(Grade) FROM SC WHERE Cno= 1 ;,复制表,复制表,复制表,可以通过在SELECT查询中指定字段来限制出现在附表中的字段,复制表结构,通过使用SELECT 语句创建已存在表的空副本,并且返回一个空结果集。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1