收藏 分销(赏)

mysql教程13376PPT课件.ppt

上传人:精**** 文档编号:9382888 上传时间:2025-03-24 格式:PPT 页数:149 大小:1.22MB 下载积分:20 金币
下载 相关 举报
mysql教程13376PPT课件.ppt_第1页
第1页 / 共149页
mysql教程13376PPT课件.ppt_第2页
第2页 / 共149页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MySQL,数据库,MySQL,数据库,数据库概述,数据库基础知识,SQL,语言,MySQL,数据库基础操作,第一部分:数据库概述,数据库基本概念,什么是,MySQL,数据库,MySQL,基本操作,数据库,基本概念,数据,(Data),数据库,(Database),数据库管理系统,(DBMS),数据库系统,(DBS),数据,数据,(,Data,),的定义:,对客观事物的符号表示,,如图形符号、数字、字母等,,数据是数据库中存储的基本对象,。,在日常生活中,人们直接用语言来描述事物;在计算机中,为了存储和处理这些事物,就要将事物的特征,抽象,出来组成一个记录来描述。,。,数据的种类,文字、图形、图象、声音,数据的特点,数据与其语义是不可分的,数据举例,学生档案中的学生记录,(崔文华,男,,1984,,上海,计算机系,,1990,),数据的形式不能完全表达其内容,数据的解释,语义:学生姓名、性别、出生年月、籍贯、所在系别、入学时间,解释:崔文华是个大学生,,1984,年出生,上海人,,2003,年考入计算机系,数据库,数据库,(Database,简称,DB),的定义,:,“按照数据结构来组织、存储和管理数据的仓库”,J.Martin,给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务,数据库的发展史,人工管理阶段,人力手工整理存储数据,文件系统阶段,使用磁盘文件来存储数据,数据库系统阶段,关系型数据库,高级数据库阶段,“,关系,-,对象,”,型数据库,数据库的类型,纯文本数据库:,纯文本数据库是只用空格符、制表符和换行符来分割信息的文本文件。适用于小型应用,对于大中型应用来说它存在诸多限制:,只能顺序访问,不能进行随机访问。,查找数据和数据关系或多用户同时访问进行写操作时非常困难。,关系数据库:,由于纯文本数据库存在诸多局限,所以人们开始研究数据模型,设计各种类型的使用方便的数据库。在数据库的发展史上,最具影响的数据库模型有:,层次模型、网状模型和关系模型,。其中,,关系模型,是目前应用最广泛和最有发展前途的一种数据模型,其数据结构简单,当前主流的数据库系统几乎都采用关系模型。,数据库,的优点,数据按一定的数据模型组织、描述和储存,可为各种用户共享,冗余度较小,,节省存储空间,易扩展,,编写有关数据库应用程序,数据库管理系统,数据库管理系统,(Database Management System),是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称,DBMS,。,关系型数据库管理系统称为,RDBMS,,,R,指,Relation,DBMS,的作用,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。,DBMS,的主要功能,For,程序员,数据定义功能:,提供数据定义语言,(DDL),定义数据库中的数据对象,数据操纵功能,:,提供数据操纵语言,(DML),操纵数据实现对数据库的基本操作,(,查询、插入、删除和修改,),DBMS,的主要功能,For,数据库管理员,数据库的运行管理,保证数据的安全性、完整性、,多用户对数据的并发使用,发生故障后的系统恢复,数据库的建立和维护功能,(,实用程序,),数据库数据批量装载,数据库转储,介质故障恢复,数据库的重组织,性能监视等,时下流行的,DBMS,Oracle,应用广泛、功能强大,分布式数据库系统,“,关系,-,对象,”型数据库,MySQL,快捷、可靠,开源、免费、与,PHP,组成经典的,LAMP,组合,SQL Server,针对不同用户群体的五个特殊的版本,易用性好,DB2,应用于大型应用系统,具有较好的可伸缩性,数据库系统,数据库系统(,Database System,,简称,DBS,)是一个实际可运行的存储、维护和应用系统提供数据的软件系统,数据库系统构成,DBMS,DB,应用软件,数据库管理员,用户,数据库系统的使用,数据库服务器,响应和提供数据,应用程序,数据库,操作和查询,MySQL,数据库,什么是,MySQL,MySQL,是一个小型关系型数据库管理系统,开发者为瑞典,MySQL AB,公司。目前,MySQL,被广泛地应用在,Internet,上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型 网站为了降低网站总体拥有成本而选择了,MySQL,作为网站数据库。,MySQl,特征,性能快捷、优化,SQL,语言,容易使用,多线程和可靠性,多用户支持,可移植性和开放源代码,遵循国际标准和国际化支持,为多种编程语言提供,API,MySQL5,特性,子查询,视图,存储过程,触发器,事务处理,热备份,二进制,Bit,类型,等等,MySQL,不足,不能直接处理,XML,数据,一些功能上支持的不够完善和成熟,不能提供任何,OLAP,(实时分析系统)功能,等等,.,MySQL,应用,MySQL,的官方网站引述,MySQL,是,“,世界上最受欢迎的开放源代码数据库,”,。这不是狂妄之语,数字可以证明它:目前,有超过,1000,万份的,MySQL,被安装用于支付高负荷的网站和其他关键商业应用,包括像阿尔卡特、爱立信、朗讯、亚马逊、,Google,、纽约证券交易所、迪斯尼、,Yahoo,、美国宇航局等这样的产业领袖。在下述网页你还能查看到,MySQL,和它竞争对手进行了短兵相接的比较。,-h host_name-u user_name,p,password,h,:当连接,MySQL,服务器不在同台主机时,填写主机名或,IP,地址,u,:登录,MySQL,的用户名,p,:登录,MySQL,的密码,注意,:,密码如果写在命令行的时候一定不能有空格,。,如果使用的系统为,linux,并且登陆用户名字与,MySQL,的用户名相同即可不用,输入用户名密码,,linux,默认是以,root,登陆,,,windows,默认用户是,ODBC,mysql,程序常用命令,选定默认数据库:,use dbname;,显示所有数据库:,show databases;,显示默认数据库中所有表:,show tables;,放弃正在输入的命令:,c,显示命令清单:,h,退出,mysql,程序:,q,查看,MySQL,服务器状态信息:,s,处理SQL文件,mysql,命令,处理存放在文件里的,SQL,命令,格式:,mysql option dbname file.sql,mysql u root p-default-character-set=latin1 dbname bak.sql,mysqldump u root p tmpdb backuptmp.sql,备份出来的是一个文本文件,默认为,utf-8,字符集,如果想使用另外一种字符集,必须使用,-default-character-set=gbk,选项来设置,附加工具,MySQL CC OS X,的版本现在也有,DBTOOL,专业管理器,来自,.br,是一个用于管理,MySQL,数据库、表和索引的图形客户,其输入来自其他,RDBMS,的数据,该管理器提供一个用于查询和报告设计的接口。,总结,MySQL,是一种功能非常强大的关系型客户服务器数据库系统,它的安全性和稳定性足以满足许多应用程序的要求,而且有着非常高的性价比。,第二部分:数据库基础知识,数据库基础知识概述,SQL,概述,SQL,语言,数据库基础知识,数据库,由一批,数据,构成的有序集合,这些数据被分门别类地存放在一些结构化的,数据表,(,table,)里,而数据表之间又往往存在交叉引用的,关系,,这种关系使数据库又被称为,关系型数据库,档案柜,=,数据库,抽屉,=,表,文件,=,记录,数据库,数 据 表,存储过程,视 图,.,订单,客户,产品,产品数据库,表,数据表,行,(,记录,),列,(,字段,),数据在表中的存放,编号,姓名,年龄,民族,部门,1,王涛,33,汉族,人事管理部,2,李梅,27,汉族,人事管理部,1,1,27,李梅,2,1,1,33,王涛,1,部门编码,民族编码,年龄,姓名,编号,回族,2,汉族,1,民族,民族编码,市场营销部,2,人事管理部,1,部门,部门编码,存在冗余,为减少数据查找的麻烦,允许数据有一定的冗余,35,数据存储的完整性,Roll Number,Name,Address,BookTaken,12,Alicia Ruth,12,Temple Street,AC091,14,Jason Darren,123,Sunset Blvd.,AC043,15,Mary Beth,32,Golden Avenue,AC021,12,Alicia Ruth,12,Temple Street,AC043,12,Alicia Ruth,12,Tmple Street,AC011,15,Mary Beth,33,Golden Avenue,AC011,不同的地址,!,存在不正确、不准确的数据,数据库“失去了完整性”,姓名,数据的完整性,数据完整性,+,=,可靠性,准确性,完整性分类,数据实体完整性,字段完整性,引用完整性,自定义完整性,数据实体完整性,河南新乡,赵可以,0010016,河南新乡,张丽鹃,0010015,江西南昌,雷铜,0010014,湖南新田,吴兰,0010013,山东定陶,李山,0010012,.,地址,姓名,学号,江西南昌,雷铜,0010014,约束方法:唯一约束、主键约束、标识列,字段完整性,河南新乡,赵可以,0010016,河南新乡,张丽鹃,0010015,江西南昌,雷铜,0010014,湖南新田,吴兰,0010013,山东定陶,李山,0010012,.,地址,姓名,学号,湖北江门,李亮,8700000000,约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束,引用完整性,河南新乡,赵可以,0010016,河南新乡,张丽鹃,0010015,江西南昌,雷铜,0010014,湖南新田,吴兰,0010013,山东定陶,李山,0010012,地址,姓名,学号,98,0010021,数学,约束方法:外键约束,科目,学号,分数,数学,0010012,88,数学,0010013,74,语文,0010012,67,语文,0010013,81,数学,0010016,98,自定义完整性,AV121322,乔峰,CV0016,AV372133,玄痛,CV0015,AV378291,沙悟净,AV0014,AV378290,猪悟能,AV0013,AV378289,孙悟空,AV0012,.,会员证,用户姓名,用户编号,约束方法:规则、存储过程、触发器,帐号,姓名,信用,.,00192,孙悟空,7,00288,猪悟能,6,12333,段誉,8,90111,虚竹,40,93000,岳不群,-10,触发器:检查信用值,完整性包括,输入的类型是否正确?,年龄必须是数字,输入的格式是否正确?,身份证号码必须是,18,位,是否在允许的范围内?,性别只能是”男”或者”女”,是否存在重复输入?,学员信息输入了两次,是否符合其他特定要求?,信誉值大于,5,的用户才能够加入会员列表,列值要求(约束),整行要求(约束),创建数据库表完毕!,输入数据项,验证主键、主外键关系、检查约束,SQL概述,什么是,SQL,?,SQL,是,Structured Query Language(,结构化查询语言,),的缩写。,SQL,是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出,“,做什么,”,的命令,,“,怎么做,”,是不用使用者考虑的。,SQL,语法组成,DML,(,Data Manipulation Language,数据操作语言),查询、插入、删除和修改数据库中的数据;,SELECT,、,INSERT,、,UPDATE,、,DELETE,等;,DCL,(,Data Control Language,数据控制语言),用来控制存取许可、存取权限等;,GRANT,、,REVOKE,等;,DDL,(,Data Definition Language,数据定义语言),用来建立数据库、数据库对象和定义其列,CREATE TABLE,、,DROP TABLE,、,ALTER TABLE,等,功能函数,日期函数、数学函数、字符函数、系统函数等,MySQL,中使用,SQL,语言几点说明,属于一个SQL语句,使用分号(;)结尾,否则mysql认为语句没有输入完。,箭头(-)代表SQL语句没有输入完,取消SQL语句使用(c),SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分),使用函数时,函数名和后面的括号之间不能有空格,MySQL,数据类型,数据类型种类,数值列类型,字符串列类型,日期和时间列类型,数据类型种类,数值型,分为整型和浮点型,整型:,可以由十进制和十六进制表示,整数由数字序列组成,如:,1,,,100,。,由十六进制表示方法:,0 x,且后面加,1,9,和,A,F,的任意数字或字母,,并且,0 x,中的,X,不能大写。,浮点型,:,浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。,字符串,:,由单引号或者双引号括起来的字符或者数字。,如:,”,abc,”,abc10,字符串中要用转义字符才能表示的特殊符号,日期和时间值,是存储如,“,2005-1-1,”,或者,“,12:00:00,”,这样的数值的值。在,MySQL,中日期是按,”,年,-,月,-,日,”,的顺序。,NULL,值,是一种无类型的值,表示,“,空,什么也没有,”,。,数值列类型,MySQL,为除了,NULL,值外的所有通用数据类型提供了列类型。列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。,数值列类型,所有数值列类型的类型名及其说明和所占的字节数见下表:,数值列类型包括整型和浮点型,说明:,TINYINT,SAMLLINT,MEDIUMINT,INT,BIGINT,每个数据类型的取值范围不同,故分别可以表示不同的数值范围。在定义整型列时,可以指定可选的显示尺寸,M(,见上表,),M,是从,1,到,255,的值,它表示显示列中值的字符数。,例如:,INT(4),意思是指定了一个具有,4,个字符显示宽度的,INT,列。如果定义了一个没有明确宽度的整数列,则会分配缺省的宽度,缺省值为每种类型的最长值的长度。,对于每种浮点型,可指定一个最大的显示尺寸,M,和小数位数,D,,,M,的取值应该是,0-30,,但,小于,M-2,。,M,和,D,对于,DECIMAL,是必须的。,AUTO_INCREMENT,自动标识列,,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从,1,开始,每行增加,1,,在插入,NULL,到一个,AUTO_INCREMENT,列时,,MySQL,会插入一个比该列中当前最大值大,1,的值,,一个表中最多能有一个有此属性的列,。,对于想使用此属性的列应该定义为,NOT NULL,并定义为,PRIMARY KEY,或者定义为,UNIQUE,键。,举例:,create table t(i,d,int auto_increment not null primary key);,UNSIGNED,无符号,,此属性禁用负值,将数值的取值范围从零开始,。,举例:,create table t(num tinyint,num2 tinyint unsigned);,数值列的完整性约束,NULL,和,NOT NULL,默认,为,NULL,,即插入值时没有在此字段插入值,时自动填,NULL,,,如果指定了,NOT NULL,,则必须在插入值时在此字段添入值,不允许插入,NULL,值。,DEFAULT,可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加,DEFAULT,后指定,值。,ZEROFILL,前导零填充数值类型值以达到列的显示宽度。,举例:,create table test2(num1 int default 1,,,num2 int zerofill,);,字符串列类型,所有字符串列类型及其说明和所占的字节数见下表:,说明:,对于可变长的字符串类型,其长度取决于实际存放在列中的值的长度。此,长度在上表中用,L,来表示,。附加若干额外字节,用来记录字符串长度,也就是说总长度等于,L,n,(,n,1,、,2,、,3,、,4,、,8,),CHAR,和,VARCHAR,类型,CHAR,类型和,VARCHAR,类型长度范围都是,0255,之间的大小。他们之间的差别在于,MySQL,处理存储的方式:,CHAR,把这个大小视为值的,准确大小,(用空格填补比较短的值)。,VARCHAR,类型把它视为最大值并且只使用了存储字符串实际上,需要的字节数,(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为,VARCHAR,类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。,BLOB,和,TEXT,类型,BLOB,是,二进制大对象,,,如果想存储二进制数,BLOB,将是最佳选择,,而,TEXT,与之相同,只是,BOLOB,按照二进制编码排序(区分大小写),,,TEXT,按照字符文本模式排序(不区分大小写),。,ENUM,和,SET,类型,是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。,(,不推荐使用,),字符串列类型的,可选,属性,BINARY,使用此属性可以使列值作为二进制串处理,即,看成,BLOB,类型。,NULL,和,NOT NULL,同数值型功能相同,DEFAULT,同数值型功能相同,日期和时间列类型,所有时间和日期列类型的类型名及其说明和所占的字节数见下表:,说明:,每个时间和日期列类型都有一个零值,,当插入非法数值时就用零值来添加,表示日期时必须先按:年,月,日的顺序给出,DATE,TIME,DATETIME,分别是存储日期,时间与日期和时间的组合,其格式为,“,YYYY-MM-DD,”,,,“,hh:mm:ss,”,和,“,YYYY-MM-DD hh:mm:ss,”,,对于,DATETIME,类型,日期和时间部分都需要,TIMESTAMP,时间戳列类型以,YYYYMMDDhhmmss,的格式来表示值,其取值范围是,19700101000000,到,2037,年的某个时间,主要用于记录更改或创建某个记录,总结:常用数据类型,分类,备注和说明,数据类型,说明,二进制数据类型,存储非子符和文本的数据,BLOB,可用来存储图像,文本数据类型,字符数据包括任意字母、符号或数字字符的组合,char,固定长度的非,Unicode,字符数据,varchar,可变长度非,Unicode,数据,text,存储长文本信息,日期和时间,日期和时间在单引号内输入,time,时间,date,日期,datetime,日期和时间,数,值型,数据,该数据仅包含数字,包括正数、负数以及,浮点数,int,smallint,整数,float,double,浮点数,货币数据类型,用于,财务数据,decimal,定点数,Bit,数据类型,表示是,/,否的数据,bit,存储布尔数据类型,创建数据库,建立数据库操作:,语法:,create database,数据库名,叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。,例:建立一个,student,库。,mysql create database student;,建立表操作,:,语法,:,create table,表名(,列名,1,列类型,列名,2,列类型,.);,叙 述:在当前数据库下新创建一个数据表。,列类型:表示该列的数据类型。,例:,建立一个表,school,其由两列组成,第一列属性为非空,并做为主键,并自增,create table school(,school_id int(10)not null auto_increment primary key,school_name varchar(20),),;,创建表,常见完整性约束:,PRIMARY KEY,主码约束,(,主键,),UNIQUE,唯一性约束,NOT NULL,非空值约束,AUTO_INCREMENT,用于整数列默认自增,1,UNSIGNED,无符号整数,DEFAULT default_value,默认值约束,DEFAULT cur_timestamp,创建新记录时默认保存当前时间(仅适用,timestamp,数据列),ON UPDATE cur_timestamp,修改记录时默认保存当前时间(仅适用,timestamp,数据列),CHARACTER SET name,指定字符集(仅适用字符串),数据表类型,在创建一个新的,MySQL,数据表时,可以为它设置一个类型,其中最重要的,3,种类型是,MyISAM,:成熟、稳定和易于管理,InnoDB,:加入事物、数据行级锁定机制、外键约束条件、崩溃恢复等新功能,HEAP,:只存在于内存中,可做临时表,create table tmp()ENGINE=MyISAM,主键与外键,数据表之间的关联,/,引用关系是依靠具体的主键(,primary key,)和外键(,foreign key,)建立起来的。,主键:帮助,MySQL,以最快的速度把一条特点的数据记录的位置确定下来。,主键必须是唯一的,主键应该是紧凑的,因此整数类型比较适合,外键:引用另外一个数据表的某条记录。,外键列类型尽可能与主键列类型保持一致,外键列应该加上,NOT NULL,主键,create table student(,sid int not null auto_,increment,name varchar(20)not null,primary key(sid),);,外键(,自动检查外键是否匹配,仅适用,InnoDB,),create table score(,cid int not null auto_increment primary key,score int,sid int,foreign key(sid)references student(sid),);,主表和从表,1,、,当主表中没有,对应,的记录时,,不能,将记录添加到,子,表,成绩表中不能出现在学员信息表中不存在的学号;,2、,不能,更改主表中的值,而,导致,子,表中的记录孤立,把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;,3、,子表,存在与,主表对应的,记录,,不能从,主表中删除,该行,不能,把,有成绩的,学员删除了,4,、,删除主表前,先删子表,先删学员成绩表、后删除学员信息表,思考,电话号码一般使用什么数据类型存储,?,性别一般使用什么数据类型存储,?,年龄信息一般使用什么数据类型存储,?,照片信息一般使用什么数据类型存储,?,薪水一般使用什么数据类型存储,?,思考,学员姓名允许为空吗,?,家庭地址允许为空吗,?,电子邮件信息允许为空吗,?,考试成绩允许为空吗,?,思考,在主键列输入的数值,允许为空吗,?,不允许,一个表可以有多个主键吗,?,不可以,在一个学校数据库中,如果一个学校内允许重名的学员,但是一个班级内不允许学员重名,可以组合班级和姓名两个字段一起来作为主键吗?,选择主键的原则,最少性,尽量选择单个键作为主键,稳定性,尽量选择数值更新少的列作为主键,思考,标识列允许为字符数据类型吗?,INT,如果标识列,A,的初始值为,1,,则输入三行数据以后,再删除两行,下次再输入数据行的时候,标识值从多少开始?四,例:建立一个学生,信息,表,(student),定义列,sno,学号,类型为,5,位定长字符串,,非空,,主键,定义列,sname,姓名,类型为,8,位定长字符串,非空,定义列,ssex,性别,,取值,1,或,0,定义列,sage,年龄,类型为短整型,定义列,s,dept,系名,,数据类型为,20,位,变,长字符串,例:建立一个课程信息表(,course,),定义列,courseid,课程号,类型,为,整型,,非空,,自动增长,主键,定义列,cname,课程名,类型为,16,位变长字符串,非空,例:建立一个学生考试成绩信息表,(sc),定义列,grade,成绩,类型为整型,要求,把表字段补充完整,可以通过学号查看学生相关课程的成绩,显示表结构操作,语法:,describe,表名;,desc,表名;,叙述:用于显示表的创建结构。,删除数据库或表操作,删除表操作,语法:,drop table if exists tab_name,tab_name.,叙述,:,从数据库中删除给定的表。如果给出,if exists,子句,则删除不存在的表不会出错。,删除数据库操作,语法:,drop database if exists db_name,叙述:,删除给定的数据库。在删除一个数据库后,它就永远没有了,因此要特别小心。如果给出,if exists,子句,则删除不存在的数据库不会出错。,更改表结构操作,语法:,alter table,表名,action;,说明,:,action,可以是如下语句:,add,列名 建表语句,first|after,列名,可以为表添加一列,如果没指定,first,或者,after,,则在列尾添加一列,否则在指定列添加新列,add primary key(,列名,),为表添加一个主键,如果主键已经存在,则出现错误,add foreign key(,列名,)references,表名,(,列名,),为表添加一个,外,键,alter,列名,set default,默认值,可以更改指定列默认值,change,旧列名 新列名,first|after,列名,可以更改列类型和列名称,如果原列的名字和新列的名字相同,modify,列名,first|after,列名,和,change,的作用相同,drop,列名,/,可以删除一列,drop primary key,/,可以删除主键,engine,类型名,/,可以改变表类型,rename as,新表名,/,可以将表名更改,举例,1,:,向,people,表中添加字段,address2,类型为,varchar,最大长度为,100,alter table people add address2 varchar(100);,举例,2,:,将,people,表中的,name,列默认值改为,100:,alter table people alter name set default 100;,举例,3,:,向,student,表增加“入学时间”列,其数据类型为日期型。,alter table student add scome date,;,注:,无论基本表中原来是否已有数据,新增加的列一律为空值。,举例,4,:,将年龄的数据类型改为半字长整数。,alter table student modify sage smallint,;,注:修改原有的列定义有可能会破坏已有数据,MySQL,运算符,算数运算符,比较运算符,逻辑运算符,位运算符,算数运算符,用字符串表示的数字在任何可能便于计算的地方都被自动地转换为,数字,。当执行转换时,,MySQL,遵循两个基本规则:,如果第一位是数字的字符串被用于一个算数运算中,那么它被转换为这个数字的值。,如果一个包含字符和数字混合的字符串不能被正确的转换为数字,那么它被转换成,0,。,字符串自动转换数字,比较运算符,比较运算符允许我们对表达式的左边和右边进行比较。一个比较运算符的结果总是,1,(真),,0,(假),或是为,NULL,(不能确定)。,比较运算符可以用于比较数字和字符串。数字作为浮点值比较,而,字符串以不区分大小写的方式进行比较,(除非使用特殊的,BINARY,二进制关键字),对于运算符,,如果表达式两边不相等返回真值,相等返回假值。还可以比较字符串,BETWEEN,运算符,用于检验一个值(或者一个求值表达式)是否存在一个指定的范围内:,运算符用于检验一个值(或者一个求值表达式)是否包含在一个指定的值集合中。,可以使用,IS NULL,或者,IS NOT NULL,运算符来测定是否为空。,可以使用特殊的,运算符,,,MySQL,称为,”,NULL,安全的等于,”,运算符。这意味着即使当包含在比较运算符中的表达式含有一个,NULL,值时,,MySQL,也会为比较运算符返回一个真值或假值。,如果想执行通配符数据搜索,应该使用,LIKE,运算符,。它通过在表达式中允许使用专门的通配字符,可以找出与指定搜索字符串全部或部分匹配的记录。,默认情况下,比较是不区分大小写的方式执行的。然而,以前我们注意到,可以,添加,BINARY,关键字,让,MySQL,执行区分大小写的比较。,MySQL,数据库中的通配符,“,%,”,(,百分号,),代表任意长度(长度可以为,0,)的字符串,举例,:,a%b,表示以,a,开头,以,b,结尾的任意长度的字符串。如,acb,,,addgb,,,ab,等都满足该匹配串,“,_,”,(,下横线,),代表任意单个字符,举例,:,a_b,表示以,a,开头,以,b,结尾的长度为,3,的任意字符串。如,acb,,,afb,等都满足该匹配串,REGEXP,运算符,允许我们执行更复杂的字符串比较运算,在这里使用,UNIX,正则表达式。,逻辑运算符,位运算符,如下表所示:,“,”,表示按位取反。,“,”,表示异或。,插入记录操作,语法:,叙述:,如果表名后面没写字段名,则默认是向所有的字段添加值,另外字符串值应该用,或“”,引号括起来,举例,1,:,向,people,表中添加一条记录:,insert into people(name,age)values(“zhangsan”,20);,INSERT,INTO,列名,VALUES,插入案例,创建一张学生信息表,往表中插入数据,create table students(,scode int not null auto_increment,sname varchar(20)not null,saddress varchar(20)default,未知,sgrade int,semail varchar(20),ssex bit,primary key(scode),);,插入数据行,1,注意事项,1:,每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将按照整行的完整性的要求来检验;,INSERT INTO Students(SName,SAddress,SGrade,SEmail,SSEX),VALUES(,小明,),插入数据行,2,注意事项,2:,每个数据值的数据类型、精度和小数位数必须与相应的列匹配,;,INSERT INTO Students(SName,SAddress,SGrade,SEmail,SSEX),VALUES(,张青裁,上海松江,ZQC,ZQCS,男,),插入数据行3,注意事项,4:,如果在设计表的时候就指定了某列不允许为空,则必须插入数据,;,INSERT INTO Students(SAddress,SGrade,SEmail,SSEX),VALUES(,上海松江,6,ZQCS,0),插入数据行4,注意事项,6:,具有缺省值的列,,可以使用DEFAULT(缺省)关键字来代替插入的数值,INSERT INTO Students(SName,SAddress,SGrade,SEmail,SSEX),VALUES(,张青裁,DEFAULT,6,ZQCS,0),插入多行数据,INSERT STUDENTS(SName,SGrade,SSex),VALUES(,测试女生,1,75,0),(,测试女生,2,77,0),(,测试女生,3,83,0),(,测试男生,1,81,1),(,测试女生,4,90,0),(,测试男生,2,94,1),(,测试女生,5,51,0),(,测试男生,3,53,1);,INSERT INTO,(,列名,),VALUES(,),(,),(,),插入多行数据,INSERT INTO,TongXunLu,(,姓名,地址,电子邮件,),SELECT,SName,SAddress,SEmail,FROM,Students,INSERT INTO,(,列名,),SELECT,FROM,学生、课程、成绩插入数据,学生信息,95001,洛燕妮,女,20,信息系,95002,欧阳炎,男,19,计算机系,95003,何东升,男,21,美术系,95004,刘晨,男,18,计算机系,95005,沙明华,女,21,美术系,95006,欧阳宝宝,男,19,美术系,课程信息,1,JAVA,2,C,3,.NET,成绩信息,95001,1,98 95002,1,50 95004,1,70,95003,4,95 95005,4,40 95006,4,77,95001,2,80 95002,3,58 95006,2,70,更改记录操作,语法:,叙述:,where,子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带,where,子句,则更新所有行数据。,举例:,将,student,表中的所有,学生,名称,为,Alex,的,改为,Tom:,update student set sname=Tom where sname=Alex;,UPDATE,SET,WHERE,更新数据行,UPDATE Student SET SSEX=0,UPDATE Student,SET Sdept=,家政系,WHERE Sdept=,刺绣系,UPDATE Sc,SET Grade=Grade+5,WHERE Grade=95,删除记录操作,语法:,叙述:此语句删除表中的行,如果不带,where,子句,则删除整个表中的记录,但是表不被删除。,举例:,删除,student,表中的所有,年龄小于,18,岁的,记录:,delete from student where sage18;,DELETE FROM,WHERE,补充说明,删除学生编号为,95005,的学生信息包括成绩信息,delete from student,sc using student,sc,where student.s,no,=sc.studentid and student.sno=95005;,说明:,表和字段的引用方式有两种:绝对引用和相对引用,绝对引用:数据库名,.,表名,(.,字段名,),相对引用:表名,.(,字段名,),删除数据行,河南新乡,赵可以,0010016,河南新乡,张丽鹃,0010015,江西南昌,雷铜,0010014,湖南新田,吴兰,0010013,山东定陶,李山,0010012,.,地址,姓名,学号,98,0010016,数学,81,0010013,语文,67,0010012,语文,74,0010013,数学,88,0010012,数学,.,分数,学号,科目,DELETE FROM,学员信息表,WHERE,学号,=,0010012,什么是查询?,Application Logic,客户程序,查询请求,查询结果集,SQL SERVER,A B C D E F G,SELECT*FROM SALES,查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来,怎么查的?,学员编号,学员姓名,地址,所在班级,.,001,张明全,湖南长沙,S201,002,李菲,湖北宜昌,S202,003,于寄谦,甘肃天水,S204,004,刘国正,山东荷泽,S201,005,周接轮,台湾新竹,S204,006,巩小妹,香港龙湾,S203
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服