网络数据库,MySQL数据库管理系统 2_第1页
网络数据库,MySQL数据库管理系统 2_第2页
网络数据库,MySQL数据库管理系统 2_第3页
网络数据库,MySQL数据库管理系统 2_第4页
网络数据库,MySQL数据库管理系统 2_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章MySQL数据库管理系统主要内容:MySQL数据库基本知识数据库模型概念数据库服务器管理用户的方法MySQL数据库、数据表维护管理方法phpMyAdmin软件的使用方法3.1MySQL数据库管理系统概述3.1.1MySQL数据库的术语1.MySQL数据库管理系统的特点(1)采用客户机/服务器模式,支持多用户、多线程、互联网操作,可以实时处理和共享数据。(2)MySQL软件,由数据库管理员创建用户,包括设置用户名、密码、与授权。(3)数据类型丰富,字符、数值、日期、多媒体(4)占用资源少、运行效率高(5)MySQL数据库管理系统软件免费文件/服务器(File/Server)模式客户机/服务器(Client/Server)模式3.1.1MySQL数据库的术语2.MySQL操作模式(1)命令操作界面打开命令操作界面,单击“开始”–“运行”输入“mysql–uroot–p123456”,显示mysql>(2)图形操作界面打开浏览器IE在地址栏输入http://nbxp/phpmyadmin进入MySQL图形操作界面3.数据库服务器安装有数据库管理系统的计算机服务器。管理方式:支持客户机/服务器(C/S)主要职责:管理数据库用户、维护数据库和数据表文件4.数据库用户被授权允许使用数据库、数据表的人员。数据库管理员:id=root,pwd=123456职责,维护用户账号、维护数据库和数据表普通用户:由数据库管理员创建用户账号,并授权维护数据库,数据表。5.数据模型是计算机组织数据需要遵守的规范。层次型、网状型和关系型。一个关系对应一个二维的数据表(文件)。关系数据库则是管理数据表的文件。MySQL数据模型由数据库文件与数据表文件构成。数据库文件:用于管理数据表构成信息的文件,数据库文件名唯一(不重复)。数据表文件:用于管理数据记录的文件,数据表文件名唯一(不重复)。数据表由,数据表文件名+数据表结构+数据记录构成。关系数据库的基本概念表:表名、列名和数据行组成。列:也称作字段,域,属性。行:也称记录。值:表中行与列的交汇处,即存储的数据。表名与列名的命名规则:表名在数据库中唯一,列名在表中唯一。学生基本情况表上一张下一张表和表之间的关系一对多的关系:两个表之间的关系一对多学生基本情况表专业代码表上一张下一张表和表之间的关系一对一的关系:两个表之间的关系一对一。学生基本情况表学生成绩单表上一张下一张6.数据类型指数据分类类别:字符型(姓名,职称,地址)数值型(工资,成绩,数量)可以进行运算日期型(出生日期,毕业时间)逻辑型(只有两种状态,逻辑真和逻辑假)7.MySQL的数据存储结构MySQL数据库管理系统保存在“C:/AppServ/MySQL”系统数据库MySQL,用户创建的应用数据库bookstore保存在“C:/AppServ/MySQL/Data”3.1.2案例说明网络图书销售信息管理系统创建一个数据库,数据库文件名:bookstore在数据库中创建三张数据表,数据表文件名分别是book(图书情况表)、member(会员情况表)、sell(销售情况表)3.2网络数据库的数据模型3.2.1数据类型指数据分类类别和型式。在一次运算过程中运算对象的类型必须一致(相同)。常见的类型:字符型,字母、汉字、数字符号、特殊符号数值型,整数和小数日期时间型,具有特定格式的数据逻辑型(布尔型),逻辑真True,逻辑假False1.字符串类型的数据(1)char:定长字符串类型,范围0–255例:namechar(8),固定8个字节。name=“刘华”实际占用8字节“刘华____”(2)varchar:变长字符串类型,范围0–255例:namevarchar(8),不超过8个字节。name=“刘华”实际占用5字节“刘华_”(3)text:变长文本类型的字符数据范围0-65535(4)blob:变长(二进制形式)长文本数据范围0-655352.数值类型的数据(1)int:整型数据,范围0–4字节,-2147483648–+2147483647(2)float:浮点型数据,包括整数和小数3.日期时间类型数据按照特定的日期格式和时间格式表示数据(1)date:表示日期,格式yyyy-mm-dd(2)time:表示时间,格式hh:mm:ss(3)datetime:表示日期时间,格式yyyy-mm-sshh:mm:ss3.2网络数据库的数据模型3.2.2数据库是相关数据表的集合。数据库文件名唯一。3.2.3数据表是相关数据记录的集合。数据表文件名唯一。一个数据表:表文件名+数据表结构+数据记录。3.3MySQL服务器用户管理每一个使用MySQL数据库的用户必须拥有一个合法的账号(包括用户名,用户密码)和相应的权限。MySQL数据库管理员账号,用户名为root,用户密码为123456(在安装过程中设置的密码,可以随时修改)。普通用户的账号和权限必须由数据库管理员创建和授权。3.3.1登录MySQL服务器使用数据库管理员的账号登录,用户名root,用户密码123456。方法一,使用命令行方式登录单击“开始”–“所有程序”–“AppServ”–“MySQLcommandlineclient”输入密码123456。出现mysql>登录成功密码123456Mysql>提示符3.3.1登录MySQL服务器方法二使用“运行”登录MySQL服务器。单击“开始”–“运行”命令格式:mysql–u<用户名>-p<用户密码>用户名root用户密码123456MySQL命令格式命令关键词<选项>;分号表示命令结束并提交1)打开数据库Use<数据库名>;例:usemysql;打开mysql数据库2)增加新用户的账号到mysql数据库user表Insertinto数据表名(主机名,用户名,用户密码,权限1,权限2,…)values(主机名值,用户名值,用户密码值,权限1值,权限2值,…);3)激活数据Flushprivileges;3.3.2MySQL服务器的用户管理MySQL服务器中内置系统数据库,数据库名为mysql,数据库中内置数据表,数据表名为user。只能由数据库管理员(root,123456)对用户账号进行维护,增加新用户、修改用户密码、删除用户账号、用户账号授权。使用root、123456登录mysql数据库管理系统。进入mysql>提示符User数据表中保存所有授权用户(允许使用mysql数据库的用户)的用户名、用户密码以及用户权限表1/2。User数据表中保存所有授权用户(允许使用mysql数据库的用户)的用户名、用户密码以及用户权限表2/2。1.增加新的用户创建新的用户账号包括用户名、用户密码、用户权限。打开mysql数据库插入新的用户账号数据到user数据表激活新创建的用户账号命令格式:mysql>usemysql;mysql>insert

intomysql.user(主机名称,用户名称,用户密码,权限1,权限2,…)

values(host,user,password,select_priv,…);mysql>flush

privileges;增加用户例题bookuser,111111用户名bookuser,用户密码111111,拥有select,insert,update,delete,create,drop权限。mysql>usemysql;mysql>insert

intomysql.user(host,user,password,select_priv,insert_priv,update_priv,delete_privi,create_priv,drop_priv)values

(‘localhost’,’bookuser’,password(‘111111’),’y’,’y’,’y’,’y’,’y’,’y’);mysql>flush

privileges;增加用户例题booktest,333333用户名booktest,用户密码333333,拥有select,insert,update,delete,create,drop,index,alter权限。mysql>usemysql;mysql>insert

intomysql.user(host,user,password,select_priv,insert_priv,update_priv,delete_privi,create_priv,drop_priv,index_priv,alter_priv)values

(‘localhost’,’booktest’,password(‘333333’),’y’,’y’,’y’,’y’,’y’,’y’,’y’,’y’);mysql>flush

privileges;2.修改用户权限命令格式:update<表名>set[权限参数名称=权限值]where<条件>;mysql>usemysql;mysql>updatemysql.userset权限名1=权限值1,权限名2=权限值2where<条件>;mysql>flush

privileges;修改权限例题修改bookuser用户的index_priv和alter_priv为’y’mysql>usemysql;mysql>updatemysql.userset

index_priv=‘y’,alter_priv=‘y’whereuser=‘bookuser’;mysql>flush

privileges;修改用户密码命令格式:update<表名>

setpassword=password(新密码)where<条件>;mysql>usemysql;mysql>updatemysql.usersetpassword=password(新密码)where<条件>;mysql>flush

privileges;修改用户密码例题修改bookuser用户的密码111111为222222mysql>usemysql;mysql>updatemysql.usersetpassword=password(“222222”)

whereuser=“bookuser”;mysql>flush

privileges;3.删除用户账号命令格式:deletefrom<表名>where<条件>mysql>usemysql;mysql>delete

frommysql.userwhere<条件>;mysql>flush

privileges;删除用户账号例题删除booktest用户账号mysql>usemysql;mysql>delete

frommysql.userwhereuser=‘bookuser’;mysql>flush

privileges;3.4MySQL数据管理维护数据库:显示数据库,建立数据库,删除数据库,打开数据库。维护数据表:建立数据表,显示数据表文件名,显示数据表结构,修改数据表结构,删除数据表文件,更换数据表名。维护数据表的数据(记录):增加记录,删除记录,修改记录,选取记录3.4.1维护MySQL数据库1.显示数据库(MySQL数据库是系统数据库)显示当前服务器中所有的数据库。命令格式:showdatabases;是系统数据库3.4.1维护MySQL数据库2.建立数据库在当前服务器中创建一个新的数据库。命令格式:createdatabase<数据库文件名>;例题:创建一个叫dbtest的数据库。mysql>show

databases;查询存在的数据库mysql>create

databasedbtest;dbtest数据库的位置。C:/AppServ/MySQL/data/dbtestmysql>show

databases;查询存在的数据库3.4.1维护MySQL数据库3.删除数据库删除当前服务器中的一个数据库。命令格式:dropdatabase<数据库文件名>;例题:创建一个叫dbtest的数据库。mysql>show

databases;查询存在的数据库mysql>drop

databasedbtest;mysql>show

databases;查询存在的数据库3.4.1维护MySQL数据库4.打开数据库打开当前服务器中的一个数据库。命令格式:use<数据库文件名>;例题:打开bookstore数据库。mysql>usebookstore;打开bookstore数据库3.4.2维护MySQL数据表数据表=数据表名、数据表结构、数据记录。指定数据表名定义数据表结构(字段名、字段类型、宽度、辅助项)数据表维护工作:1.创建一个新的数据表、2.显示存在的数据表、3.显示一个数据表的结构、4.修改数据表结构、5.删除数据表、6.更换数据表名。3.4.2维护MySQL数据表1.建立新的数据表,定义表文件名、字段名、字段类型、字段宽度、设置字段属性。命令格式:createtable<数据表名>(<字段1定义>,<字段2定义>,…<字段n定义>);字段i定义内容:字段名,类型,宽度,非空修饰符,default修饰符,auto_increment修饰符。

create字段约束

NULL和NOTNULL修饰符:NULL允许该字段为空值,NOTNULL该字段不允许为空值。DEFAULT修饰符:在插入记录时自动插入一个默认值。AUTO_INCREMENT修饰符:只适用于INT类型字段,是步长为一的自动增量修饰。例题:建立数据表(members)数据表名:members字段名字段类型宽度说明身份证号 char18字符非NULL会员姓名char10字符非NULL会员密码char6字符非NULL联系电话varchar20字符非NULL注册时间datetime日期时间非NULL创建数据表方法一:命令行方法单击“开始”–“所有程序”–“AppServ”–“MySQLCommandLineClient”mysql>usebookstore;mysql>create

tablemembers(->身份证号char(18),->会员密码char(6),->会员姓名char(10),->联系电话varchar(20),->注册时间datetime

->);逗号不能省绿色括号一对分号提交命令此处没有逗号创建数据表方法二:批处理方法将创建数据表的命令写入一个文本文件,扩展名为sql。创建批处理文件,用记事本编辑一个mysql批处理文件。文件名为:mysql_create_members.sql文件位置:c:\appserv\mysql\data文件内容(蓝色部分):usebookstore;droptableifexistsmembers;createtablemembers(

身份证号char(18)notnull,

会员密码char(6)notnull,

会员姓名char(10)notnull,

联系电话varchar(20)notnull,

注册时间datetime);运行批处理文件,在mysql命令行窗口输入按以下格式输入命令sourcemysql>source

c:\appserv\mysql\data\mysql_create_members.sql再编辑一个批处理文件c:\AppServ\MySQL\data\bookstore_create_tables.sql该文件创建book、member、sell三个数据表,数据表结构见p33-p34分号结束命令豆号不能省略如果members数据表存在就将它删除打开bookstore数据库创建数据表修饰符的使用创建testmbs数据表使用修饰符。createtestmbs(idint(6)notnullauto_increment,姓名char(8)notnull,性别char(2)notnulldefault‘男’,出生日期datenotnulldefault‘1998-05-16’

);索引索引的作用:提高搜索速度,减少查询时间。创建索引(键)方式:方式一createtable创建索引createtable<数据表>(字段1定义,…字段n定义,index[索引名称](字段1[,字段2,…]),

unique[索引名称](字段1[,字段2,…]));方式二create[unique]index添加索引createindex[索引名]on数据表(字段1[,字段2]);createuniqueindex[索引名]on数据表(字段1[,字段2]);=unique选项不重createtable方式索引例题createtablestudent(学号char(8)notnull,姓名char(12)notnull,性别char(2)default‘男’,出生年月datenotnulldefault‘1978-01-08’,专业char(6)notnulldefault‘100001’,indexstudsp(专业),uniquestudid(学号));createindex方式索引例题createtablestudent(学号char(8)notnull,姓名char(12)notnull,性别char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,专业char(6)notnulldefault‘100001’);createindexstudsponstudent(专业);create

uniqueindexstudidonstudent(学号);主键主键字段值(键值)非空且不重,可以多字段组合主键,一个数据表中主键只能有一个。创建主键方式:方式一createtable创建索引createtable<数据表>(字段1定义,…字段n定义,primarykey[索引名称](字段1[,字段2,…]));添加主键方式:方式二altertable添加索引altertable数据表addprimarykey[索引名](字段1[,字段2]);createtable方式创建主键例题createtablestudent(学号char(8)notnull,姓名char(12)notnull,性别char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,专业char(6)notnulldefault‘100001’,

primarykeystudxh(学号));altertable方式添加主键例题createtablestudent(学号char(8)notnull,姓名char(12)notnull,性别char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,专业char(6)notnulldefault‘100001’);altertablestudentaddprimarykeystudxh(学号);外键通过外键在两个数据表中建立关联,可以是一对一关联,也可以是一对多关联。该关联在关联表中的数据构成参照完整性。定义外键格式:1.使用index索引项名(索引字段)创建索引。2.使用foreignkey(索引字段)references主键数据表名(主键索引字段)。createtable方式创建外键例题createtabletitle(

职称代码char(4)notnullprimarykey, 职称名称varchar(20)notnull )type=innodb;createtablemembers( 身份证号char(18) notnull, 性别char(2) notnull, 出生日期date notnull, 工作单位varchar(24) notnull, 单位地址varchar(24) notnull, 邮政编码char(6) notnull,

职称代码char(4) notnull,

primarykey(身份证号),

index(职称代码),

foreignkey(职称代码)referencestitle(职称代码))type=innodb;altertable方式添加外键例题createtabletitle(

职称代码char(4)notnullprimarykey, 职称名称varchar(20)notnull )type=innodb;createtablemembers( 身份证号char(18) notnull, 性别char(2) notnull, 出生日期date notnull, 工作单位varchar(24) notnull, 单位地址varchar(24) notnull, 邮政编码char(6) notnull,

职称代码char(4) notnull,

primarykey(身份证号),

index(职称代码))

type=innodb;altertable数据表名add

foreignkey(职称代码)referencestitle(职称代码)ondeletecascadeonupdatecascade;删除索引,主键,外键删除索引命令格式:dropindex索引名称on数据表名;删除主键命令格式:altertable数据表名dropprimary

key;删除外键命令格式:altertable数据表名dropforeignkey外键标识;一般情况通过删除表实现删除外键(外键标识可以使用“showcreatetable数据表名”得到,信息中的constraint选项值)删除索引、主键、外键例题createtabletitle(

职称代码char(4)notnullprimarykey, 职称名称varchar(20)notnull )type=innodb;createtablemembers( 身份证号char(18) notnull, 性别char(2) notnull, 出生日期date notnull, 工作单位varchar(24) notnull, 单位地址varchar(24) notnull, 邮政编码char(6) notnull,

职称代码char(4) notnull,

primarykey(身份证号),

index(职称代码),

foreignkey(职称代码)referencestitle(职称代码))type=innodb;删除索引,主键,外键例题删除索引:dropindex索引名称on数据表名;dropindex

职称代码

on

members;删除索引,主键,外键例题删除主键:altertable数据表名dropprimary

key;altertable

members

dropprimarykey;删除索引,主键,外键例题删除外键:altertable数据表名dropforeignkey外键标识;altertable

members

dropforeignkey

members_ibfk_1;外键标识使用

showcreatetable

members;的constraint得到members_ibfk_1外键参照完整性外键表外键与参照表主键建立数据关联,该关联构成表间约束(参照完整性)。外键定义中的ondeletecascade约束、onupdatecascade约束。ondeletecascade约束关联表同步删除。onupdatecascade约束关联表同步更新。外键关联例题createtablezctb(zccodechar(4)primarykey,zcnamechar(10))type=innodb;createtablezginfo(zgidchar(8)primarykey,zgnamechar(10),zgzcchar(4),index(zgzc),foreignkey(zgzc)referenceszctb(zccode)ondeletecascadeonupdate

cascade)type=innodb;insertintozctb(zccode,zcname)values(‘0001’,’工程师’);insertintozginfo(zgid,zgname,zgzc)values(‘10000001’,’张华‘,’0001’);selectupdatezctbsetzccode=‘0002’wherezccode=‘0001’;selectdeletefromzctbwherezccode=‘0002’;select3.4.2维护MySQL数据表2.显示数据表名。命令格式:showtables;3.4.2维护MySQL数据表2.例题:显示bookstore数据库中的数据表。mysql>show

tables;3.4.2维护MySQL数据表3.显示数据表结构。命令格式:describe<数据表文件名>;3.4.2维护MySQL数据表3.例题:显示members数据表的结构。mysql>describemembers;3.4.2维护MySQL数据表4.修改数据表结构。修改、增加、删除字段名称、字段类型⑴修改字段命令格式:altertable数据表名change原字段名新字段名

;①修改字段名例题:altertablememberschange性别会员性别char(2);②修改字段类型例题:altertablememberschange工作单位工作单位char(20);3.4.2维护MySQL数据表4.修改数据表结构。修改、增加、删除字段名称、字段类型⑵增加字段命令格式:altertable数据表名add字段名

字段类型;①增加字段例题:altertablemembersadd单位电话char(12);3.4.2维护MySQL数据表4.修改数据表结构。修改、增加、删除字段名称、字段类型⑶删除字段命令格式:altertable数据表名drop字段名;①删除字段例题:altertablemembersdrop单位电话;3.4.2维护MySQL数据表5.删除数据表。命令格式:droptable[ifexists]数据表名;①直接删除数据表例题:droptablemembers;删除members数据表②如果数据表存在就删除数据表:droptable

ifexistsmembers;如果members数据表存在就删除members数据表3.4.2维护MySQL数据表6.更换数据表名。命令格式:renametable数据表名to新数据表名;①更换数据表名例题:renametablememberstomembersx;将数据表名为members的更换为membersx3.4.3维护数据表记录1.增加记录命令格式:insertinto数据表名(字段名1,…字段名n)

values(数值1,…数值n);字段i顺序任意,字段i与数值i一一对应。①增加记录例题:insertintomembersx(身份证号,性别,出生日期,工作单位)

values(,’男’,’1978-01-03’,’中国人民大学’);注意:增加记录时主键字段或UNIQUE索引字段不能重复外键字段值在关联表中主键值必须已经存在3.4.3维护数据表记录2.删除记录命令格式1:删除数据表中全部记录。deletefrom数据表名;①删除数据表中全部记录例题:deletefrommembersx;命令格式2:删除数据表中符合条件的记录。deletefrom数据表名where条件表达式②删除数据表中符合条件的记录例题:deletefrommemberswhere

身份证号=3.4.3维护数据表记录3.修改记录命令格式1:修改数据表中全部记录指定字段的值update<数据表名>set<字段名1=数值1>,…[字段名n=数值n]字段i顺序任意,字段i与数值i一一对应,同时修改多个字段时set只使用一个。①修改全部记录指定字段值例题:updatememberset会员密码=‘999999’;3.4.3维护数据表记录3.修改记录命令格式2:修改数据表中符合条件的记录指定字段的值update<数据表名>set<字段名1=数值1>,…[字段名n=数值n]where<条件表达式>①修改身份证号为的会员密码为‘888888’,会员姓名为‘赵华’例题:updatememberset会员密码=‘888888’,会员姓名=‘赵华’where身份证号=;3.4.4选取数据表记录1.选取表达式命令格式命令格式1:选取显示表达式表结果select<表达式表>表达式表:获取显示表达式结果。包括算术表达式,比较表达式,逻辑表达式。⑴算术表达式:运算对象+算术运算符+运算对象算术运算符:+,-,*,/例题:select18+25*4;一个表达式slect18+25*4,100/4+5;两个表达式3.4.4选取数据表记录1.选取表达式命令格式⑵比较表达式:运算对象+算术运算符+运算对象比较运算符:大于>,大于等于>=,小于<,小于等于<=,等于=,不等于<>,介于范围内between,存在于in,类似于like,binary全等选项注:比较结果为一个逻辑值1表示表达式成立,逻辑值0表示表达式不成立。>,<,=,>=,<=,<>例题:select10>8,10<8,10=8,10<>8;10013.4.4选取数据表记录⑵比较表达式:binary选项例题:select‘A’=‘a’,binary‘A’=‘a’;10between例题:起始值and终止值select10between0and100,10betwenn50and100;10in例题:判断存在的集合select‘g’in(‘r’,’G’,’b’),binary‘g’in(‘r’,’g’,’b’),’a’in(‘r’,’g’,’b’);1003.4.4选取数据表记录⑵比较表达式:[not]like例题:通配符%任意符号select‘张华’like‘张%’,‘张华’like‘%张%’,’张华’like‘%张’;110通配符_1个字符select‘张华’like‘张_’,‘张华’like‘张__’,’张华’like‘_张’;

100not选项是类似结果取反select‘张华’notlike‘张%’;3.4.4选取数据表记录⑶逻辑表达式:运算对象+逻辑运算符+运算对象逻辑运算符:and与(并且),or或(或者),not非(取反)逻辑真为1,逻辑假为0select1and1,1and0,1or1,0or0,not0,not1;1010103.4.4选取数据表记录1.选取数据表数据表达式结果命令格式命令格式2:选取数据表中指定字段,指定记录的结果,并对输出结果进行重组。select<字段名表>

[from<数据表名表>where<条件表达式>[orderby字段名[asc|desc]][groupby<字段名>]]字段名表:显示获取结果from数据表名表:数据源where条件表达式:获取数据条件orderby字段名:按字段进行升序asc或降序desc排序groupby字段名:按字段进行分组3.4.4选取数据表记录⑴选取输出一个数据表的所有记录的所有字段内容。命令格式:select*from<数据表名>*代表所有字段例题:select*frommembers;显示members数据表的所有记录的所有字段。3.4.4选取数据表记录⑵选取输出一个数据表的所有记录的部分字段内容。命令格式:select<字段名表达式>from<数据表名>例题:select身份证号,性别,出生日期,frommembers;显示members数据表的所有记录的身份证号、性别、出生日期字段。3.4.4选取数据表记录⑶选取输出一个数据表的所有记录的部分字段内容,字段名称使用自定义名称,数据表名使用自定义数据表别名。命令格式:select<字段名as自定义名称>from<数据表名as自定义数据表别名>例题:select身份证号asVIP身份证号,性别as会员性别,出生日期frommembersasmbs;显示members数据表的所有记录的身份证号(VIP身份证号)、性别(会员性别)、出生日期字段。3.4.4选取数据表记录⑷选取输出一个数据表的符合条件记录的所有字段内容。命令格式:select*from<数据表名>where<条件表达式>例题:select*frommemberswhere性别=‘女’;显示members数据表的所有性别为’女’的记录的所有字段。3.4.4选取数据表记录⑸选取输出一个数据表的符合条件记录的部分字段内容。命令格式:select<字段名表>from<数据表名>where<条件表达式>例题:select身份证号,性别,出生日期,职称代码frommemberswhere性别=‘女’;显示members数据表的所有性别为’女’的记录的身份证号、性别、出生日期、职称代码字段。3.4.4选取数据表记录⑹选取输出一个数据表的所有记录的部分字段和表达式内容,输出记录按指定字段排序。命令格式:select<字段名表,表达式表>from<数据表名>orderby<排序字段>asc|desc例题:select身份证号,性别,出生日期,出生日期+1frommembersorderby出生日期asc;显示members数据表的所有记录的身份证号、性别、出生日期字段、出生日期+1表达式内容,输出结果按出生日期字段进行升序排序。3.4.4选取数据表记录⑹选取输出一个数据表的所有记录,部分字段和表达式内容,输出记录按指定多个字段排序。命令格式:select<字段名表,表达式表>from<数据表名>orderby<排序字段1>asc|desc,

<排序字段2>asc|desc例题:select身份证号,性别,year(curdate())-year(出生日期)as‘年龄’frommembersorderby性别desc,年龄asc;显示members数据表的所有记录的身份证号、性别、年龄,输出结果按性别降序、年龄升序进行排序。3.4.4选取数据表记录⑹选取输出一个数据表的部分记录的部分字段和表达式内容,输出记录按指定字段排序。例题:select身份证号,性别,year(curdate())-year(出生日期)as‘年龄’frommemberswhere性别=‘女’orderby年龄desc;curdate()函数:获取当前日期(结果为日期型数据)year(日期型数据):获取日期型数据中的年份。结果是一个数值。显示members数据表的所有性别为女的记录的身份证号、性别、年龄,输出结果按年龄表达式进行降序排序。3.4.4选取数据表记录⑺选取输出一个数据表的全部记录,部分字段和表达式内容,输出结果按指定字段分组,可以对结果集进行升序asc或降序desc排序。命令格式:select<字段名表,表达式表>from<数据表名>groupby<分组字段>[asc|desc];例题:select身份证号,性别frommembersgroupby性别asc;显示members数据表的所有记录的身份证号、性别,输出结果按性别分组,并按性别进行升序排序。3.4.4选取数据表记录⑻选取输出一个数据表的全部记录按照指定字段进行分组,并计算每一个分组的记录数count()。命令格式:select<字段名表,count()表达式>from<数据表名>groupby<分组字段>;例题:select身份证号,性别,count(身份证号)frommembersgroupby性别;显示members数据表的男女的人数。3.4.4选取数据表记录⑼选取输出一个数据表的全部记录按照指定字段进行分组,并计算每一个分组的记录数count()。例题:distinct选项select身份证号,性别,count(性别)frommembersgroupby性别;显示members数据表的男女的人数。select身份证号,性别,count(distinct性别)frommembersgroupby性别;3.4.4选取数据表记录⑽选取输出一个数据表的符合条件的记录,和部分字段,按照指定字段进行分组,计算每一个分组中最大的出生日期max()。例题:select身份证号,性别,职称代码,max(出生日期)frommemberswhere性别=‘女’groupby职称代码;显示members数据表的性别为女的每一个职称的最大出生日期。3.4.4选取数据表记录⑾选取输出一个数据表的部分字段,按照指定字段进行分组,并选取符合条件的分组,计算每一个分组中最大的出生日期max()。例题:select身份证号,性别,职称代码,max(出生日期)frommembersgroupby职称代码having性别=‘女’;显示members数据表性别为女的每一个职称组中最大出生日期。3.4.4选取数据表记录⑿选取输出一个数据表的符合条件记录的部分字段或表达式,使用比较条件表达式。例题:>选项select身份证号,性别,出生日期,职称代码frommemberswhere出生日期>’1980-01-01’;显示members数据表的1980-01-01日期以后出生的人员信息。3.4.4选取数据表记录⒀选取输出一个数据表的符合条件记录的部分字段或表达式,使用比较条件表达式。例题:like%、_选项select身份证号,会员姓名,会员密码frommemberwhere会员姓名like‘张%’;显示member数据表姓张的人员信息。select身份证号,会员姓名,会员密码frommemberwhere会员姓名like‘张_’;显示member数据表姓名2个字姓张的人员信息。3.4.4选取数据表记录⒂选取输出一个数据表的符合条件(两个以上条件)记录的部分字段或表达式,使用比较条件表达式。例题:like%选项select身份证号,会员姓名,会员密码frommemberwhere会员密码>’555555’and会员姓名not

like‘张%’;显示member数据表不姓张并且会员密码>’555555’的人员信息。select身份证号,会员姓名,会员密码frommemberwhere会员密码>’555555’or会员姓名not

like‘张%’;显示member数据表不姓张或者会员密码>’555555’的人员信息。3.4.4选取数据表记录⒁选取输出一个数据表的符合条件(两个以上条件)记录的部分字段或表达式,使用比较条件表达式。例题:like_选项select身份证号,会员姓名,会员密码frommemberwhere会员密码>’555555’and会员姓名not

like‘张_’;显示member数据表不姓张并且会员密码>’555555’的人员信息。select身份证号,会员姓名,会员密码frommemberwhere会员密码>’555555’or会员姓名not

like‘张_’;显示member数据表不姓张或者会员密码>’555555’的人员信息。3.4.4选取数据表记录⒃选取输出来自于两个以上的数据表的数据集合,定义输出条件和输出的字段或表达式。输出的字段必须指明所属数据表,同时还要指明数据表之间的关联。使用数据表别名(asmb)。例题:

select身份证号,会员姓名,会员密码frommember;显示member数据表的身份证号、会员姓名、会员密码。select身份证号,性别,出生日期frommembers;显示members数据表的身份证号,性别,出生日期。selectmb.身份证号,会员姓名,会员密码,性别,出生日期frommemberasmb,memberswheremb.身份证号=members.身份证号;3.4.4选取数据表记录⒃选取输出来自于五个数据表的数据集合。输出同名字段必须指明所属数据表,必须用and分隔定义表间关联。例题:输出订单号(sell)、书名(book)、单价(book)、身份证号(member)、会员姓名(member)、性别(members)、职称名称(title)。

select订单号,书名,单价,member.身份证号,会员姓名,性别,职称名称frombook,member,title,members,sellwheresell.身份证号=member.身份证号andsell.图书编号=book.图书编号andmembers.身份证号=member.身份证号andmembers.职称代码=title.职称代码;3.4.4选取数据表记录⒃选取输出来自于五个数据表的数据集合。输出同名字段必须指明所属数据表,必须用and分隔定义表间关联。例题:输出订单号(sell)、书名(book)、单价(book)、身份证号(member)、会员姓名(member)、性别(members)、职称名称(title)。选取条件,张宇购买的图书清单。

select订单号,书名,单价,member.身份证号,会员姓名,性别,职称名称frombook,member,title,members,sellwhere

(sell.身份证号=member.身份证号andsell.图书编号=book.图书编号andmembers.身份证号=member.身份证号andmembers.职称代码=title.职称代码)

and会员姓名=‘张宇’;3.4.4选取数据表记录⒃选取输出来自于五个数据表的数据集合。输出同名字段必须指明所属数据表,必须用and分隔定义表间关联。例题:输出订单号(sell)、书名(book)、单价(book)、身份证号(member)、会员姓名(member)、性别(members)、职称名称(title)。选取条件,张宇、赵成新、李来群三人购买的图书清单。

select订单号,书名,单价,member.身份证号,会员姓名,性别,职称名称frombook,member,title,members,sellwhere

(sell.身份证号=member.身份证号andsell.图书编号=book.图书编号andmembers.身份证号=member.身份证号andmembers.职称代码=title.职称代码)

and会员姓名in(‘张宇’,’赵成新’,’李来群’);3.4.4选取数据表记录⒃选取输出来自于五个数据表的数据集合。输出同名字段必须指明所属数据表,必须用and分隔定义表间关联。例题:输出订单号(sell)、书名(book)、单价(book)、身份证号(member)、会员姓名(member)、性别(members)、职称名称(title)。按会员姓名排序的图书清单。

selectmember.身份证号,会员姓名,订单号,书名,单价,性别,职称名称frombook,member,title,members,sellwhere

(sell.身份证号=member.身份证号andsell.图书编号=book.图书编号andmembers.身份证号=member.身份证号andmembers.职称代码=title.职称代码)orderby

会员姓名;3.4.4选取数据表记录⒃选取输出来自于五个数据表的数据集合。输出同名字段必须指明所属数据表。必须用and分隔定义表间关联。例题:输出身份证号(member)、会员姓名(member)、订单号(sell)、书名(book)、单价(book)、订购册数(sell)、总金额=单价(book)*订购册数(sell)、性别(members)、职称名称(title)。按会员姓名排序的图书清单。

selectmember.身份证号,会员姓名,订单号,书名,单价,订购册数,单价*订购册数as总金额,性别,职称名称frombook,member,title,members,sellwhere

(sell.身份证号=member.身份证号andsell.图书编号=book.图书编号andmembers.身份证号=member.身份证号andmembers.职称代码=title.职称代码)orderby

会员姓名;3.4.4选取数据表记录⒃选取输出来自于五个数据表的数据集合。输出同名字段必须指明所属数据表,必须用and分隔定义表间关联。例题:输出身份证号(member)、会员姓名(member)、订单号(sell)、书名(book)、单价(book)、订购册数(sell)、总金额=单价(book)*订购册数(sell)、性别(members)、职称名称(title)。按总金额排序的图书清单。

selectmember.身份证号,会员姓名,订单号,书名,单价,订购册数,单价*订购册数as总金额frommember,book,title,members,sellwhere

(members.身份证号=member.身份证号andsell.身份证号=member.身份证号andsell.图书编号=book.图书编号andmembers.职称代码=title.职称代码)orderby总金额;3.4.4选取数据表记录⒃选取输出来自于五个数据表的数据集合。输出同名字段必须指明所属数据表,必须用and分隔定义表间关联。例题:性别(members),sum(订购册数(sell)),sum(单价(book)*订购册数(sell)),sum(单价*订购册数)/sum(订购册数)as平均价格,按姓别分组并计算男女性购书的册数、金额、平均价格。

select性别,sum(订购册数),sum(单价*订购册数),sum(单价*订购册数)/sum(订购册数)as平均价格frommember,book,members,sellwhere

(members.身份证号=member.身份证号andsell.身份证号=member.身份证号

andsell.图书编号=book.图书编号)groupby性别;3.4.4选取数据表记录⒄使用子查询作为查询条件,获取符合条件的记录和指定部分字段作为输出结果。命令格式:select<字段表达式>from<数据表名表>where<使用select子查询选取条件表达式>orderby<排序字段表达式>[asc|desc]groupby<分组字段值>例题:身份证号,性别,出生日期,输出条件是出生日期最大(年龄最小,使用max()函数)。

select性别,性别,出生日期frommemberswhere出生日期=(selectmax(出生日期)frommembersgroupby性别having性别=‘女’);3.4.4选取数据表记录⒅使用子查询作为查询条件,获取符合条件的记录和指定部分字段作为输出结果。命令格式:select<字段表达式>from<数据表名表>where<使用select选取的条件表达式>orderby<排序字段表达式>[asc|desc]groupby<分组字段值>例题:选取身份证号,性别,职称代码,输出条件是正高级职称(职称代码最右边第一位数是1)使用right函数。

select身份证号,性别,职称代码frommemberswhere职称代码in(select职称代码frommemberswhere

right(职称代码,1)=‘1’);3.4.4选取数据表记录⒅使用子查询作为查询条件,获取符合条件的记录和指定部分字段作为输出结果。命令格式:例题:选取身份证号,性别,职称代码,输出条件是职称为医生系列(职称代码最左边一位数是3)使用left函数。

select身份证号,性别,职称代码frommemberswhere职称代码in(select职称代码frommemberswhere

left(职称代码,1)=‘3’);3.4.4选取数据表记录⒅使用子查询作为查询条件,获取符合条件的记录和指定部分字段作为输出结果。命令格式:例题:选取会员姓名,性别,职称名称,输出条件是职称为医生系列或者是正高级职称(职称代码最左边第一位数是3)使用left函数和right

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论