MySQL--公司培训ppt课件.ppt_第1页
MySQL--公司培训ppt课件.ppt_第2页
MySQL--公司培训ppt课件.ppt_第3页
MySQL--公司培训ppt课件.ppt_第4页
MySQL--公司培训ppt课件.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、MySQL,培训人:*,1,启动MySQL服务器,启动MySQL服务器的方法有两种:系统服务器和命令提示符(DOS) 1通过系统服务器启动MySQL服务器 如果MySQL设置为Windows服务,则可以通过选择“开始”/“管理工具”/“服务”命令打开Windows服务管理器。在服务器的列表中找到mysql服务并右击,在弹出的快捷菜单中选择“启动”命令,启动MySQL服务器,如图所示。,2,启动MySQL服务器,2在命令提示符下启动MySQL服务器 选择“开始”/“运行”命令,在弹出的“运行”对话框中输入cmd命令,按Enter键进入DOS窗口。在命令提示符下输入: net start mysq

2、l 按Enter键,即可启用MySQL服务器,如图所示。,3,断开MySQL服务器,1通过系统服务器停止MySQL服务器 如果将MySQL设置为Windows服务,则可以通过选择“开始”/“管理工具”/“服务”命令,打开Windows服务管理器,在服务器的列表中右击mysql服务,在弹出的快捷菜单中选择“停止”命令,停止mysql服务,如图所示。,4,停止MySQL服务器,2在命令提示符下停止MySQL服务器 选择“开始”/“运行”命令,在弹出的“运行”对话框中输入cmd命令,进入DOS窗口,在命令提示符下输入: net stop mysql 按Enter键即可停止MySQL服务器,如图所示。

3、,5,创建数据库CREATE DATABASE,使用CREATE DATABASE语句可以轻松创建MySQL数据库。 语法格式如下: CREATE DATABASE 数据库名; 在创建数据库时,数据库命名有以下几项规则: 不能与其他数据库重名,否则将发生错误。 名称可以由任意字母、阿拉伯数字、下划线(_)和“$”组成,可以使用上述的任意字符开头,但不能使用单独的数字,否则会造成它与数值相混淆。 不能使用MySQL关键字作为数据库名、表名。 在默认情况下,Windows下数据库名、表名的大小写是不敏感的,而在Linux下数据库名、表名的大小写是敏感的。为了便于数据库在平台间进行移植,建议采用小写

4、来定义数据库名和表名。,6,删除数据库DROP DATABASE,删除数据库可以使用DROP DATABASE语句。 语法格式如下: DROP DATABASE 数据库名;,7,数据库基础知识,数据库基础知识概述 SQL概述 SQL语言,8,数据库基础知识,数据库由一批数据构成的有序集合,这些数据被分门别类地存放在一些结构化的数据表(table)里,而数据表之间又往往存在交叉引用的关系,这种关系使数据库又被称为关系型数据库 档案柜=数据库 抽屉=表 文件=记录,9,数据库,数 据 表 存储过程 视 图 .,表,产品数据库,10,数据表,11,数据在表中的存放,存在冗余,为减少数据查找的麻烦,允

5、许数据有一定的冗余,12,数据存储的完整性,存在不正确、不准确的数据,数据库“失去了完整性”,13,数据的完整性,+,=,数据完整性,14,完整性分类,数据实体完整性 字段完整性 引用完整性 自定义完整性,15,数据实体完整性,约束方法:唯一约束、主键约束、标识列,16,字段完整性,约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束,17,引用完整性,约束方法:外键约束,18,自定义完整性,约束方法:规则、存储过程、触发器,19,完整性包括,输入的类型是否正确? 年龄必须是数字 输入的格式是否正确? 身份证号码必须是18位 是否在允许的范围内? 性别只能是”男”或者”女” 是否存在重

6、复输入? 学员信息输入了两次 是否符合其他特定要求? 信誉值大于5的用户才能够加入会员列表 ,20,SQL概述,什么是SQL? SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。,21,SQL语法组成,DML( Data Manipulation Language数据操作语言) 查询、插入、删除和修改数据库中的数据; SELECT、INSERT、 UPDATE 、DELETE等; DCL( Data Control Langu

7、age数据控制语言) 用来控制存取许可、存取权限等; GRANT、REVOKE 等; DDL( Data Definition Language数据定义语言) 用来建立数据库、数据库对象和定义其列 CREATE TABLE 、DROP TABLE、ALTER TABLE 等 功能函数 日期函数、数学函数、字符函数、系统函数等,22,MySQL中使用SQL语言几点说明,属于一个SQL语句,使用分号(;)结尾,否则mysql认为语句没有输入完。 箭头(-)代表SQL语句没有输入完 取消SQL语句使用(c) SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分) 使用函数时,函

8、数名和后面的括号之间不能有空格,23,MySQL数据类型,数据类型种类 数值列类型 字符串列类型 日期和时间列类型,24,数据类型种类,数值型 分为整型和浮点型 整型: 可以由十进制和十六进制表示 整数由数字序列组成,如:1,100。 由十六进制表示方法:0 x且后面加19和AF 的任意数字或字母,并且0 x中的X不能大写。 浮点型: 浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。,25,日期和时间值 是存储如“2005 -1-1” 或者“12:00:00”这样的数值的值。在MySQL中日期是按”年-月-日”的顺序。 NULL值 是一种无类型的值,表示“空,什么也没

9、有”。,26,数值列类型,MySQL为除了NULL值外的所有通用数据类型提供了列类型。列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。 数值列类型 所有数值列类型的类型名及其说明和所占的字节数见下表:,27,数值列的完整性约束,AUTO_INCREMENT 自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1 的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOT NULL,并定义为PRIMARY KEY 或者定义为UN

10、IQUE键。,28,NULL和NOT NULL 默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。,29,字符串,字符串列类型 所有字符串列类型及其说明和所占的字节数见下表:,30,CHAR和VARCHAR类型,CHAR类型和VARCHAR类型长度范围都是0255之间的大小。他们之间的差别在于MySQL处理存储的方式: CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。 VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当

11、被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短 )。,31,BLOB和TEXT类型,BLOB是二进制大对象,如果想存储二进制数BLOB将是最佳选择,而TEXT与之相同,只是BOLOB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。 ENUM 和SET类型 是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(不推荐使用),32,日期和时间列类型,所有时间和日期列类型的类型名及其说明和所占的字节数见下表:,33,34,说明: 每个时间和日期列类型都有一个零值,当插入非法数值

12、时就用零值来添加 表示日期时必须先按:年,月,日的顺序给出 DATE ,TIME ,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为“YYYY-MM-DD”,“hh:mm:ss”和“YYYY-MM-DD hh:mm:ss”,对于DATETIME类型,日期和时间部分都需要 TIMESTAMP 时间戳列类型以YYYYMMDDhhmmss的格式来表示值,其取值范围是19700101000000到2037年的某个时间,主要用于记录更改或创建某个记录,35,总结:常用数据类型,36,创建数据库,建立数据库操作: 语法:create database 数据库名 叙述:创建一个具有指定名称的

13、数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。 例:建立一个student库。 mysql create database student;,37,mysql数据库备份及恢复命令mysqldump,source的用法,还原一个数据库: mysql -h localhost -u root -p123456 数据库名 数据库所在路径(d:数据库.sql),38,备份MySQL数据库的命令,mysqldump -hhostname -uusername -ppassword databasename backupfile.sql,39,直接将MySQL数据库压缩备份

14、mysqldump -hhostname -uusername -ppassword databasename | gzip backupfile.sql.gz 备份MySQL数据库某个(些)表 mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 backupfile.sql,40,同时备份多个MySQL数据库 mysqldump -hhostname -uusername -ppassword databases databasename1 databasename2

15、databasename3 multibackupfile.sql 仅仅备份数据库结构 mysqldump no-data databases databasename1 databasename2 databasename3 structurebackupfile.sql 备份服务器上所有数据库 mysqldump all-databases allbackupfile.sql,41,还原MySQL数据库的命令 mysql -hhostname -uusername -ppassword databasename backupfile.sql 还原压缩的MySQL数据库 gunzip bac

16、kupfile.sql.gz | mysql -uusername -ppassword databasename 将数据库转移到新服务器 mysqldump -uusername -ppassword databasename | mysql host=*.*.*.* -C databasename,42,几个常用用例:,1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 导出的文件名 mysqldump -u root -p dataname dataname.sql 这个时候会提示要你输入root用户名的密码,输入密码后dataname数据库就成功备份在mysql/bi

17、n/目录中. 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,43,4.导入数据库 常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysqluse

18、 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysqlsource d:wcnc_db.sql,44,创建表,建立表操作: 语法:create table 表名( 列名1 列类型 , 列名2 列类型 , . . ); 叙 述:在当前数据库下新创建一个数据表。 列类型:表示该列的数据类型。 例: 建立一个表school,其由两列组成,第一列属性为非空,并做为主键,并自增 create table school( school_id int(10) not null auto_increment primary key, school_name varchar(

19、20) );,45,常见完整性约束:,PRIMARY KEY 主码约束(主键) UNIQUE唯一性约束 NOT NULL非空值约束 AUTO_INCREMENT用于整数列默认自增1 UNSIGNED 无符号整数 DEFAULT default_value默认值约束 DEFAULT cur_timestamp 创建新记录时默认保存当前时间(仅适用timestamp数据列) ON UPDATE cur_timestamp 修改记录时默认保存当前时间(仅适用timestamp数据列) CHARACTER SET name 指定字符集(仅适用字符串),46,主键与外键,数据表之间的关联/引用关系是依靠

20、具体的主键(primary key)和外键(foreign key)建立起来的。 主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来。 主键必须是唯一的 主键应该是紧凑的,因此整数类型比较适合 外键:引用另外一个数据表的某条记录。 外键列类型尽可能与主键列类型保持一致 外键列应该加上NOT NULL,47,主键 create table student( sid int not null auto_increment, name varchar(20) not null, primary key(sid) ); 外键(自动检查外键是否匹配,仅适用InnoDB) create t

21、able score( cid int not null auto_increment primary key, score int, sid int, foreign key(sid) references student(sid) );,48,主表和从表,1、当主表中没有对应的记录时,不能将记录添加到子表 成绩表中不能出现在学员信息表中不存在的学号; 2、不能更改主表中的值而导致子表中的记录孤立 把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变; 3、子表存在与主表对应的记录,不能从主表中删除该行 不能把有成绩的学员删除了 4、删除主表前,先删子表 先删学员成绩表、后删除学员信

22、息表,49,删除数据库或表操作,删除表操作 语法:drop table if exists tab_name ,tab_name. 叙述:从数据库中删除给定的表。如果给出if exists 子句,则删除不存在的表不会出错。 删除数据库操作 语法:drop database if exists db_name 叙述:删除给定的数据库。在删除一个数据库后,它就永远没有了,因此要特别小心。如果给出if exists 子句,则删除不存在的数据库不会出错。,50,插入记录操作,语法: 叙述: 如果表名后面没写字段名,则默认是向所有的字段添加值,另外字符串值应该用 或“ ”引号括起来 举例1:向peopl

23、e表中添加一条记录: insert into people(name,age) values(“zhangsan”,20);,INSERT INTO 列名 VALUES ,51,插入案例,创建一张学生信息表,往表中插入数据 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) );,52,插入数

24、据行 1,注意事项1:每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将按照整行的完整性的要求来检验;,53,插入数据行 2,注意事项2:每个数据值的数据类型、精度和小数位数必须与相应的列匹配;,54,插入数据行3,注意事项4:如果在设计表的时候就指定了某列不允许为空,则必须插入数据;,55,插入数据行4,注意事项6:具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值,INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,DEFAULT,6,ZQCS,0),56,插入多

25、行数据,INSERT INTO (列名) VALUES(), (), () ,57,更改记录操作,语法: 叙述: where 子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据。 举例: 将student表中的所有学生名称为Alex的改为Tom: update student set sname=Tom where sname=Alex;,UPDATE SET WHERE ,58,更新数据行,59,删除记录操作,语法: 叙述:此语句删除表中的行,如果不带where子句,则删除整个表中的记录,但是表不被删除。 举例: 删除student表中的所有年龄小于1

26、8岁的记录: delete from student where sage18;,DELETE FROM WHERE ,60,补充说明,删除学生编号为95005的学生信息包括成绩信息 delete from student,sc using student,sc where student.sno = sc.studentid and student.sno=95005; 说明: 表和字段的引用方式有两种:绝对引用和相对引用 绝对引用:数据库名.表名(.字段名) 相对引用:表名.(字段名),61,删除数据行,62,什么是查询?,SELECT * FROM SALES,客户程序,SQL SERVER,查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来,63,查询记录操作,from子句:指定查询数据的表 where子句:查询数据的过滤条件 group by子句:对匹配where子句的查询结果进行分组 having子句:对分组后的结果进行条件限制 order by子句:对查询结果结果

温馨提示

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

评论

0/150

提交评论