MySQL课件数据库和表的创建与管理
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创建、操作数据库和数据对 象
数
据 表
(1)命令行方式
(2)图形界面工具方式
数据库
视 图
存 储 过 程
DELIMITER $$ CREATE PROCEDURE DELETE_STUDENT(I N XH CHAR(6)) BEGIN
创建数据库
• 创建数据库
MySQL安装后,系统自动地创建 information_scema和MySQL数据库,MySQL把 有关数据库的信息存储在这两个数据库中。如果删 除了这些数据库,MySQL就不能正常工作。
(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小时,或者甚 至为负)。
在SQL语言创建数据库命令create database中,如果省略语句中 “[ ]”中的所有可选项,其结构形式如下:
mysql>create database name; name表示被创建数据库名,数据库名必须符合以下规则:
– 数据库名必须唯一; – 名称内不能含有“/”及“.”等非法字符; – 最大不能超过64字节。 【例3.1】 创建一个名为Bookstore的数据库。 CREATE DATABASE Bookstore;
(1)数值类型
MySQL支持所有标准SQL数值数据类型。 严格数值数据类型:
INTEGER或INT,SMALLINT,DECIMAL 或DEC,NUMERIC 近似数值数据类型:
FLOAT,REAL, PRECISION • MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽
度(例如,INT(4))。 • 对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用
CREATE DATABASE Bookstore DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
修改数据库
• 数据库创建后,如果需要修改数据库的参数,可以使用ALTER DATABASE命令。 语法格式:
ALTER {DATABASE | SCHEMA} [数据库名] [[DEFAULT] CHARACTER SET 字符集名 | [DEFAULT] COLLATE 校对规则名]
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。
• 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’。我们做的仅仅是
• datetime: 表示日期时间,格式是:yyyy-mm-dd hh:mm:ss。支持 的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。 例如,在图书销售信息管理中注册时间、订购时间可以设定成为 datetime类型。
创建数据库表
为数据库创建数据表,可以使用SQL命令create table来完成。 此语句的完整语法是相当复杂的,因为存在很多的可选子句,但 在实际中此语句的应用相当简单。其基本结构形式为:
BLOB和 TEXT类型
• BLOB:二进制字符串(字节字符串)。BLOB列没有字符集,并且排序 和比较基于列值字节的数值值。这种类型数据用于存储声音、视频、 图像等数据。 例如,图书数据处理中的图书封面、会员照片可以设定成为blob类型。
• TEXT:非二进制字符串(字符字符串)。TEXT列有一个字符集,并且 根据字符集的校对规则对值进行排序和比较。在实际应用中像个人履 历、奖惩情况、职业说明、内容简介等设定为text的数据类型。 例如,图书数据处理中的内容简介可以设定为text类型。
【例3.3】 修改数据库Pet的默认字符集为latin1,校对规则为 latin1_swedish_ci。 ALTER DATABASE Pet DEFAULT CHARACTER SET latin1 DEFAULT COLLATE latin1_swedish_ci;
删除和显示数据库
• 已经创建的数据库需要删除,使用DROP DATABASE命令。 语法格式:
MySQL服务器
成绩数据库 xscj
网络图书库 bookstore
雇员管理库 bookstore
……….库
数据库和表
• 数据库可以看成是一个存储数据对象的容器,这些数据对象包括表、 视图、触发器、存储过程等,其中,表是最基本的数据对象,用以存 放数据库的数据的。
必须首先创建数据库,然后 才能创建数据库的数据对象。 MySQL可以采用两种方式
字符串类型-VARCHAR
• VARCHAR: 列中的值为可变长字符串。长度可以指定为0到65,535之间的值。 (VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体 最大长度是65,532字节)。同CHAR对比,VARCHAR值保存时只保 存需要的字符数。
例如,在学生情况表中,如果设定“name varchar(8)”,可以做赋值 引用即:name=`张三`,这里姓名的值包括5个字符,其中2个汉 字(按照4个字符处理)和1个空格。name右侧只有一个空格占位。
数据库和表的创建与管理
项目知识要点与目标
任务一 创建与管理数据库
• 数据的物理模型:即指数据的存储结构,如对数据库物理文件、索引 文件的组织方式、文件的存取路径,内存的管理,等。物理模型不仅 与数据库管理系统有关,还和操作系统甚至硬件有关,物理模型对用 户是不可见的。
• 按关系模型组织的数据表达方式简洁、直观,插入、删除、修改操作 方便,而按层次、网状模型组织的数据表达方式复杂,插入、删除、 修改操作复杂。因此,关系模型得到了广泛应用,MySQL是一个典 型的支持关系数据模型的数据库管理系统。
对于用户的数据,需要创建新的数据库来存放。
语法格式:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] 数据库名 [ [DEFAULT] CHARACTER SET 字符集名 | [DEFAULT] COLLATE 校对规则名]
说明:语句中“[ ]”内为可选项。
命令行方式创建数据库
字符串类型-CHAR
(2)字符串类型: 字符串类型的数据主要是由字母、汉字、数字符号、特殊符号构成的 数据对象。按照字符个数多少的不同分为以下几类:
• CHAR: 列的长度固定为创建表时声明的长度。长度可以为从0到255的任何 值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。 例如,在学生情况表中,如果设定“name char(8)”,表示“name”是 8个字符长度的字符串,可以做赋值引用即:name=`张三`,这里 name的值包括8个字符,其中2个汉字(按照4个字符处理)和4个空 格。name右侧会有若干个空格占位。这样浪费了磁盘的存储空间。
【例】将数据库test1设置为当前数据库。 Use test1
use命令后直接跟数据库名,然后按下回车键即完成设定过程
使用这个命令之后,所有SQL命令都会应用于该数据库,这是几个少 数不需要分号结尾的命令。
MySQL中的字符集和校对规则
• 字符集是一套符号和编码。校对 规则是在字符集内用于比较字符 的一套规则。
创建数据库时使用IF NOT EXISTS
如果在服务器已有 test1数据库的情况下,再创建一个名为test1的 数据库。
因为MySQL不允许两个数据库使用相同的名字,所以会出错。
使用IF NOT EXISTS从句可以不显示错误信息,例如: create database IF NOT EXISTS test1;
MySQL数据库模型
• 在数据库服务器中可以存储多个数据库文 件,所以建立数据库时要设定数据库的文 件名,每个数据库有惟一的数据库文件名 作为与其它数据库区别的标识。
• 数据库文件: 数据库是由相关数据表组成, 一个数据库包括多个数据表。数据库文件 用于记录数据库中数据表构成的信息。
• 数据库只能由得到授权的用户访问,这样 保证了数据库的安全。
create table tbl_name (create_definition,...) tbl_name为要创建的表名,括号内为表的字段,多个字段用逗号 隔开。
CREATE TABLE命令
创建表使用CREATE TABLE命令。 语法格式:
CREATE TABLE [IF NOT EXISTS] 表名 (列名 数据类型 [NOT NULL | NULL] [DEFAULT 列默认值]…) ENGINE = 存储引擎
DROP DATABASE [IF EXISTS] 数据库名
修改数据库test2命令如下: DROP DATABASE test2;
• 显示服务器中已建立的数据库, 使用SHOW DATABASES命令。 语法格式: SHOW DATABASES;
任务二 数据库表的操作
图书目录表的表结构分析
数据类型
gb2312_hinese_ci。 • ASCII 码字符集:使用7 位二进制数来表示所有的大写和小写字母,
数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符 • GB2312是中国国家标准的简体中文字符集。 GB2312收录简化汉字
及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字 母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。 【例3.2】 创建一个名为Bookstore的数据库,采用字符集gb2312和校 对规则gb2312_chinese_ci。
CREATE TABLE命令的基本格式: CREATE TABLE tbl_name (列名1 数据类型 1 [NOT NULL | NULL] ,
为了表达问题简单,在以后的示例中单独描述命令而不需要界面结果 时,在命令前省略“mysql>”提示符。
注意:在MySQL中,每一条SQL语句都以“;”作为结束标志。
打开数据库
因为MySQL服务器中有多个数据库,可以使用USE命令可指定当前 数据库。
语法格式: USE db_name;
说明:这个语句也可以用来从一个数据库“跳转”到另一个数据库, 在用CREATE DATABASE语句创建了数据库之后,该数据库不会自动成 为当前数据库,需要用这条USE语句来指定。
• BLOB和TEXT列不能有 默认值。 • BLOB或TEXT对象的最大大小由其类型确定,但在客户端和服务器之
间实际可以传递的最大值由可用内存数量和通信缓存区大小确定。你 可以通过更改max_allowed_packet变量的值更改消息缓存区的大小, 但必须同时修改服务器和客户端程序。
日期和时间类型
在我们的字符集上应用了一个校 对规则。
MySQL字符集和校对规则应用
MySQL支持30多种字符集的70多种校对规则。在同一台服务器、同 一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字 符串。
两个不同的字符集不能有相同的校对规则。 每个字符集有一个默认校对规则。
例如,latin1默认校对规则是latin1_swedish_ci,而gb2312默认校对规则是