mysql教程PPT (无水印)

上传人:xia****ai 文档编号:243310764 上传时间:2024-09-20 格式:PPT 页数:146 大小:2.38MB
返回 下载 相关 举报
mysql教程PPT (无水印)_第1页
第1页 / 共146页
mysql教程PPT (无水印)_第2页
第2页 / 共146页
mysql教程PPT (无水印)_第3页
第3页 / 共146页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MYSQL,实用技术,张鹏亮,MySQL,的安装,详见安装指南,MySQL,基本操作,PHP+MySQL+Linux,目前已逐渐成为小型,web,服务器的一种经典组合。,在,Windows,环境下构筑和调试,MySQL,数据库是许多网站研发者的一种最佳选择。,启动,mysql,,有如下方法:,方法一:使用,winmysqladmin,1),、进入,d:,mysql,bin,目录,运行,winmysqladmin.exe,,在屏幕右下角的任务栏内会有一个带红色的图符。,2),、鼠标左键点击该图符,选择“,show me”,,出现“,WinMySQLAdmin”,操作界面;首次运行时会中间会出现一个对话框需求输入并设置你的用户名和口令。,3),、选择“,My.INI setup”,4),、在“,mysqld file”,中选择“,mysqld-opt”(win9x),或“,mysqld-nt”(winNT),5),、选择“,Pick-up or Edit my.ini values”,能在右边窗口内对你的,my.ini,文件进行编辑,6),、选择“,Save Modification”,保存你的,my.ini,文件,7),、如果你想快速使用,winmysqladmin(,开机时自动运行),选择“,Create ShortCut on Start,Menu”,8),、测试:,进入,DOS,界面;,在,d:,mysql,bin,目录下运行,mysql,,进入,mysql,交互操作界面,输入,show databases,并回车,屏幕显示出当前已有的两个数据库,mysql,和,test,方法二:不使用,winmysqladmin,1),、在,DOS,窗口下,进入,d:/mysql/bin,目录,2),、,win9X,下,),运行,:mysqld,在,NT,下运行,:,mysqld-nt -standalone,3),、此后,,mysql,在后台运行,4),、测试,mysql:,(在,d:/mysql/bin,目录下),a),、,mysqlshow,正常时显示已有的两个数据库,mysql,和,test,b),、,mysqlshow,-u root,mysql,正常时显示数据库,mysql,里的五个表:,columns_priv,db,host,tables_priv,user,c),、,mysqladmin,version status proc,显示版本号、状态、进程信息等,d),、,mysql,test,进入,mysql,操作界面,当前数据库为,test,5),、,mysql,关闭方法:,mysqladmin,-u root shutdown,4,、至此,,MySQL,已成功安装,接着能熟悉,MySQL,的常用命令并创建自己的数据库了。,上篇讲了怎么安装并测试,MySQL,,环境建好后就能继续我们的学习了。本篇主要熟悉一写,常用命令。,1,、启动,MySQL,服务器,实际上上篇已讲到怎么启动,MySQL,。两种方法:,一是用,winmysqladmin,,如果机器启动时已自动运行,则可直接进入下一步操作。,二是在,DOS,方式下运行,d:mysqlbinmysqld,2,、进入,mysql,交互操作界面,在,DOS,方式下,运行:,d:mysqlbinmysql,出现,:,mysql,的提示符,此时已进入,mysql,的交互操作方式。,如果出现,ERROR 2003: Cant connect to,MySQL,server on ,localhost, (10061)“,,,说明你的,MySQL,还没有启动。,3,、退出,MySQL,操作界面,在,mysql,提示符下输入,quit,能随时退出交互操作界面:,Generated by,Foxit,PDF Creator ,Foxit,Software, For evaluation only.,mysql, quit,Bye,你也能用,control-D,退出。,mysql,命令,mysql,命令,mysql h192.168.4.28 -uroot,p,password,h,:当连接,MySQL,服务器不在同台主机时,填写主机名或,IP,地址,u,:登录,MySQL,的用户名,p,:登录,MySQL,的密码,注意,:,密码如果写在命令行的时候一定不能有空格,。,如果使用的系统为,linux,并且登陆用户名字与,MySQL,的用户名相同即可不用,输入用户名密码,,linux,默认是以,root,登陆,,,windows,默认用户是,ODBC,更改密码:,在,MySql,安装目录下:,mysqlbin,下输入如下命令:,Mysqladmin uroot p,旧密码,password,新密码,注意:结尾无分号,新建用户,Grant,操作权限 (,select,insert,update,delete,或者,all,),on,数据库名,.* to,用户名,访问地址,identified by “,密码”,;,Flush privileges;,刷新系统权限表,删除用户,Delete from user where user=“test2” and host=“localhost”;,修改指定用户名密码:,Update mysql.user set password=password(,新密码,) where user=“test2” and host=“localhost”;,Drop USER,用户名;,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,部门,部门编码,存在冗余,为减少数据查找的麻烦,允许数据有一定的冗余,数据存储的完整性,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,约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束,引用完整性,科目,学号,分数,数学,0010012,88,数学,0010013,74,语文,0010012,67,语文,0010013,81,数学,0010016,98,河南新乡,赵可以,0010016,河南新乡,张丽鹃,0010015,江西南昌,雷铜,0010014,湖南新田,吴兰,0010013,山东定陶,李山,0010012,地址,姓名,学号,98,0010021,数学,约束方法:外键约束,自定义完整性,帐号,姓名,信用,.,00192,孙悟空,7,00288,猪悟能,6,12333,段誉,8,90111,虚竹,40,93000,岳不群,-10,AV121322,乔峰,CV0016,AV372133,玄痛,CV0015,AV378291,沙悟净,AV0014,AV378290,猪悟能,AV0013,AV378289,孙悟空,AV0012,.,会员证,用户姓名,用户编号,约束方法:规则、存储过程、触发器,触发器:检查信用值,完整性包括,输入的类型是否正确?,年龄必须是数字,输入的格式是否正确?,身份证号码必须是,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,。,由十六进制表示方法:,0x,且后面加,1,9,和,A,F,的任意数字或字母,,并且,0x,中的,X,不能大写。,浮点型,:,浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。,字符串,:,由单引号或者双引号括起来的字符或者数字。,如:,”,abc,”,abc10,字符串中要用转义字符才能表示的特殊符号,日期和时间值,是存储如,“,2005 -1-1,”,或者,“,12:00:00,”,这样的数值的值。在,MySQL,中日期是按,”,年,-,月,-,日,”,的顺序。,NULL,值,是一种无类型的值,表示,“,空,什么也没有,”,。,数值列类型,MySQL,为除了,NULL,值外的所有通用数据类型提供了列类型。列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。,数值列类型,所有数值列类型的类型名及其说明和所占的字节数见下表:,数值列类型包括整型和浮点型,说明:,TINYINT, SAMLLINT, MEDIUMINT, INT, BIGINT,每个数据类型的取值范围不同,故分别可以表示不同的数值范围。在定义整型列时,可以指定可选的显示尺寸,M(,见上表,),M,是从,1,到,255,的值,它表示显示列中值的字符数。,尝试,输入以下语句,观察结果,Create table data1(TIN TINYINT,SMALL SMALLINT);,Describe data1;,观察结构,Create table data2(TIN TINYINT(1),SMALL SMALLINT(2);,Describe data2;,观察结构,Insert into data2 values(1,1);,Insert into data2 values(128,1);,Insert into data2 values(127,1);,Insert into data2 values(127,32768);,Insert into data2 values(127,32767);,例如:,INT(4),意思是指定了一个具有,4,个字符显示宽度的,INT,列。如果定义了一个没有明确宽度的整数列,则会分配缺省的宽度,缺省值为每种类型的最长值的长度。,对于每种浮点型,可指定一个最大的显示尺寸,M,和小数位数,D,,,M,的取值应该是,0-30,。,正数位最大为,M-D-1,,,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;,mysql,数据库备份及恢复命令,mysqldump,source,的用法,还原一个数据库,:,mysql -h localhost -u root -p123456,数据库名,数据库所在路径(,d:,数据库,.sql,),备份,MySQL,数据库的命令,mysqldump -hhostname -uusername -ppassword databasename backupfile.sql,备份,MySQL,数据库为带删除表的格式,备份,MySQL,数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。,mysqldump -add-drop-table -uusername -ppassword databasename backupfile.sql,直接将,MySQL,数据库压缩备份,mysqldump -hhostname -uusername -ppassword databasename | gzip backupfile.sql.gz,备份,MySQL,数据库某个,(,些,),表,mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 backupfile.sql,同时备份多个,MySQL,数据库,mysqldump -hhostname -uusername -ppassword databases databasename1 databasename2 databasename3 multibackupfile.sql,仅仅备份数据库结构,mysqldump no-data databases databasename1 databasename2 databasename3 structurebackupfile.sql,备份服务器上所有数据库,mysqldump all-databases allbackupfile.sql,还原,MySQL,数据库的命令,mysql -hhostname -uusername -ppassword databasename backupfile.sql,还原压缩的,MySQL,数据库,gunzip ,导出的文件名,mysqldump -u root -p dataname dataname.sql,这个时候会提示要你输入,root,用户名的密码,输入密码后,dataname,数据库就成功备份在,mysql/bin/,目录中,.,2.,导出一个表,mysqldump -u,用户名,-p,数据库名 表名,导出的文件名,mysqldump -u root -p dataname users dataname_users.sql,3.,导出一个数据库结构,mysqldump -u wcnc -p -d add-drop-table smgp_apps_wcnc d:wcnc_db.sql,-d,没有数据,add-drop-table,在每个,create,语句之前增加一个,drop table,4.,导入数据库,常用,source,命令,进入,mysql,数据库控制台,,如,mysql -u root -p,mysqluse,数据库,然后使用,source,命令,后面参数为脚本文件(如这里用到的,.sql,),mysqlsource d:wcnc_db.sql,建立表操作:,语法:,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,007,巩大妹,香港龙湾,S203,008,张明敏,北京顺义,S202,009,矛十八,四川棉阳,S204,010,罗林光,陕西临潼,S202,011,司马坡,新疆喀什,S201,S202,陕西临潼,罗林光,010,S202,湖北宜昌,李菲,002,S202,北京顺义,张明敏,008,SELECT * FROM Student,WHERE,所在班级,= S202,SQL,语法,SELECT DISTINCT | DISTINCTROW | ALL select_expression,. FROM table_references WHERE where_definition GROUP BY col_name,. HAVING where_definition ORDER BY unsigned_integer | col_name | formula ASC | DESC ,. LIMIT offset, rows PROCEDURE procedure_name,查询记录操作,from,子句:指定查询数据的表,where,子句:查询数据的过滤条件,group by,子句,:,对匹配,where,子句的查询结果进行分组,having,子句,:,对分组后的结果进行条件限制,order by,子句,:,对查询结果结果进行排序,后面跟,desc,降序,或,asc,升序(默认),。,limit,子句,:,对查询的显示结果限制数目,procedure,子句:查询存储过程返回的结果集数据,查询举例,SELECT,列名
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!