第六章MYSQL数据库.ppt

上传人:sccc 文档编号:5667374 上传时间:2023-08-07 格式:PPT 页数:50 大小:787.51KB
返回 下载 相关 举报
第六章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 Management System,简称DB

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

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

4、ARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。,日期和时间类型,MySQL运算符,算数运算符比较运算符逻辑运算符位运算符通配符,算数运算符,比较运算符,逻辑运算符,位运算符,通配符,SQL语句,SQL语言的分类SQL语句,SQL被称为结构化查询语言(Structured Query Language)SQL 是操作和检索关系型数据库的标准语言,使用Sql语句,程序员和数据库管理员可以完成如下的任务改变数据库的结构更改系统的安全设置增

5、加用户对数据库或表的许可权限在数据库中检索需要的信息对数据库的信息进行更新,SQL语言的分类,DML语句(数据操作语言)Insert/Update/Delete/MergeDDL语句(数据定义语言)Create/Alter/Drop/TruncateDCL语句(数据控制语言)Grant/Revoke,SQL语句,建表(数据库)操作显示表(数据库)操作使用数据库操作显示表结构操作删除表(数据库)操作更新表结构插入记录操作更改记录操作删除记录操作查询记录操作使用集函数复制表,建表(数据库)操作,语法:create database 数据库名实例:建立一个student库。mysql create

6、database student;,建表(数据库)操作,常见完整性约束:PRIMARY KEY 主码约束(主键)UNIQUE唯一性约束NOT NULL非空值约束AUTO_INCREMENT用于整数列默认自增1DEFAULT default_value默认值约束PRIMARY KEY 与UNIQUE 指定必须包含唯一值的索引,建表(数据库)操作,例:要建立一个学生情况表(student)CREATE TABLE student:(st_class CHAR(8),st_no CHAR(10)NOT NULL,st_name CHAR(8)NOT NULL,st_sex CHAR(2),st_ag

7、e SMALLINT,PRIMARY KEY(st_no);,显示表(数据库)操作,显示数据库操作语法:show databases;叙述:列出服务器主机上可用的数据库。显示表操作语法:show tables;叙述:显示数据库中表的清单。,使用数据库操作,语法:use 数据库名叙述:选择此数据库成为当前数据库(即不包含明确的数据库名的表引用中的缺省数据库)。如果数据库不存在或没有访问它的权限,则USE语句将失败。,显示表结构操作,语法:describe 表名;desc 表名叙述:用于显示表的创建结构。,删除表(数据库)操作,删除表操作语法:drop table if exists tab_na

8、me,tab_name.删除数据库操作语法:drop database if exists db_name,更新表结构,语法:alter table 表名 action;,说明:action 可以是如下语句:add 列名(first|after 列名)可以为表添加一列,如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列add primary key(列名)为表添加一个主键,如果主键已经存在,则出现错误alter 列名 set default 默认值可以更改指定列默认值change(modify)列名(first|after)可以更改列类型,如果原列的名字和新列的名字相同

9、,则changeModify的作用相同drop 列名/可以删除一列drop primary key/可以删除主键drop index index_name;/可以删除索引rename as 新表名/可以将表名更改,插入记录操作,语法:insert into 表名(字段名,字段名,.)values(字段值,字段值,.);叙述:如果表名后面没写字段名,则默认是向所有的字段添加值字符串值应该用引号括起来举例1:向people表中添加一条记录:insert into people(name,age)values(“zhangsan”,20);举例2:向people表中添加三条记录:insert int

10、o people values(“zhangsan”,20),(“lisi”,10),(“wangwu”,40);,更改记录操作,语法:update 表名 set 列名=数据值 where子句;叙述:where 子句是判断语句,用来设定条件,限制只更新匹配的行。举例:将people表中的所有名称JoHn改为Tom:update people set name=Tom where name=JoHn;,删除记录操作,语法:delete from 表名 where子句;叙述:此语句删除表中的行,如果不带where子句,则删除整个表中的记录,但是表不被删除。举例:删除people表中的所有名字与re

11、cord表中name相同的记录:delete from people where people.name=record.name;说明:表和字段的引用方式有两种:绝对引用和相对引用绝对引用:数据库名.表名(.字段名)相对引用:表名.(字段名),查询记录操作,语法:select 字段名,字段名,.(*)from 表名 where 子句 group by子句having子句 order by子句 limit子句 desc(asc)group by子句是对匹配where子句的查询结果进行分组having子句是对分组后的结果进行条件限制order by子句是对查询结果结果进行排序,后面跟desc或as

12、c。limit子句是对查询的显示结果限制数目desc是将最终结果进行降序排列,asc是将最终结果进行升序。,查询记录操作,举例1:查询全体学生的学号与姓名。select sno,sname from student;举例2:查询全体学生的详细记录。select sno,sname,ssex,sage,sdept from student;或select*from student;举例3:查全体学生的姓名及其出生年份。select sname,2004-sage from student;举例4:查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。select sname,year

13、 of birth:,2004-sage,islower(sdept)from student举例5:查询选修了课程的学生学号(去掉重复的记录)select distinct sno from sc;说明:使用distinct可以将查询结果中的重复记录只显示一次.,查询记录操作,使用列别名:select long_field_name_are_annoying as myfield from thizlinux使用表别名:select myfield from long_table_name_are_my_table as thizlinux查询所有年龄在20岁以下的学生姓名及其年龄。sele

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

15、0 and 23;查询年龄不在2023岁之间的学生姓名、系别和年龄。Select sname,sdept,sage from student 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=9

16、5001;查询所有姓刘学生的姓名、学号和性别。select sname,ano,ssex form student where 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

17、 sage20;,查询记录操作,查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别select 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;查询全体学生情况,查询结果按所在系的系号升序排列,同一系

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

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

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号