MySQL数据库技术与应用_第1页
MySQL数据库技术与应用_第2页
MySQL数据库技术与应用_第3页
MySQL数据库技术与应用_第4页
MySQL数据库技术与应用_第5页
已阅读5页,还剩736页未读, 继续免费阅读

下载本文档

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

文档简介

第一章数据库基础主要内容数据库设计数据库和数据模型第一节数据库和数据模型

1.1.1数据库系统

1.1.2数据模型1.1.1数据库系统1.数据库的概念

数据库是按照数据结构来组织、存储和管理数据的仓库,是一个可以长期存储在计算机内的有组织、可共享、统一管理的大量数据的集合。2.数据库管理系统的概念

数据库管理系统是数据库系统的核心组成部分,主要完成数据库的操作与管理功能,实现数据库对象的创建,数据库存储数据的查询、添加、修改与删除操作,以及数据库的用户管理、权限管理等。简单地说,DBMS就是管理数据库的系统(软件)。数据库管理员通过DBMS对数据库进行管理。1.1.2数据模型1.1.2数据模型

1.层次模型

2.网状模型

3.关系模型

层次模型层次模型是数据库系统中最早出现的数据模型层次数据库系统的典型代表是IBM公司的IMS(InformationManagementSystem)数据库管理系统层次模型用树形结构来表示各类实体以及实体间的联系

层次模型的数据结构层次模型满足下面两个条件的基本层次联系的集合为层次模型1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点层次模型的数据结构(续)

R1

根结点

R2

兄弟结点

R3

叶结点

R4

兄弟结点

R5

叶结点

叶结点图1.9一个层次模型的示例层次模型的特点:结点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型可以定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在层次模型的数据结构(续)图1.10教员学生层次数据库模型

根结点记录型系的子女结点记录型教员的双亲结点叶结点叶结点字段1.1.2数据模型1.层次模型

2.网状模型

3关系模型2.网状模型网状数据库系统采用网状模型作为数据的组织方式典型代表是DBTG系统:亦称CODASYL系统20世纪70年代由DBTG提出的一个系统方案实际系统CullinetSoftware公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE网状模型的数据结构网状模型满足下面两个条件的基本层次联系的集合:1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。网状模型的数据结构(续)网状模型与层次模型的区别网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种联系(复合联系)网状模型可以更直接地描述现实世界层次模型实际上是网状模型的一个特例网状模型的数据结构(续)网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关的双亲记录和子女记录R1与R3之间的联系L1R2与R3之间的联系L2

网状模型的例子1.1.2数据模型

1.层次模型

2.网状模型

3.关系模型关系模型关系模型以记录组或数据表的形式组织数据,以便利用各种实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方式。关系模型的数据结构在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。学号姓名年龄性别系名年级2013004王小明19女社会学20132013006黄大鹏20男商品学20132013008张文斌18女法律2013………………学生登记表属性元组数据模型向以下几个方向发展:(1)对传统关系模型进行扩充,以实现关系模型嵌套,支持关系继承及关系函数等。(2)用面向对象的思维方式与方法来描述客观实体,支持面向对象建模,支持对象存取与持久化,支持代码级面向对象数据操作,形成面向对象数据模型。(3)XML从数据交换领域发展到了数据存储与业务描述领域,数据库系统已支持对XML的存储与处理。(4)研究新的数据模型,在数据构造器与数据处理原语上都有了新的突破。第二节数据库设计

1.2.1概念模型1.2.2用E-R方法表示概念模型1.2.3逻辑数据模型1.2.4数据库系统1.2.5数据库管理系统(DBMS)1.2.6数据库应用系统(DBAS)1.2.1概念模型概念模型的用途概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言对概念模型的基本要求较强的语义表达能力简单、清晰、易于用户理解在概念模型中主要有以下几个基本术语。1.实体与实体集2.属性3.关键字和域4.联系1.实体与实体集实体是现实世界中可区别于其他对象的“事件”或物体。实体可以是人,也可以是物;可以指实际的对象,也可以指某些概念;还可以指事物与事物间的联系。例如,学生就是一个实体。实体集是具有相同类型及共享相同性质(属性)的实体集合。如全班学生就是一个实体集。实体集可以相交。2.属性属性是实体集中每个成员所具有的描述性性质。将一个属性赋予某实体集表明数据库为实体集中每个实体存储相似信息,但每个实体在每个属性上都有各自的值。一个实体可以由若干个属性来刻画。每个实体的每个属性都有一个值,例如,某个特定的student实体,其学号是201206304F2,姓名是邱舒娅,年龄是13,性别是女。3.关键字和域实体的某一属性或属性组合,其值能唯一标识出某一实体,称为关键字,也称码。如学号是学生实体集的关键字,由于姓名有相同的可能,故不应作为关键字。每个属性都有一个可取值的集合,称为该属性的域,或者该属性的值集。如姓名的域为字符串集合,性别的域为“男”和“女”。4.联系现实世界的事物之间总是存在某种联系,这种联系可以在信息世界中加以反映。一般存在两种类型的联系:实体内部的联系,如组成实体的属性之间的联系;实体与实体之间的联系。两个实体之间的联系可以分为3类●一对一联系(1:1)●一对多联系(1:N)●多对多的联系(M:N)1.2.2用E-R方法表示概念模型概念模型的表示方法很多,其中最著名的是E-R方法(Entity-Relations,即实体-联系方法),它用E-R图来描述现实世界的概念模型。E-R图的主要成分是实体、联系和属性。E-R图通用的表现规则如下。●矩形:表示实体集。●椭圆:表示属性。●菱形:用菱形表示实体间的联系,1.2.3逻辑数据模型数据库中的数据是结构化的,这是按某种数据模型来组织的。当前流行的逻辑数据模型有3类:层次模型网状模型关系模型它们之间的根本区别:层次模型是用树结构来表示数据之间的联系;网状模型是用图结构来表示数据之间的联系;关系模型是用二维表来表示数据之间的联系。1.2.4数据库系统数据系统的组成数据用户硬件软件1.数据数据是数据库系统的工作对象。为了区别输入、输出或中间数据,常把数据库数据称为存储数据、工作数据或操作数据。它们是某特定应用环境中进行管理和决策所必需的信息。特定的应用环境,可以指一个公司、一个银行、一所医院和一个学校等。在这些应用环境中,各种不同的应用可通过访问其数据库获得必要的信息,以辅助进行决策,决策完成后,再将决策结果存储在数据库中。2.用户用户是指存储、维护和检索数据库中数据的人员。数据库系统中主要有3类用户:终端用户应用程序员数据库管理员(DBA)3.硬件数据库系统对硬件资源的要求足够大的内存足够的大的磁盘或磁盘阵列等设备较高的通道能力,提高数据传送率4.软件数据库管理系统支持数据库管理系统运行的操作系统与数据库接口的高级语言及其编译系统以数据库管理系统为核心的应用开发工具为特定应用环境开发的数据库应用系统数据库系统的特点数据结构化数据的共享性高,冗余度低且易扩充数据独立性高数据由数据库管理系统统一管理和控制数据结构化整体结构化不再仅仅针对某一个应用,而是面向全组织不仅数据内部结构化,整体是结构化的,数据之间具有联系数据记录可以变长数据的最小存取单位是数据项数据的用数据模型描述,无需应用程序定义数据的共享性高,冗余度低且易扩充数据面向整个系统,可以被多个用户、多个应用共享使用。数据共享的好处减少数据冗余,节约存储空间避免数据之间的不相容性与不一致性使系统易于扩充数据独立性高物理独立性指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。数据独立性由数据库管理系统的二级映像功能来保证。数据由数据管理系统统一管理和控制数据库管理系统提供的数据控制功能(1)数据的安全性(Security)保护保护数据以防止不合法的使用造成的数据的泄密和破坏。(2)数据的完整性(Integrity)检查保证数据的正确性、有效性和相容性。(3)并发(Concurrency)控制对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。(4)数据库恢复(Recovery)将数据库从错误状态恢复到某一已知的正确状态。1.2.5数据库管理系统什么是数据库管理系统位于用户与操作系统之间的一层数据管理软件是基础软件,是一个大型复杂的软件系统

数据库管理系统的用途科学地组织和存储数据、高效地获取和维护数据数据库管理系统的主要功能数据定义功能提供数据定义语言(DDL)定义数据库中的数据对象数据组织、存储和管理功能分类组织、存储和管理各种数据确定组织数据的文件结构和存取方式实现数据之间的联系提供多种存取方法提高存取效率数据库管理系统的组成●语言编译处理程序●系统运行控制程序●系统建立、维护程序●事务运行管理1.2.6数据库应用系统(DBAS)数据库应用系统,简称DBAS,是指在DBMS的基础上,针对一个实际问题开发出来的面向用户的系统。数据库应用系统是由数据库系统、应用程序系统和用户组成的,具体包括:数据库数据库管理系统数据库管理员硬件平台软件平台应用软件应用界面ThankYou!第2章MySQL安装和配置主要内容2.2MySQL8安装与运行2.1MySQL简介如何安装MySQL,MySQL两种安装方式

2.1MySQL简介MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下公司。MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。体积小、速度快、成本低、开放源代码等特点。2.2MySQL安装与运行2.2.1安装包方式安装在MySQL官网下载社区版mysql-installer-community-,此版本为免费的。(1)选择接受许可条款“Iacceptthelicenseterms”(2)如果只想安装MySQL服务,选择“Serveronly”,建议选择Serveronly”,点击“Next”(3)点击“Execute”,执行安装(4)安装完成点击下一步(5)进行服务配置,MySQL默认端口为3306(6)为root用户设置密码。可添加一个具有普通用户权限的MySQL用户账户,也可不添加,一般不添加用户,而是用root账户。(7)以系统用户运行windows服务,在Windows下MySQL服务名为:mysql56,后面步骤将讲到mysql56的用处。而且要牢牢记住此名字。(8)请求服务配置(9)产品配置信息,安装MySQLServer5.6.31完成。(10)

配置环境变量

前面步骤完成后安装好MySQL,为MySQL配置环境变量。MySQL默认安装在C:\ProgramFiles下。1)新建MYSQL_HOME变量,并配置:C:\ProgramFiles\MySQL\MySQLServer5.6MYSQL_HOME:C:\ProgramFiles\MySQL\MySQLServer5.62)编辑path系统变量,将%MYSQL_HOME%\bin添加到path变量后。配置path环境变量,也可不新建MYSQL_HOME变量,而是直接将MySQL安装目录下的bin配置到path变量下,即:C:\ProgramFiles\MySQL\MySQLServer5.6\binPath:%MYSQL_HOME%\bin或Path:C:\ProgramFiles\MySQL\MySQLServer5.6\bin测试是否安装成功以管理员权限运行命令提示符,用netstartmysql56启动MySQL服务。用netstopmysql56关闭MySQL服务。其中mysql56为Windows下MySQL的服务名。2.2.2压缩包安装方式从官网上下载mysql-5.6.31-winx64.zip,将其解压,接下来的安装是通过命令来安装MySQL数据库的。(1)mysql-5.6.31-winx64.zip解压到E:\JavaWebDeveloper\文件下,打开命令提示符以管理员身份运行,cd到E:\JavaWebDeveloper\mysql-5.6.31-winx64\bin下命令为:cd

/d

E:\JavaWebDeveloper\mysql-5.6.31-winx64\bin(2)安装MySQL

mysqld

install,运行命令后MySQL安装成功。(3)启动MySQL服务。netstartmysql将启动MySQL服务。值得注意的是用命令安装的MySQL在Windows系统下默认服务名为mysql,默认密码为空。(4)配置环境变量1)新建MYSQL_HOME变量,并配置值为:E:\JavaWebDeveloper\mysql-5.6.31-winx64MYSQL_HOME:E:\JavaWebDeveloper\mysql-5.6.31-winx642)编辑path系统变量,将%MYSQL_HOME%\bin添加到path变量后。配置path环境变量,也可不新建MYSQL_HOME变量,而是直接将MySQL安装目录下的bin配置到path变量下,Path:%MYSQL_HOME%\bin(5)进入MySQLmysql-uroot-p,密码默认为空。显示“mysql>”表示进入MySQL,可用T-SQL语句对数据库执行各种操作。也可用数据库图形化管理工具对数据库进行管理2.3数据库图形化管理工具navicatformysql10.0.11和SQLyog.Ultimate.v32bit&64bit,这两个管理工具各有优点,可从网上自行下载。ThankYou!第3章数据类型主要内容3.2MySQL的数据类型3.1何为数据类型3.3性能3.4应该选择何种数据类型3.1何为数据类型列的数据类型定义了可存储何种类型的值,以及如何存储。另外,也可能存在与数据类型关联的一些元属性,如大小(例如用于数字的字节数,字符串中包含的最大字符数量等),以及用于字符串的字符集和排序规则等。尽管数据类型属性似乎不是什么必要的限制,但它们也自有好处。其中包括:数据验证文档优化存储性能正确排序3.1.1数据验证数据类型概念的核心,就是定义所允许的值类型。定义为整数类型的列,只能存储整数值。这是一种保障措施。也是一种限制。3.1.2文档MySQL提供了多种用来记录列的方法:使用可描述值的列名、COMMENT列子句、CHECK约束以及数据类型。数据类型有助于描述你所期望的数据类型。如果选择date列而不是datetime列,那么显然你打算只存储日期部分。使用tinyint而非int,则表明你更期望使用较小的值。设置恰当的数据类型可以间接地帮助优化查询。3.1.3优化存储MySQL会以不同的方式来存储所有数据。选择给定数据类型的存储格式,应该使其尽可能紧凑,以便减少存储空间。选择正确的列最大容量,可减少所需的存储空间。注意不要过度优化。很多情况下,更改数据类型或列的大小需要重建整张表。如果表很大,这样做代价很高。3.1.4性能各种数据类型在创建时成本不同。通过选择正确的数据类型,就可显著提升查询性能。如果两个列的值相对应,要确保它们具有相同的数据类型,包括字符集和字符串排序规则。3.1.5正确排序日期类型对值的排序方式具有重大影响。虽然人脑可以很直观地理解数据,但计算机则需要一些帮助才能理两个值之间是如何进行比较的。因此,数据类型和如何对比字符串将是用于确保数据能正确排序的关键属性。排序的重要原因有二:正确的排序可以快速知道两个值是否相等,或者一个值是否在给定范围内。创建索引时,排序能确保MySQL快速找到你想要的值。3.2MySQL的数据类型1.整型数据类型Bigint数据类型可以表示-263~263-1范围内的所有整数。在数据库中占用8个字节。int数据类型可以表示-231~231-1范围内的所有整数。在数据库中占用4个字节。Smallint数据类型可以表示-215~215-1范围内的所有整数。在数据库中占用2个字节。这种数据类型对表示一些常常限定在特定范围内的数值型数据非常有用。Tinyint数据类型可以表示0~255之间的整数,在数据库中占用1个字节。这种数据类型对表示有限数目的数值型数据非常有用。2.浮点型数据类型浮点型数据类型可以表示包含小数的十进制数。包含精确数值型和近似数值型。(1)精确数值型(2)近似数值型:不能精确记录数据的精度,所保留的精度由二进制数字系统的精度决定。SQLsever提供了两种近似数值型数据类型。3.字符型数据类型字符类型表示符号用法ANSI字符char存储指定长度的字符串varchar存储可变长度字符text存储大量非Unicode字符Unicode字符nchar用于存储Unicode字符nvarchar与varchar类似,存储可变长度Unicode字符ntext与text类似,存储大量Unicode字符数据char类型存储字符数据时,每一个字符占一个字节大小。使用char类型时,应该给定数据的最大长度,定义格式为:char(n)如果没有指定n的大小,默认值是1,最长可以容纳8000个字符;如果实际数据的字符长度大于给定的最大长度时,超过的字符将会被截断;若实际数据的字符长度小于给定的最大长度时,多余的字节被系统使用空格填充。varchar的使用方式与char基本相同。它们的区别在于:当列中字符长度基本一致时(如学号、姓名等),可以使用char类型;当数据长度相差较大时(如备注),使用varchar类型可以节省存储空间;当数据有可能涉及到英语外其他语言时,应该使用Unicode字符编码。每一个Unicode字符需要两个字节存储,因此,Unicode格式比ANSI格式有更大的字符集范围:ANSI字符集仅有256个字符,Unicode字符集有65536个不同的字符。使用Unicode字符可以在表的一个列中同时出现中文、英文、法文等,而不会出现编码冲突。通常使用以下方式来表示Unicode字符:

N’Unicode字符’nchar和nvarchar分别用于存储固定长度和可变长度的Unicode字符数据;text和ntext,分别对应存储长度很大的ANSI字符和Unicode字符数据。微软公司建议,用户应该避免使用text和ntext数据类型,而使用varchar和nvarchar存储大文本数据。4.日期时间数据类型data数据类型:只存储日期型数据类型,存储用字符串表示的日期数据,不存储时间数据,可以表示取值范围从0001-01-01到9999-12-31(公元元年1月1日到公元9999年12月31日)间的任意日期值。引入date类型,克服了datetime类型中既有日期又有时间的缺陷,使对日期的查询更加方便。数据格式为“YYYY-MM-DD”:YYYY:用来表示年份的四位数字,其取值范围为0001~9999;MM:用来表示指定年份中月份的两位数字,其取值范围为01~12;DD:用来表示指定月份中某一天的两位数字,其取值范围为01~31(其最高值取决于具体的月份天数)。time数据类型:与date数据类型类似,以字符的形式记录一天的某个时间。如果只想存储时间数据而不需要存储日期部分就可以利用time数据类型,取值范围从00:00:00.0000000到23:59:59.9999999。数据格式为“hh:mm:ss[.nnnnnnn]”:hh:用来表示小时的两位数字,其取值范围为0~23。mm:用来表示分钟的两位数字,其取值范围为0~59。ss:用来表示秒的两位数字,其取值范围为0~59。n*是0~7为数字,其取值范围为0~9999999,它表示秒的小部分。time值在存储时占用的空间是5个字节。Datetime:Datetime可以用来表示从1753年1月1日到9999上12月31日之间的日期和时间数据,当插入数据或在其它地方使用时,需用单引号或双引号括起来。该类型数据占用8个字节的空间。精确度为3%s(3ms或0.003s)。Smalldatetime:Smalldatetime类型与Datetime类型相似,其表示的是自1900年1月1日到2079年12月31日之间的的日期和时间数据,精确度为1分钟。当日期时间精度较小时,使用Smalldatetime,该类型数据占用4个字节的存储空间。datetime2数据类型:datetime2是datetime的扩展类型,是一种将日期和时间混合的数据类型,不过其时间部分秒数的小数部分可以保留不同位数的值,比datetime数据类型的取值范围更广,默认的最小精度最高,并具有可选的用户定义的精度。可以存储从公元元年1月1日到9999年12月31日的日期。用户可以根据自己的需要设置不同的参数来设定小数位数,最高可以设定到小数点后七位(参数为7),也可以不要小数部分(参数为0),以此类推。datetimeoffset数据类型:用于存储与特定的日期和时区相关的日期和时间,采用24小时制与日期相组合并可识别时区的时间。这种数据类型的日期和时间存储为协调世界时(CoordinatedUniversalTime,UTC)的值,然后,根据与该值相关的时区来定义要增加或减少的时间数。datetimeoffset类型是由年、月、日、小时、分钟、秒和小数秒组成的时间戳结构。小数秒的最大小数位数为7。5.位数据类型Bit称为位数据类型,只能取0或1为值,其长度为1字节。Bit数据类型可以表示1、0或NULL数据。Bit用作条件逻辑判断时,可以来判断TRUE(1)或FALSE(0)数据,输入非零值时,系统会将其替换为1。6.货币数据类型货币数据类型可以用于存储货币或现金值,其包括MONEY型和SMALLMONEY型两种。在使用货币数据类型时,需要在数据前加上货币符号,以便系统辨识其为哪国的货币,如果不加货币符号,则系统默认为“¥”。MONEY:用于存储货币值,存储在Money数据类型中的数值以一个正数部分和一个小数部分存储在两个4字节的整型值中,其取值范围从-263~263-1,精确到货币单位的千分之十。Money数据类型中整数部分包含有19个数字,小数部分包含有4个数字,因此Money数据类型的精度是19,存储时占用的存储空间为8个字节。SMALLMONEY:与MONEY数据类型类似,取值范围为-214748.3648~214748.3647,其存储的货币值范围比MONEY数据类型小,SMALLMONEY存储时占用的存储空间为4个字节。7.二进制数据类型二进制数据类型包括Binary[(n)]和varbinay[(n)]两种:Binary[(n)]:表示固定长度的n个字节的二进制数据。n取值必须在1~8000范围内,在数据库中存储在n个字节中。varbinay[(n|max)]:表示可变长度的二进制数据。n取值必须在1~8000范围内。Max表示最大存储大小为231-1字节。对于varbinary类型的数据,存储大小为所输入数据的实际长度加2个字节。8.文本和图形数据类型文本和图形数据类型如下:Text数据类型:用来声明变长的字符数据,用于存储文本数据,服务器代码页中长度可变的非Unicode数据。在定义过程中,不需要指定字符的长度,最大长度为231-1个字节。当服务器代码页使用双字节时,存储量仍为231-1个字节。存储大小也可能小于231-1个字节(取决于字符串)。Ntext数据类型:ntext数据类型与text数据类型的作用相同,是长度可变的Unicode数据,其最大长度范围是230-1个字节,我存储大小是输入字符个数的两倍。Image数据类型:表示可变长度的二进制数据,范围在0~231-1字节之间。用来存储照片、目录图片或者图画等,其存储量也是231-1个字节。Image类型的数据是由系统根据数据的长度来自动分配空间,存储该字段的数据一般不能使用insert语句直接输入。二进制常量以0x(一个零和小写字母x)开始,后面跟位模式的十六进制表示。0x2A表示的是十六进制值2A,它等于十进制的数值42或者单字节位模式的00101010。9.其他数据类型除了以上数据类型以外,系统数据类型还有如下几种:Cursor:游标数据类型,该类型类似于数据表,它保存的数据中包含行和列值,但是没有索引,游标通常用来建立一个数据的数据集,用于创建游标变量或者定义存储过程的输出参数,每次处理一行数据。它是唯一一种不能赋值给表的列字段的基本数据类型。table数据类型:table数据类型可以用于存储对表或视图处理后的结果集,能够用来保存函数结果,并将其作为局部变量数据类型,可以暂时存储应用程序的结果,以便在以后用到,从而使函数或过程返回查询结果更加方便、快捷。rowversion:每个数据都有一个计数器,如果对数据库中包含rowversion列的表执行插入或者更新操作,那么该计数器数值就会增加。Rowversion是公开数据库中自动生成的唯一二进制数字的数据类型。rowversion通常用作给表行加版本戳的机制。在数据库中存储大小为8个字节。rowversion数据类型只是递增的数字,并不保留日期或时间。TIMESTAMP:是一个特殊的用于表示先后顺序的时间戳数据类型。该数据类型可以为表中数据行加上一个版本戳。timestamp的数据类型为rowversion数据类型的同义词,提供数据库范围内的唯一值,能够反映数据修改的唯一顺序,是一个单调上升的计数器,此列的值是被自动更新的。实现timestamp数据类型最初是为了支持SQLServer恢复算法。每一个数据库都有一个时间戳计数器,当对该数据库中包含timestamp列的表执行插入或更新操作时,计数器值就会增加。这样,可以轻易地确定表中的某个数据行的值是否在上次读取后发生了更新:如果发生了更新,则该时戳计数器的值也发生了变化。可以使用@@DBTS函数返回数据库的时戳值。UNIQUEIDENTIFIER:UNIQUEIDENTIFIER是一个具有16字节的全球唯一性标志符(GloballyUniqueIdentifier,GUID),能够用来确保对象的唯一性。在定义列或变量时可以使用该数据类型,在合并复制和事务复制中确保表中数据行的唯一性。sql_variant:能够用于存储除了文本、图形数据和timestamp数据以外的其它任何合法的SqlServer数据,sql_variant数据类型可以方便SqlServer的开发工作。该数据类型可以用在列、变量、用户定义的函数等返回值中XML:XML是用于存储XML数据的数据类型。可以像使用Int数据类型一样使用XML数据类型。能在列中或者xml类型的变量中存储xml实例。需要注意的是,在XML数据类型中存储的数据实例的最大值不能超过2GB。3.2MySQL数据库类型MySQL中的数据类型可分为如下几类。数值类型(Numeric):这包括整数、固定精度的十进制类型、近似精度的浮点类型,以及位(bit)类型。日期和时间类型(Temporal):这包括年、日期、时间、日期和时间以及时间戳。字符串类型(Strings):包括二进制对象和带有字符集的字符串。JSON类型(JSON):用于存储JSON文档。空间数据类型(Spatial):用于存储描述坐标系统中的一个或多个点的值。混合数据类型(Hybrid):MySQL中有两种数据类型,既可作为整数类型,也可作为字符串类型。3.2.1数值类型数值类型是MySQL支持的最简单的数据类型。可在整数、固定精度的十进制以及近似浮点型之间进行选择。表3-1总结了MySQL中的数值类型。包括它们的存储需求(以字节为单位)以及支持的值的范围。对于整数而言,可以选择值是有符号还是无符号的,这会影响支持的值的范围。对于支持的值,其起始值和结束值都包含在所允许的值范围内。MySQL中的数值类型表数据类型存储字节范围tinyint1有符号:-128~127无符号:0~255smallint2有符号:-32768~32767无符号:0~65535mediumint3有符号:-8388608~8388607无符号:0~16777215int4有符号:-2147483648~2147483647无符号:0~4294967295bigint8有符号:-263~263-1无符号:0~264-1decimal(M,N)1~29取决于M和Nfloat4可变double8可变bit(M)1~83.2.2日期和时间类型日期和时间类型的数据定义了一个时间点。精度范围从1年到1微秒。除了年数据类型外,值均以字符串形式输入,不过内部则使用优化的数据格式,并且这些值将根据其所表示的时间点进行正确排序。表3-2列出MySQL支持的日期和时间数据类型,也包括每种类型使用的字节存储量,以及支持的值范围。表3-2

日期和时间数据类型数据类型存储的字节数范围year11901~2155date3~6'1000-01-01'到'9999-12-31'datetime5~8'1000-01-0100:00:00.000000'到'9999-12-3123:59:59.999999'timestamp4~7'1970-01-0100:00:00.000000'到'2038-01-1903:14:07.999999'time3~6'38:59:59.000000'到'838:59:59.000000'3.2.3字符串与二进制类型字符串和二进制类型是用于存储任意数据的非常灵活的类型。二进制值和字符串之间的区别在于,字符串有与之关联的字符集,因此MySQL知道该如何解释数据。另一方面,二进制则存储原始数据,这意味着可将其用于任何类型的数据,包括图形以及自定义数据格式的数据。数据类型存储字节最大长度char(M)M*字符宽度255个字符varchar(M)L+1或L+2对于utf8mb4而言,为16383个字符;对于latin1而言,为65532个字符tinytextL+1255字节textL+265535字节mediumtextL+316777216字节longtextL+44294967296字节binary(M)M255字节varbinary(M)L+1或者L+265535字节tinyblobL+1255字节blobL+265536字节mediumblobL+316777216字节longblobL+44294967296字节3.2.4JSON数据类型JavaScript对象表示法(JSON)格式是一种比关系型表更灵活的流行数据存储格式,也是MySQL8为文档存储选择的格式。MySQL5.7开始引入对JSON数据类型的支持。在MySQL8中,JSON文档的一项与性能相关的功能是支持部分更新操作。这样就可对JSON文档进行更新,这不仅减少了更新操作时完成的工作量,还可只将部分更新写入二进制日志。当然,对于这样的原地(in-place)更新操作,还是有一些要求的。具体如下:● 只支持JSON_SET()、JSON_REPLACE()和JSON_REMOVE()函数。● 只支持列内更新。也就是说,不支持将列的值设置为在另一列上运行上述3个函数所得到的返回值。● 必须是对现有值的替换操作。如果是添加新的对象或数组元素,则会导致整个文档被重写。● 新值最多只能与被替换的值容量相同。3.2.5空间数据类型空间数据用于在坐标系中指定一个或多个点,从而可能形成一个对象(如多边形等)。比如说,这对于指定某一个对象在地图上的位置时就很有用。MySQL8增加了对指定使用哪个参照系统的支持;这称为空间参照系统标识符(SRID)。有超过5000种参照系统可选。并且每一个空间值都有一个与之相关的参照系统,使得MySQL能正确识别两个值之间的关系。例如,计算两个点之间的距离等。为将地球作为参照系统,则需要将SRID设置为4326。3.2.6混合数据类型MySQL中有两种结合了整数和字符串属性的特殊数据类型:枚举(enum)和集合(set)。二者都可视为值的集合。不同之处在于枚举类型允许你精确选择一个可能的值,而集合类型则允许你选择任意可能的值。使枚举和集合类型为混合数据类型的原因,在于可将它们用作整数和字符串。而字符串又是最常见和对用户最友好的。在MySQL内部,这些值被存为整数,因而可紧凑高效地存储数据,同时在设置或查询数据时依然允许使用字符串。这两种数据类型也可使用查找表来实现。3.3性能数据类型的选择不仅在数据完整性方面很重要,它能够告知你期望使用何种数据类型,而且不同数据类型有着不同的性能特征。本节将探讨在选择不同数据类型时,其性能表现各自如何。一般来说,数据类型越简单,性能就越好。整数具有最佳的性能,浮点数(近似值)其次。十进制数(精确值)比浮点数具有更高的成本开销。二进制对象比文本字符串性能要好,因为二进制对象没有字符集相关的开销。3.4应该选择何种数据类型选择数据类型依据如下问题:数据的原生格式是什么?期望的最大值是多少?值的大小会随着时间的推移而增长吗?如果是这样,会增长多少?增长速度有多快?查询数据的频率是怎样的?你期望有多少个唯一值?需要索引吗?该列是表的主键吗?你是否需要存储数据,或者能否通过其他表的外键(使用整数型参考列)来获取数据?ThankYou!第4章创建和管理表与关系主要内容4.2创建表和视图4.1打开和保存文件4.3创建关系本章学习目标:本章的学习目标:打开和保存文件创建表和视图添加表添加列添加索引添加外键添加视图创建关系4.1打开和保存文件DataModeling元素中有4个初始选项。当有一个EER模型存在时,用户可以打开它,用户也可以创建一个新的EER模型,从一个现存的数据库中创建一个新的EER模型(称为逆向工程),或者是从一个现存的SQL脚本中创建一个新的EER模型。在这个屏幕中创建EER。文件选择过程会打开一个操作系统上的对话框。下面的插图来自这个产品在Windows上的一个安装版。通过单击Save按钮将MySQL.mwb文件保存在C:\ProgramFiles\MySQL5518\MySQLServer5.5\data文件夹(或目录)中。如图4-4所示。4.1.1系统数据库SQLServer系统数据库存储SQLServer的系统信息,它们是管理SQLServer的依据。SQLServer包含如下几个系统数据库:Master是整个数据库服务器的核心,包含了SQLServer诸如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQLServer的运行。Model为新创建的数据库提供模板。Msdb为SQLServerAgent调度信息和作业记录提供存储空间。tempdb是SQLServer中的一个临时数据库,用于存储查询过程中所使用的中间数据或结果,它只是一个系统的临时工作空间。Resource数据库是一个被隐藏的、只读的、物理的系统数据库,包含了MySQL实例使用的所有系统对象。系统对象在物理上都存储在Resource数据库中,但在逻辑上显示在每个数据库的sys架构中。4.1.2数据库的创建、修改和删除1.数据库的创建和修改创建MySQL8数据库:通过Transact-SQL语句创建。【例4-1】使用Transact-SQL语句创建数据库jxgl,数据文件的初始大小为5MB,最大长度为50MB,数据库自动增长,增长方式是按10%比例增长;日志文件初始大小为2MB,最大可增长到5MB(为不限制),按1MB增长(默认是按10%比例增长);所有者是Adimistrator.1.创建数据库createdatabasejxgl onprimary (name='jxgl_data', filename='e:\sql\jxgl_data.mdf', size=5MB, maxsize=50Mb, filegrowth=10% ) logon (name='jxgl_log', filename='e:\sql\jxgl_log.ldf', size=2mb, maxsize=5MB, filegrowth=1MB )Go使用T-SQL命令创建数据库CREATEDATABASEdatabase_nameON{[PRIMARY](NAME=logical_file_name,FILENAME='os_file_name'[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=growth_increment])}[,....n]LOGON{[[PRIMARY](NAME=logical_file_name,FILENAME='os_file_name'[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=growth_increment])}[,....n]createdatabasetest1 on (name='test1', filename='e:\sql\test1.mdf' )go例4-2创建TEST1数据库说明:TEST1数据库只包含一个主数据文件和一个主日志文件,它们均采用系统默认文件名,其大小分别为model数据库中主数据文件和日志文件的大小。例4-3创建一个名为TEST2的数据库,它有2个数据文件,其中主数据文件为100MB,最大大小为200MB,按20MB增长;1个辅助数据文件为20MB,最大大小不限,按10%增长;有2个日志文件,大小均为50MB,最大大小均为100MB,按10MB增长。createdatabasetest2 on (name='test2_data1', filename='e:\sql\test2_data1.mdf', size=100mb, maxsize=200mb, filegrowth=20mb ), (name='test_data2', filename='e:\sql\test2_data2.ndf', size=20mb, maxsize=unlimited, filegrowth=10% ) logon (name='test2_log1', filename='e:\sql\test2_log1.ldf', size=50mb, maxsize=100mb, filegrowth=10mb ), (name='test2_log2', filename='e:\sql\test2_log2.ldf', size=50mb, maxsize=100mb, filegrowth=10mb )go例4-4:创建一个有3个文件组的数据库test3。主文件组包括文件test3_data1,test3_data2,文件初始大小均为20MB,最大为60MB,按5MB增长;第2个文件组名为testgoup1,包括文件test3_data3,test_data4,文件初始大小为10MB,最大为30MB,按10%;第3个文件组名为testgroup2,包括文件test3_data5,文件初始大小为10MB,最大为50MB,按15%增长。该数据库只有一个日志文件,初始大小为20MB,最大为50MB,按5MB增长。createdatabasetest3onprimary (name='test3_data1', filename='e:\学号姓名\test3_data1.mdf', size=20mb, maxsize=60mb, filegrowth=5mb ), (name='test3_data2', filename='e:\学号姓名\test3_data2.mdf', size=20mb, maxsize=60mb, filegrowth=5mb ),filegrouptest3group1 (name='test3_data3', filename='e:\学号姓名\test3_data3.mdf', size=10mb, maxsize=30mb, filegrowth=10% ), (name='test3_data4', filename='e:\学号姓名\test3_data4.mdf', size=10mb, maxsize=30mb, filegrowth=10% ),filegrouptest3group2 (name='test3_data5', filename='e:\学号姓名\test3_data5.mdf', size=10mb, maxsize=50mb, filegrowth=15% )logon (name='test3_log', filename='e:\学号姓名\test3_log.ldf', size=20mb, maxsize=50mb, filegrowth=5mb )4.1.3修改数据库1使用SQLSERVERMANAGEMENTSTUDIO图形界面修改使用SQLSERVERMANAGEMENTSTUDIO图形界面修改数据库的操作步骤如下:(1)在对象资源管理器中,展开数据库实例下的“数据库”节点;(2)右键单击需要修改的数据库名称,从弹出的快捷菜单中选择“属性”命令,打开指定的数据库的“数据库属性”窗口,这个窗口与在SQLServerManagementStudio中创建数据库时打开的窗口相似,这里多出了一些选项:更改跟踪、权限、扩展属性、镜像和事务日志传送。用户可以根据实际的需要,分别对不同的选项卡中的内容进行设置。(3)修改数据库中需要改动的属性参数,修改完成后,单击“确定”按钮即可。4.1.3使用SSMS图形界面修改1).改变数据文件的大小和增长方式例5.将jxgl数据库的主数据文件jxgl.mdf的最大大小由50MB修改为不限制.4.1.3使用SSMS图形界面修改2)增加数据文件例4-6在jxgl数据库中增加数据文件jxglbak,其属性均取系统默认值.

当原有数据库的存储空间不够用时,除了可以采用扩大原有数据文件的存储量的方法之外,还可以增加新的数据文件;或者从系统管理的需求出发,采用多个数据文件来存储数据,以免数据文件过大,此时,也会用到向数据库中增加数据文件的操作。增加的数据文件是辅助文件。4.1.3使用SSMS图形界面修改3).删除数据文件例4-7将jxgl数据库中刚增加的辅助jxglbak删除。当数据库中的某些数据文件不再需要时,应及时删除,在SQL中只能删除辅助数据文件,而不能删除主数据文件。因为在主数据文件中存放着数据库的启动信息,删除后,数据库将无法启动。4.1.3使用SSMS图形界面修改4).增加或删除文件组例4-8在jxgl数据库中增加一个名为Fgroup的文件组.例4-9将刚才新增的Fgroup文件组删除。说明:不能删除主文件组(PRIMARY)。可以删除用户定义的文件组。4.1.4使用Transact-SQL语句修改数据库ALTERDATABASEdatabase_name{ADDFILE<filespec>[,...n][TOFILEGROUP{filegroup_name}]|ADDLOGFILE<filespec>[,...n]|REMOVEFILE<filespec>|ADDFILEGROUPfilegroup_name|MODIFYFILEGROUPfilegroup_name{filegrou_property|NAME=new_filegroup_name}4.1.4使用Transact-SQL语句修改数据库1).改变数据文件的初始大小【例4-2】使用Transact-SQL语句修改“jxgl”数据库的主数据文件的初始大小为20MB。ALTERDATABASEjxglMODIFYFILE(name=jxgl_data,

size=20mb)例4-10:设已经创建了数据库jxgl,它只有一个主数据文件,其逻辑文件名为jxgl_data,物理文件名为e:\sql\jxgl_data.mdf,大小为5MB,最大大小为50MB,按10%增长;有一个日志文件,逻辑名为jxgl_log,物理名为e:\sql\jxgl_log.ldf,大小为2MB,最大大小为5MB,每次增长1MB.4.1.4使用Transact-SQL语句修改数据库createdatabasejxgl on (name='jxgl_data', filename='e:\sql\jxgl_data.mdf', size=5MB, maxsize=50MB, filegrowth=10% ) logon (name='jxgl_log', filename='e:\sql\jxgl_log.ldf', size=2MB, maxsize=5MB, filegrowth=1MB )go alterdatabasejxgl modifyfile (name='jxgl_data', maxsize=unlimited )goalterdatabasejxgl modifyfile (name='jxgl_data', filegrowth=5MB )go例4-11:修改数据库jxgl现在数据文件的属性,将主数据文件的最大大小修改为不限制,增长方式修改为按每次5MB增长。说明:Alterdatabase语句一次只能修改数据文件的一个属性,若修改主数据文件的两个属性,需执行两次alterdatabase命令例4-12:先为数据库jxgl增加数据文件jxglbak,初始大小为10MB,最大为50MB,增长方式为5%。然后删除jxglbak.alterdatabasejxgl addfile (name='jxglbak', filename='e:\sql\jxglbak.ndf', size=10MB, maxsize=50MB, filegrowth=5% )Goalterdatabasejxgl removefilejxglbakgo2)增加数据文件【例4-13】为数据库“jxgl”增加数据文件jxglbak,初始大小为10MB,最大为50MB,增长方式为5%。alterdatabasejxgl addfile (name='jxglbak', filename='e:\sql\jxglbak.ndf', size=10MB, maxsize=50MB, filegrowth=5% )go4.1.4使用Transact-SQL语句修改数据库例4-14:为数据库jxgl添加文件组Fgroup,并为文件组添加两个大小均为10MB,最大大小为30MB,增长方式为5MB的数据文件。alterdatabasejxgl addfilegroupFgroupgoalterdatabasejxgl addfile (name='jxgl_data2', filename='e:\sql\jxgl_data2.ndf', size=10MB, maxsize=30MB, filegrowth=5MB ), (name='jxgl_data3', filename='e:\sql\jxgl_data3.ndf', size=10MB, maxsize=30MB, filegrowth=5MB ) tofilegroupFgroupgo4.1.4使用Transact-SQL语句修改数据库3)删除数据文件【例4-15】从数据库“jxgl”中,删除数据文件jxglbak。alterdatabasejxgl removefilejxglbakgoalterdatabasejxgl removefilejxgl_data2goalterdatabasejxgl removefilejxgl_data3goalterdatabasejxgl removefilegroupFgroupGo说明:使用T_SQL命令删除文件组时必须为空,使用菜单可一同删除。例4-16:从数据库中删除文件组,将jxgl数据库中的文件组Fgroup删除,同时删除其中的数据文件。例4-17:为数据库添加一个日志文件,初始大小5MB,最大大小为10MB,文件按1MB方式增长。alterdatabasejxgl addlogfile (name=jxgl_log2, filename='e:\sql\jxgl_log2.ldf', size=5MB, maxsize=10MB, filegrowth=1MB )go

例4-18:从数据库jxgl中删除一个jxgl_Log2日志文件,注意不能删除主日志文件alterdatabasejxgl removefilejxgl_log2go

例4-19:将数据库jxgl中更名为just_test,注意进行此操作时保证该数据库不能被其他任何用户使用。alterdatabasejxgl modifyname=just_testgo

·使用SSMS图形界面例4-20删除数据库jxgl·使用T-SQL语句例4-21Dropdatabasejxgl4.1.5查看数据库信息1.使用SQLSERVERMANAGEMENTSTUDIO图形化管理工具2.使用系统存储过程查看4.1.6重命名数据库语法格式如下:ALTERDATABASEold_database_nameModifyNAME=new_database_name【例4-22】将“jxgl”数据库重新命名为“教学管理”。ALTERDATABASEjxgl MODIFYNAME=教学管理4.1.7删除数据库1.使用SQLSeverStdioManamegent图形化工具删除数据库2.使用T_SQL语句删除数据库

语法格式如下:DROPDATABASEdatabase_name说明: database_name:将要删除的数据库名称

【例4-23】使用T_SQL语句删除“教学管理”数据库。DROPDATABASE教学管理

4.1.8分离数据库和附加数据库1.分离数据库

分离数据库意思就是将数据库从

SQLServer

实例中删除,同时确保数据库在其数据文件和事务日志文件中保持不变。除了系统数据库外,其余的数据库都可以从服务器的管理中分离出来。分离数据库不是删除数据库,只是从服务器中分离出来,保证了数据库的数据文件和日志文件完整无损。分离注意事项:数据库存在数据库快照时不能分离,在分离前,必须删除所有快照。数据库正在被镜像时,不能被分离分离数据库列表中各选项功能:删除链接:表示是否断开与指定数据库的连接。更新统计信息:表示在分离数据库之前是否更新过时的优化信息。保留全文目录:表示是否与数据库相关联的所有全文目录,以用于全文索引。2.附加数据库

将分离的数据库重新附加服务器中,尝试附加未分离的数据库将返回错误。在附加数据库时必须指定主数据文件(MDF)的名称和物理位置。CREATEDATABASEdatabasenameON(FILENAME='D:\Database\dbname.mdf')FORATTACH|FORATTACH_REBUILD_LOGsp_detach_db'databasename‘对于附加数据库,可以使用sp_attach_db存储过程,或者使用带有FORATTACH选项的CREATEDATABASE命令对于这样的附加,涉及到重建日志,需要注意以下几点:如果一个读/写数据库含有一个可用的日志文件,不会对此数据库重建日志文件;如果该数据库日志文件不可用或者物理上没有该日志文件,那么使用FORATTACH或FORATTACH_REBULID_LOG都会重建日志文件。若是要复制一个含有大量日志文件的数据库到另一台服务器中的话,就可以只复制.mdf文件而不用复制日志文件,然后使用FORATTACH_REBULD_LOG选项重建日志。这样做的条件是这台服务器将主要使用或只使用该数据库的副本进行读操作。对一个只读数据库而言,如果日志文件是不可用的,那么就不能更新主文件,所以也就不能重建日志,因此,如果要附加一个只读数据库,那么就必须在FORATTACH子句中指定日志文件。如果使用附加数据库重建了日志文件,因为日志备份链会在使用FORATTACH_REBUILD_LOG时中断,所以进行这种操作之前最好做一次数据库完全备份。3.脱机与联机数据库如果需要暂时关闭某个数据库的服务,用户可以通过选择脱机方式来实现,脱机后在需要的时候可以暂时关闭数据库。4.2创建数据表创建表的方法有以下两种:一种是图形界面方法(即使用SQLServerManagementStudio)创建,另一种是使用Transact-SQL语句进行创建。下面就对这两种方法进行详细介绍。4.2.1使用SQLServerManagementStudio创建表4.2.2使用T-SQL命令创建表usejxglgocreatetable学生(学号char(10),姓名nvarchar(4)notnull,性别nchar(1),系别nvarchar(10),高考入学成绩smallint)例4-24:在jxgl数据库下创建学生表2026年10月15日第181页创建学生表2026年10月15日第182页创建课程表2026年10月15日第183页临时表,在数据库,顾名思义就是起到建立一个临时性的存放某数据集的作中。临时表一般分为:事务临时表的管理、会话临时表事务临时表的话,当事务结束的时候,就会清空这个事务临时表。所以,当我们在数据库临时表中插入数据后,只要事务没有提交的话,该表中的数据就会存在。但是,当事务提交以后,该表中的数据就会被删除。而且,这个变化不会在重做日志中显示。会话临时表,顾名思义,是指数据只在当前会话内有效的临时表。关闭当前会话或者进行新的连接之后,数据表中的内容就会被清除。局部临时表只能被当前登录用户使用,全局临时表可以被不同登录用户使用。其实从局部和全局两个词就能知道。4.2.3管理数据表usejxglgoaltertable学生 add少数民族否bitgo例4-25:在jxgl数据库下修改学生表,增加少数民族否一列,为bit类型。然后在此表中删除此列.altertable学生 dropcolumn少数民族否go1使用SSMS图形修改表2使用T-SQL命令修改表usejxglgoaltertable学生 altercolumn姓名varchar(10)go例4-26:在jxgl数据库下修改student表,将姓名长度由原来的4修改为10;将出生日期由原来的smalldatetime修改为date;altertable学生 altercolumn出生日期datego3查看表

查看表中相关信息查看表中存储的数据查看表与其他数据对象的依赖关系Droptable学生go例4-27:在jxgl数据库下删除学生表4删除表1使用SSMS图形删除表2使用T-SQL命令删除表4.3疑难解惑1.用户定义文件组的优点是什么?2.为什么要用辅助文件?3.逻辑文件名与物理文件名的区别是什么?ThankYou!第5章编辑数据本章学习目标:掌握插入单行记录和多行记录的方法掌握更新记录的方法,包括根据查询子句更新记录的方法掌握删除记录的方法,包括根据查询子句删除记录的方法以及清空表的方法

工作场景导入学校教务处工作人员在工作中经常会遇到更新教学管理数据库中数据的情况。例如,有以下更新需求:新生入学时,需要大批量插入学生的选课信息;学生的选课信息录入出错时需要进行更改;修改各专业培养方案时,会添加一批新课程、修改一批课程的信息,或者删除一批课程。引导问题:如何插入单个记录或多条记录?如何更新记录?如何删除记录?5.1插入数据对教学管理数据库中的表录入数据、修改和删除数据库可以通过SSMS管理器进行操作。5.1.1插入单行数据使用INSERT语句可向指定表中插入数据。INSERT语法的基本结构如下:INSERT[INTO]<table_name>(column_name1,column_name2…,column_namen)VALUES(values1,values2,…,valuesn)其中,INTO关键字是可选的,可以忽略,teble_name指的是表的名称,column_name1,column_name2…,column_namen指的是表中定义的列名称,这些列必须在表中已经定义,VALUES子句中的值values1,values2,…,valuesn指的是要插入的记录在各列中的取值。INSERT语句中的列名必须与VALUES子句中的值一一对应,且数据类型一致。1.最简单的INSERT语句【例5-1】向教学管理数据库中的课程表中增加一门新课程,课程名称为“SQLServer2014”,其先修课为离散数学(课程号为1008),学分为3分。代码如下:INSERTINTO课程(课程号,课程名,先修课程号,学分)VALUES('1007','SQLServer2014','1002',3)2.省

温馨提示

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

评论

0/150

提交评论