单元3 数据库和表的创建与管理

上传人:ldj****22 文档编号:54216582 上传时间:2018-09-09 格式:PPT 页数:36 大小:1.42MB
返回 下载 相关 举报
单元3 数据库和表的创建与管理_第1页
第1页 / 共36页
单元3 数据库和表的创建与管理_第2页
第2页 / 共36页
单元3 数据库和表的创建与管理_第3页
第3页 / 共36页
单元3 数据库和表的创建与管理_第4页
第4页 / 共36页
单元3 数据库和表的创建与管理_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《单元3 数据库和表的创建与管理》由会员分享,可在线阅读,更多相关《单元3 数据库和表的创建与管理(36页珍藏版)》请在金锄头文库上搜索。

1、单元三,数据库和表的创建与管理,项目知识要点与目标,任务一 创建与管理数据库,数据的物理模型:即指数据的存储结构,如对数据库物理文件、索引文件的组织方式、文件的存取路径,内存的管理,等。物理模型不仅与数据库管理系统有关,还和操作系统甚至硬件有关,物理模型对用户是不可见的。按关系模型组织的数据表达方式简洁、直观,插入、删除、修改操作方便,而按层次、网状模型组织的数据表达方式复杂,插入、删除、修改操作复杂。因此,关系模型得到了广泛应用,MySQL是一个典型的支持关系数据模型的数据库管理系统。,MySQL数据库模型,在数据库服务器中可以存储多个数据库文件,所以建立数据库时要设定数据库的文件名,每个数

2、据库有惟一的数据库文件名作为与其它数据库区别的标识。数据库文件: 数据库是由相关数据表组成,一个数据库包括多个数据表。数据库文件用于记录数据库中数据表构成的信息。数据库只能由得到授权的用户访问,这样保证了数据库的安全。,数据库和表,数据库可以看成是一个存储数据对象的容器,这些数据对象包括表、视图、触发器、存储过程等,其中,表是最基本的数据对象,用以存放数据库的数据的。,必须首先创建数据库,然后才能创建数据库的数据对象。MySQL可以采用两种方式创建、操作数据库和数据对象 (1)命令行方式 (2)图形界面工具方式,数据表,视图,存储 过程,DELIMITER $ CREATE PROCEDURE

3、 DELETE_STUDENT(IN XH CHAR(6) BEGIN,创建数据库MySQL安装后,系统自动地创建information_scema和MySQL数据库,MySQL把有关数据库的信息存储在这两个数据库中。如果删除了这些数据库,MySQL就不能正常工作。对于用户的数据,需要创建新的数据库来存放。语法格式:CREATE DATABASE | SCHEMA IF NOT EXISTS 数据库名 DEFAULT CHARACTER SET 字符集名| DEFAULT COLLATE 校对规则名说明:语句中“ ”内为可选项。 | 表示二选一。,创建数据库,命令行方式创建数据库,在SQL语言

4、创建数据库命令create database中,如果省略语句中“ ”中的所有可选项,其结构形式如下:mysqlcreate database name;name表示被创建数据库名,数据库名必须符合以下规则:,数据库名必须唯一; 名称内不能含有“/”及“.”等非法字符; 最大不能超过64字节。 【例3.1】 创建一个名为Bookstore的数据库。CREATE DATABASE Bookstore;,创建数据库时使用IF NOT EXISTS,如果在服务器已有 test1数据库的情况下,再创建一个名为test1的数据库。 因为MySQL不允许两个数据库使用相同的名字,所以会出错。使用IF NOT

5、 EXISTS从句可以不显示错误信息,例如: create database IF NOT EXISTS test1;为了表达问题简单,在以后的示例中单独描述命令而不需要界面结果时,在命令前省略“mysql”提示符。注意:在MySQL中,每一条SQL语句都以“;”作为结束标志。,因为MySQL服务器中有多个数据库,可以使用USE命令可指定当前数据库。语法格式:USE db_name; 说明:这个语句也可以用来从一个数据库“跳转”到另一个数据库,在用CREATE DATABASE语句创建了数据库之后,该数据库不会自动成为当前数据库,需要用这条USE语句来指定。【例】将数据库test1设置为当前数

6、据库。Use test1use命令后直接跟数据库名,然后按下回车键即完成设定过程使用这个命令之后,所有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,我们可以

7、说A小于b。我们做的仅仅是在我们的字符集上应用了一个校对规则。,MySQL字符集和校对规则应用,MySQL支持30多种字符集的70多种校对规则。在同一台服务器、同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字符串。 两个不同的字符集不能有相同的校对规则。 每个字符集有一个默认校对规则。例如,latin1默认校对规则是latin1_swedish_ci,而gb2312默认校对规则是gb2312_chinese_ci。 ASCII 码字符集:使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符 GB2312是中国国家标准的简体中文

8、字符集。 GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。 【例3.2】 创建一个名为Bookstore的数据库,采用字符集gb2312和校对规则gb2312_chinese_ci。 CREATE DATABASE BookstoreDEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;,修改数据库,数据库创建后,如果需要修改数据库的参数,可以使用ALTER DATABASE命令。语法格式:ALTER DATABASE | SCHEMA 数据库名

9、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;显示服务器中已

10、建立的数据库,使用SHOW DATABASES命令。语法格式:SHOW DATABASES;,任务二 数据库表的操作,图书目录表的表结构分析,数据类型,(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)或DOU

11、BLE 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值时,在它们的右边填充空格以达到指定的长度。例如,在学生情况表中,如

12、果设定“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=

13、张三,这里姓名的值包括5个字符,其中2个汉字(按照4个字符处理)和1个空格。name右侧只有一个空格占位。,BLOB和 TEXT类型,BLOB:二进制字符串(字节字符串)。BLOB列没有字符集,并且排序和比较基于列值字节的数值值。这种类型数据用于存储声音、视频、图像等数据。例如,图书数据处理中的图书封面、会员照片可以设定成为blob类型。 TEXT:非二进制字符串(字符字符串)。TEXT列有一个字符集,并且根据字符集的校对规则对值进行排序和比较。在实际应用中像个人履历、奖惩情况、职业说明、内容简介等设定为text的数据类型。例如,图书数据处理中的内容简介可以设定为text类型。BLOB和TEX

14、T列不能有 默认值。 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类型不仅可以用于表示一天的时间

15、(必须小于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 (cr

16、eate_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 ,),案例分析-创建学生基本情况表,图书目录表如下 ,在数

17、据库Bookstore中创建图书目录表Book。,数据表结构分析:,案例分析-创建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;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号