MySQL课件: 数据库和表的创建与管理_图文

数据库和表的创建与管理

项目知识要点与目标
项目知识要点
3.1任务1 创建与管理数据库 3.1.1 创建数据库 3.1.2 管理数据库 3.2 任务2 创建与管理数据库表 3.2.1 创建数据库表 3.2.2管理数据库表 3.3 任务3 图形界面工具创建数据库和表 3.3.1图形界面工具简介 3.3.2图形界面工具创建数据库 3.4 综合实例建立Petstore数据库表 3.4.1 Petstore数据库表结构分析 3.4.2 创建Petstore数据库与表 项目实训三

知识能力目标
【情境】:创建Petstore数 据库 【职业岗位】:数据库管理 员、程序员 【典型工作任务】:学会创 建与管理数据库 【技能要求】: 1、学会命令行方式创建与 管理数据库 2、学会图形界面创建与管 理数据库 【知识要求】: 1、数据库结构 2、数据库操作的SQL语句 创建“员工管理系统”数据 库

学时
2

2

任务一 创建与管理数据库
? 数据的物理模型:即指数据的存储结构,如对数据库物理文件、索引 文件的组织方式、文件的存取路径,内存的管理,等。物理模型不仅 与数据库管理系统有关,还和操作系统甚至硬件有关,物理模型对用 户是不可见的。
? 按关系模型组织的数据表达方式简洁、直观,插入、删除、修改操作 方便,而按层次、网状模型组织的数据表达方式复杂,插入、删除、 修改操作复杂。因此,关系模型得到了广泛应用,MySQL是一个典 型的支持关系数据模型的数据库管理系统。

MySQL数据库模型
? 在数据库服务器中可以存储多个数据库文 件,所以建立数据库时要设定数据库的文 件名,每个数据库有惟一的数据库文件名 作为与其它数据库区别的标识。
? 数据库文件: 数据库是由相关数据表组成, 一个数据库包括多个数据表。数据库文件 用于记录数据库中数据表构成的信息。 ? 数据库只能由得到授权的用户访问,这样 保证了数据库的安全。
MySQL服务器

成绩数据库 xscj 网络图书库 bookstore 雇员管理库 bookstore

……….库

数据库和表
? 数据库可以看成是一个存储数据对象的容器,这些数据对象包括表、 视图、触发器、存储过程等,其中,表是最基本的数据对象,用以存 放数据库的数据的。

必须首先创建数据库,然后 才能创建数据库的数据对象。 MySQL可以采用两种方式 创建、操作数据库和数据对 象 (1)命令行方式 (2)图形界面工具方式
数 据 表

数据库
视 图
存 储 过 程
DELIMITER $$ CREATE PROCEDURE DELETE_STUD ENT(IN XH CHAR(6)) BEGIN

创建数据库

? 创建数据库
MySQL安装后,系统自动地创建 information_scema和MySQL数据库,MySQL把 有关数据库的信息存储在这两个数据库中。如果删 除了这些数据库,MySQL就不能正常工作。 对于用户的数据,需要创建新的数据库来存放。
语法格式:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] 数据库名 [ [DEFAULT] CHARACTER SET 字符集名 | [DEFAULT] COLLATE 校对规则名] 说明:语句中“[ ]”内为可选项。

命令行方式创建数据库
在SQL语言创建数据库命令create database中,如果省略语句 中“[ ]”中的所有可选项,其结构形式如下:
mysql>create database name;

name表示被创建数据库名,数据库名必须符合以下规则:
– 数据库名必须唯一; – 名称内不能含有“/”及“.”等非法字符; – 最大不能超过64字节。 【例3.1】 创建一个名为Bookstore的数据库。 CREATE DATABASE Bookstore;

创建数据库时使用IF NOT EXISTS
如果在服务器已有 test1数据库的情况下,再创建一个名为test1的 数据库。 因为MySQL不允许两个数据库使用相同的名字,所以会出错。

使用IF NOT EXISTS从句可以不显示错误信息,例如: create database IF NOT EXISTS test1;

为了表达问题简单,在以后的示例中单独描述命令而不需要界面结果 时,在命令前省略“mysql>”提示符。 注意:在MySQL中,每一条SQL语句都以“;”作为结束标志。

打开数据库
因为MySQL服务器中有多个数据库,可以使用USE命令可指定当前 数据库。 语法格式: USE db_name; 说明:这个语句也可以用来从一个数据库“跳转”到另一个数据库, 在用CREATE DATABASE语句创建了数据库之后,该数据库不会自动成 为当前数据库,需要用这条USE语句来指定。 【例】将数据库test1设置为当前数据库。 Use test1

use命令后直接跟数据库名,然后按下回车键即完成设定过程
使用这个命令之后,所有SQL命令都会应用于该数据库,这是几个少 数不需要分号结尾的命令。

MySQL中的字符集和校对规则
? 字符集是一套符号和编码。校对 规则是在字符集内用于比较字符 的一套规则。 ? ASCII字符集中四个字母:‘A’、 ‘B’、‘a’、‘b’,每个字母赋予一个 数值:‘A’=65,‘B’= 66,‘a’= 113,‘b’= 114。字母‘A’是一个 符号,数字65是‘A’的编码,字母 和它们的编码组合在一起是一个 字符集。 ? 假设我们希望比较两个字符串的 值:‘A’和‘b’。比较的最简单的方 法是查找编码:‘A’为65,‘b’为 114。因为65 小于114,我们可 以说‘A’小于‘b’。我们做的仅仅是 在我们的字符集上应用了一个校 对规则。

MySQL字符集和校对规则应用
MySQL支持30多种字符集的70多种校对规则。在同一台服务器、同 一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字 符串。
? 两个不同的字符集不能有相同的校对规则。 ? 每个字符集有一个默认校对规则。 例如,latin1默认校对规则是latin1_swedish_ci,而gb2312默认校对规则是 gb2312_chinese_ci。

? ASCII 码字符集:使用7 位二进制数来表示所有的大写和小写字母, 数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符 ? GB2312是中国国家标准的简体中文字符集。 GB2312收录简化汉字 及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字 母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。 【例3.2】 创建一个名为Bookstore的数据库,采用字符集gb2312和校 对规则gb2312_chinese_ci。
CREATE DATABASE Bookstore DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;

修改数据库
? 数据库创建后,如果需要修改数据库的参数,可以使用ALTER DATABASE命令。 语法格式: ALTER {DATABASE | SCHEMA} [数据库名] [[DEFAULT] CHARACTER SET 字符集名 | [DEFAULT] COLLATE 校对规则名]
【例3.3】 修改数据库Pet的默认字符集为latin1,校对规则为 latin1_swedish_ci。 ALTER DATABASE Pet DEFAULT CHARACTER SET latin1 DEFAULT COLLATE latin1_swedish_ci;

删除和显示数据库
? 已经创建的数据库需要删除,使用DROP DATABASE命令。 语法格式: DROP DATABASE [IF EXISTS] 数据库名 修改数据库test2命令如下: DROP DATABASE test2;
? 显示服务器中已建立的数据库, 使用SHOW DATABASES命令。 语法格式: SHOW DATABASES;

任务二 数据库表的操作
图书编号 ISBN7115126836/tp.4 235 ISBN730205701x/tp.3 361 ISBN7301063423/tp.0 731 书名 跟我学网页设计 网页编程技术 数据库应用技术 出版时间 2009-0910 2008-1001 2007-0610 单价 23.50 54.15 33.23 数量 12 23 31 …

图书目录表的表结构分析
字段名 字段值的 表示方法 数据类型 图书编号 用20个字 符编号 Char(20) 书名 用40个字 符表示 Varchar(4 0) 出版时间 yyyy-mmdd 表示 date 单价 用带有2位小数 的5位数字表示 Float(5) 数量 用5位整 数表示 Int(5) …

数据类型

(1)数值类型
MySQL支持所有标准SQL数值数据类型。 严格数值数据类型: INTEGER或INT,SMALLINT,DECIMAL 或DEC,NUMERIC 近似数值数据类型: FLOAT,REAL, PRECISION ? MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽 度(例如,INT(4))。 ? 对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用 8个字节。 ? MySQL允许使用FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)格式。“(M,D)”表示该值一共显示M位整数,其中D 位位于小数点后面。例如,定义为FLOAT(7,4)的一个列可以显示为999.9999。MySQL保存值时进行四舍五入,因此如果在FLOAT(7,4) 列内插入999.00009,近似结果是999.0001。

字符串类型-CHAR
(2)字符串类型: 字符串类型的数据主要是由字母、汉字、数字符号、特殊符号构成的 数据对象。按照字符个数多少的不同分为以下几类: ? CHAR: 列的长度固定为创建表时声明的长度。长度可以为从0到255的任何 值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。 例如,在学生情况表中,如果设定“name char(8)”,表示“name”是 8个字符长度的字符串,可以做赋值引用即:name=`张三`,这里 name的值包括8个字符,其中2个汉字(按照4个字符处理)和4个空 格。name右侧会有若干个空格占位。这样浪费了磁盘的存储空间。

字符串类型-VARCHAR
? VARCHAR: 列中的值为可变长字符串。长度可以指定为0到65,535之间的值。 (VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体 最大长度是65,532字节)。同CHAR对比,VARCHAR值保存时只保 存需要的字符数。 例如,在学生情况表中,如果设定“name varchar(8)”,可以做赋值 引用即:name=`张三`,这里姓名的值包括5个字符,其中2个汉 字(按照4个字符处理)和1个空格。name右侧只有一个空格占位。

BLOB和 TEXT类型
? BLOB:二进制字符串(字节字符串)。BLOB列没有字符集,并且排序 和比较基于列值字节的数值值。这种类型数据用于存储声音、视频、 图像等数据。 例如,图书数据处理中的图书封面、会员照片可以设定成为blob类型。 ? TEXT:非二进制字符串(字符字符串)。TEXT列有一个字符集,并且 根据字符集的校对规则对值进行排序和比较。在实际应用中像个人履 历、奖惩情况、职业说明、内容简介等设定为text的数据类型。 例如,图书数据处理中的内容简介可以设定为text类型。 ? BLOB和TEXT列不能有 默认值。 ? BLOB或TEXT对象的最大大小由其类型确定,但在客户端和服务器之 间实际可以传递的最大值由可用内存数量和通信缓存区大小确定。你 可以通过更改max_allowed_packet变量的值更改消息缓存区的大小, 但必须同时修改服务器和客户端程序。

日期和时间类型
(3)日期和时间类型 ? date:表示日期,输入数据的格式是:yyyy-mm-dd。支持的范围是 '1000-01-01'到 '9999-12-31'。 ? time:表示时间,输入数据的格式是:hh:mm:ss。TIME值的范围可 以从'-838:59:59'到'838:59:59'。小时部分会因此大的原因是TIME类 型不仅可以用于表示一天的时间(必须小于24小时),还可能为某个事 件过去的时间或两个事件之间的时间间隔(可以大于24小时,或者甚 至为负)。 ? datetime: 表示日期时间,格式是:yyyy-mm-dd hh:mm:ss。支持 的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。 例如,在图书销售信息管理中注册时间、订购时间可以设定成为 datetime类型。

创建数据库表

为数据库创建数据表,可以使用SQL命令create table来完成。

此语句的完整语法是相当复杂的,因为存在很多的可选子句,但
在实际中此语句的应用相当简单。其基本结构形式为: create table tbl_name (create_definition,...) tbl_name为要创建的表名,括号内为表的字段,多个字段用逗号 隔开。

CREATE TABLE命令
创建表使用CREATE TABLE命令。 语法格式: CREATE TABLE [IF NOT EXISTS] 表名 (列名 数据类型 [NOT NULL | NULL] [DEFAULT 列默认值]…) ENGINE = 存储引擎
CREATE TABLE命令的基本格式: CREATE TABLE tbl_name (列名1 数据类型 1 [NOT NULL | NULL] , 列名2 数据类型 2 [NOT NULL | NULL] , …..)

案例分析-创建学生基本情况表
图书目录表如下 ,在数据库Bookstore中创建图书目录表Book。
图书编号
ISBN7115126836/tp.4235 ISBN730205701x/tp.3361 ISBN7301063423/tp.0731

书名
网页设计 网页编程技术 数据库技术

出版时间
2009-09-10 2008-10-01 2007-06-10

单价
23.50 54.15 33.23

数量
12 23 31



数据表结构分析:
字段名 图书编号 书名 出版时间 单价 数量 … 字段类型 char varchar date Float(5,2) int 宽度 20 40 20 说明 字符,非NULL,主键 字符,非NULL 日期,非NULL 两位小数, 非NULL 3位整数,非NULL

案例分析-创建XS表命令
命令代码:
CREATE TABLE book ( 图书编号 char(20) NOT NULL PRIMARY KEY, 图书类别 varchar(20) NOT NULL DEFAULT '计算机', 书名 varchar(40) NOT NULL , 作者 char(10) NOT NULL , 出版社 varchar(20) NOT NULL , 出版时间 date NOT NULL , 单价 float(5) NOT NULL , 数量 int(5), 折扣 float(3) , 封面图片 blob ) ENGINE=InnoDB;

课堂练习
创建实训3中的YGGL数据库,并在该数据库中创建员工信息表 Employees,请写出相关命令

修改表
ALTER TABLE用于更改原有表的结构。例如,可以增加或删减列,创建 或取消索引,更改原有列的类型,重新命名列或表,还可以更改表的 评注和表的类型。 语法格式:
ALTER [IGNORE] TABLE表名 ADD [COLUMN] 列名 [FIRST | AFTER列名] /*添加列*/ | ALTER [COLUMN] 列名 {SET DEFAULT 默认值| DROP DEFAULT} /*修改默认值*/ | CHANGE [COLUMN] 旧列名 列定义 /*对列重命名*/ [FIRST|AFTER列名] | MODIFY [COLUMN] 列定义 [FIRST | AFTER 列名] /*修改列类型*/ | DROP [COLUMN] 列名 /*删除列*/ | RENAME [TO] 新表名 /*重命名该表*/

修改表举例
【例3.5】 假设已经在数据库Bookstore中创建了表book,表中存在“书 名”列。在表book中增加“浏览次数”列并将表中的“书名”列删除。
ALTER TABLE book ADD 浏览次数 tinyint NULL , DROP COLUMN 书名 ;

【例3.6】 假设数据库Bookstore中已经存在table1表,将table1表重命 名为student。
ALTER TABLE table1 RENAME TO student;

修改表名除了上面的ALTER TABLE命令,还可以直接用RENAME TABLE 语句来更改表的名字。
语法格式: RENAME TABLE 旧表名1 TO 新表名1 [ , 旧表名2 TO 新表名2] ...

【例3.7】 假设数据库BookStore中已经存在table2表和table3表,将 table2表重命名为orders,table3表重命名为orderlist。
RENAME TABLE table2 TO orders, Table3 TO orderlist;

复制表
语法格式: CREATE TABLE [IF NOT EXISTS] 新表名 [ LIKE 参照表名 ] | [AS (select语句)] 使用LIKE关键字创建一个与old_table_name表相同结构的新表,列名、 数据类型、空指定和索引也将复制,但是表的内容不会复制,因此创 建的新表是一个空表。 使用AS关键字可以复制表的内容,但索引和完整性约束是不会复制的。 【例3.8】 假设数据库BookStore中有一个表Book,创建Book表的一个 名为book_copy1的拷贝。 CREATE TABLE book_copy1 LIKE Book; 【例 3.9】 创建表Book的一个名为book_copy2的拷贝,并且复制其内 容。 CREATE TABLE book_copy2 AS (SELECT * FROM Book);

删除表
需要删除一个表时可以使用DROP TABLE语句。 语法格式: DROP TABLE [IF EXISTS] 表名1 [,表名2 ] ... 这个命令将表的描述、表的完整性约束、索引及和表相关的权限等都全 部删除。 【例3.10】 删除表test。 USE XSCJ DROP TABLE IF EXISTS test ;

显示数据表信息
(1)显示数据表文件名 语法格式: SHOW TABLES
【例3.11】显示Bookstore 数据库建立的数据表文件:

USE Bookstore SHOW TABLES ; (2)显示数据表结构 语法格式: {DESCRIBE | DESC} 表名 [列名 | 通配符 ] DESC是DESCRIBE的简写,二者用法相同。 【例3.12】 用DESCRIBE语句查看 Book 表的列的信息。 USE Bookstore DESCRIBE Book ;
【例3.13】 查看 Book 表图书编号 列的信息。 USE Bookstore

课堂练习
1、对departments表增加一列负责人(manager) 2、对employees表增加一列照片(photo),用以存放雇员照片,该字 段可以为空。 3、对salary表增加序号列(No) ,用以对每笔工资收入支出进行编号。 4、将salary表的income列改为整数型,6位 4、复制departments表的结构到bm表 5、显示gygl数据库中的所有表 6、显示departments表的结构 7、删除bm表

任务三 图形界面工具创建数据库和表
Navicat for MySQL:
1.连接MySQL服务器 Navicat for MySQL是一个桌面版MySQL数据库管理和开发工具,和 微软SQLServer的管理器很像,易学易用,很受大家的欢迎。

在上图窗口输入连接名(任取),在“密码(p):”输入密码,单击“确 定”按钮,登录到数据库服务器中。
31

Navicat for MySQL工具
2.创建数据库 如果要创建数据库,选中已建立连接的连接名,按鼠标右键,在弹出的快捷 菜单中选中“新建数据库”菜单项,出现创建新数据库对话框,在“输入数 据库名”文本框中输入新建数据库的名称,如果新建数据库采用服务器默认 的字符集和校对规则,则直接按“确定”按钮。如果在创建数据库要使用特 定的字符集和校对规则,则分别点击字符集和校对下拉框指定需要的字符集 和校对规则后按“确定”按钮。点击“确定”按钮后,新的数据库就已创建。

32

Navicat for MySQL工具
3.访问数据库 如果要对数据库进行维护,在“连接”列表框中,双击要维护的数据库名 称,此时窗口右边列表框中出现所选数据库已经建立的数据表文件,若按鼠 标右键,弹出数据库操作快捷菜单,可以实现数据维护的相关操作

33

Navicat for MySQL工具
4.创建数据库表 双击要创建表的数据库名称,右边为数据库表管理窗口,点击工具栏中的 “新建表”按钮,出现新建表窗口,在“栏位”框中依次输入表的字段定义, “字段名”、“类型名”、“长度”、“小数点”后位数、“是否为空”等定 义,在对话框下半框中还可输入对应字段的“默认值”、“注释”等信息。数 据库表定义完成后,按工具栏中“保存”按钮,在“输入表名”文本框中输入 新建表的名称后按“确定”按钮,新的数据库表就已创建

34

Navicat for MySQL工具
5.修改表结构 如果要对表的结构进行修改,在选择要修改的表,点击工具栏中的“设计表” 按钮,可以修改表结构的各项定义

35

课堂练习
创建用学生成绩数据库XSCJ,包含以下三个表: 1)XS:学生信息表 2)KC:课程表 3) XS_KC:成绩表
学号
081104 081106

姓名
严芳 李方方

专业
计算机 计算机

性别
女 女

出生日期
1990-08-26 1990-05-01

总学分
50 52

备注
三好生

081201
081216

王敏
孙庆祥

通讯工程
通讯工程




1989-06-10
1989-12-11

42
48

一门补考

学号 课程号 101 206 301 课程名 计算机基础 离散数学 软件工程 开课学期 1 4 5 学时 80 60 60 学 分 5 4 4 081104 081104 081104 081216 081216 081216

课程号 101 206 301 101 206 301

成绩 80 78 90 85 66 79


相关文档

在MySQL中创建数据库与数据表
用MySQL创建数据库和数据库表
如何用MySQL创建数据库和数据库表
MySQL课件: 数据库管理环境的建立
第二章 MYSQL数据库与表的创建
mysql 登录、创建数据库和表
数据库技术课件--第5章MySQL数据库管理系统
SQL1.2章节创建和管理数据库课件
02_MySql管理器创建表
课件教程(第八讲) Mysql 简介和创建新的数据库
电脑版