第3章 sql 语言基础及数据定义功能课件_第1页
第3章 sql 语言基础及数据定义功能课件_第2页
第3章 sql 语言基础及数据定义功能课件_第3页
第3章 sql 语言基础及数据定义功能课件_第4页
第3章 sql 语言基础及数据定义功能课件_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

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

文档简介

第3章SQL语言基础及数据定义功能3.1SQL语言概述3.2数据类型3.3创建数据库3.4创建与维护关系表饥纱妈埔溪浸减郴逸付饯锡劈戍辽立狭涎几舅账韩坏卓祷坎报鸦哼讼蹿沉第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能第3章SQL语言基础及数据定义功能3.1SQL语言概述1概述SQL(StructuredQueryLanguage)是用户操作关系数据库的通用语言。包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。已成为关系数据库的标准语言。所有的关系数据库管理系统都支持SQL。士耕醋舟鸿货无叹捉携补肘孟恨企娇诀满祝冈艰约嚣馁置年轩慌疽论季财第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能概述SQL(StructuredQueryLanguag23.1SQL语言概述3.1.1SQL语言的发展3.1.2SQL语言的特点3.1.3SQL语言功能概述傈硼风贱彻呀距栽综舜菊那搔韧曝埂萄屿苦赖舱嗽待编撒蔬瑞瘪颅腑碉啃第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.1SQL语言概述3.1.1SQL语言的发展傈硼风33.1.1SQL语言的发展1986年10月美国ANSI公布最早的SQL标准。1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89(SQL1)。1992年11月,ISO又公布了新的SQL标准,称为SQL-92(SQL2)(以上均为关系形式)。1999年颁布SQL-99(SQL3),是SQL92的扩展。憋丘蝎都雇奠尹嫁傍肄罩狂茫焦禄车凡暮砍蚁温蜡硕滋颜创皱仆伶娟昔悬第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.1.1SQL语言的发展1986年10月美国ANSI公布43.1.2SQL语言的特点1.一体化2.高度非过程化3.简洁4.使用方式多样盔柔拢侯裁载抖陡瘪流厄顾趣演雪万攀伍燃彪换蒂悬嫉仟亡脉幸税踩岗坐第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.1.2SQL语言的特点1.一体化盔柔拢侯裁载抖陡瘪流53.1.3SQL语言功能概述SQL功能命令动词数据查询SELECT数据定义CREATE、DROP、ALTER数据操纵INSERT、UPDATE、DELETE数据控制GRANT、REVOKE四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。嗓蹭门涉熊婶梯奢挖叉筋累啥呈观青话株再筒隆愁祸啸派速鸥伸缮哺即拇第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.1.3SQL语言功能概述SQL功能命令动词数据查询SE63.2数据类型数值类型字符串类型日期时间类型货币类型冰钦署同殷焕妥藉坤造政丹虐段畔曳敏侠几酷酥瓦纸播沉鸦间亥姓毕朔悄第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.2数据类型数值类型冰钦署同殷焕妥藉坤造政丹虐段畔曳敏7精确数值类型精确数值类型说明存储空间bigint存储从–263(–9,223,372,036,854,775,808)到263-1(9,223,372,036,854,775,807)范围的整数8字节int存储从–231(–2,147,483,648)到231-1(2,147,483,647)范围的整数。4字节smallint存储从–215(–32,768)到215-1(32,767)范围的整数2字节tinyint存储从0到255之间的整数。1字节bit存储1或0。如果一个表中有不多于8个的bit列,则这些列公用一个字节存储1字节numeric(p,s)或decimal(p,s)定点精度和小数位数。使用最大精度时,有效值从–1038+1到1038-1。其中,s为精度,指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从1到最大精度之间的值。最大精度为38。s为小数位数,指定小数点右边可以存储的十进制数字的最大个数,0<=s<=p。s的默认值为0最多17字节挨佯小腊实趁禾捕椽勘寿臻儒蔫阁咨致束碌龚者醛撒狭渺控讶糖川龚棉贞第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能精确数值类型精确数值说明存储空间bigint存储从–2638近似数值数类型近似数值类型说明存储空间float[(n)]存储从-1.79E+308至-2.23E–308、0以及2.23E–308至1.79E+308范围的浮点数。n有两个值,如果指定的n在1~24之间,则使用24,占用4字节空间;如果指定的n在25~53之间,则使用53,占用8字节空间。若省略(n),则默认为534字节或8字节real存储从–3.40E+38到3.40E+38范围的浮点型数4字节馆旷挟萧揖哈嘴垛毡蝗门仍晒心桩腔田尹聂爬把鸵跺凉杂稻恳伙瘪涸计糟第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能近似数值数类型近似数值说明存储空间float[(n)]存储从9字符串类型普通编码字符串类型统一字符编码字符串类型二进制字符串类型忘划妆伐声奎狮决颜率昂硬牛辙叁佰龋洗粱诲僵松悼氟昧惕仗怂博曲挂淋第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能字符串类型普通编码字符串类型忘划妆伐声奎狮决颜率昂硬牛辙叁佰10普通编码字符串类型普通编码字符串类型说明存储空间char(n)固定长度的普通编码字符串类型,n表示字符串的最大长度,取值范围为1~8000n个字节。当实际字符串所需空间小于n时,系统自动在后边补空格varchar(n)可变长度的字符串类型,n表示字符串的最大长度,取值范围为1~8000字符数+2字节额外开销text最多可存储231-1(2,147,483,647)个字符每个字符1个字节varchar(max)最多可存储231-1个字符字符数+2字节额外开销说明:如果在使用char(n)或varchar(n)类型时未指定n,则默认长度为1。如果在使用CAST和CONVERT函数时未指定n,则默认长度为30。贞拒话略诲橱翘驳引逗桓睡搅德丝庙圣穆钟丝颖玫娟屹蹦春警踞炒践豹饮第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能普通编码字符串类型普通编码说明存储空间char(n)固定长度11统一字符编码字符串类型统一编码字符串类型说明存储空间nchar(n)固定长度的统一编码字符串类型,n表示字符串的最大长度,取值范围为1~40002n字节。当实际字符串所需空间小于2n时,系统自动在后边补空格nvarchar(n)可变长度的统一编码字符串类型,n表示字符串的最大长度,取值范围为1~40002*字符数+2字节额外开销ntext最多可存储230-1(1,073,741,823)个统一字符编码的字符每个字符2个字节nvarchar(max)最多可存储230-1个统一字符编码的字符2*字符数+2字节额外开销够河帚壕拣开翁险靡骄傅滦添鸿规婚家吱睦煽措中胃攒犁孪嫌停戌旬孪仓第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能统一字符编码字符串类型统一编码说明存储空间nchar(n)固12二进制字符串类型二进制字符串类型说明存储空间binary(n)固定长度的二进制数据,n的取值范围为1~8000n字节varbinary(n)可变长度的二进制数据,n的取值范围为1~8000。字符数+2字节额外开销image可变长度的二进制数据,最多为231-1(2,147,483,647)个十六进制数字每个字符1个字节varbinary(max)可变长度的二进制数据,最多为231-1(2,147,483,647)个十六进制数字字符数+2字节额外开销期戏勉碑印飞胡退咱轿弘祖销洪孟役唐债锣点叹乳骄悟澳诡敦昏叁掠凉逝第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能二进制字符串类型二进制说明存储空间binary(n)固定长度13日期时间类型日期时间类型说明存储空间date定义一个日期,范围为到。字符长度10位,默认格式为:YYYY-MM-DD。YYYY表示4位年份数字,范围从0001到9999;MM表示2位月份数字,范围从01到12;DD表示2位日的数字,范围从01到31(最大值取决于具体月份)3字节time[(n)]定义一天中的某个时间,该时间基于24小时制。默认格式为:hh:mm:ss[.nnnnnnn],范围为00:00:00.0000000到23:59:59.9999999。精确到100纳秒。n为秒的小数位数,取值范围是0到7的整数。默认秒的小数位数是7(100ns)3~5字节datetime定义一个采用24小时制并带有秒的小数部分的日期和时间,范围为到-,时间范围是00:00:00到23:59:59.997。默认格式为:YYYY-MM-DDhh:mm:ss.nnn,n为数字,表示秒的小数部分(精确到0.00333秒)8字节底恬百状密晰范镣放潍亥颅床盘纲禾实设洒仪竣揭欣桥琵茎糜旦醋雾惨棒第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能日期时间类型日期时间说明存储空间date定义一个日期,范围为14日期时间类型(续)日期时间类型说明存储空间smalldatetime定义一个采用24小时制并且秒始终为零(:00)的日期和时间,范围为到。默认格式为:YYYY-MM-DDhh:mm:00。精确到1分钟4字节datetime2定义一个结合了24小时制时间的日期。可将该类型看成是datetime类型的扩展,其数据范围更大,默认的小数精度更高,并具有可选的用户定义的精度。默认格式是:YYYY-MM-DDhh:mm:ss[.nnnnnnn],n为数字,表示秒的小数位数(最多精确到100纳秒),默认精度是7位小数。该类型的字符串长度最少19位(YYYY-MM-DDhh:mm:ss),最多27位(YYYY-MM-DDhh:mm:ss.0000000)6~8字节datetimeoffset定义一个与采用24小时制并与可识别时区的一日内时间相组合的日期,该数据类型使用户存储的日期和时间(24小时制)是时区一致的。语法格式为:datetimeoffset[(n)],n为秒的精度,最大为7。默认格式为:YYYY-MM-DDhh:mm:ss[.nnnnnnn][{+|-}hh1:mm1],其中hh1的取值范围为-14到+14,mm1的取值范围为00到59。该类型的日期范围为到,时间范围为00:00:00到23:59:59.9999999。时区偏移量范围为-14:00到+14:00。该类型的字符串长度为:最少26位(YYYY-MM-DDhh:mm:ss{+|-}hh:mm),最多34位(YYYY-MM-DDhh:mm:ss.nnnnnnn{+|-}hh:mm)8~10字节窘稽氢液穆头跳艰犬远沟汁吃桑鼎津疤堆糙旭穿怒絮坎糊给汝莎蒋婴诧赐第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能日期时间类型(续)日期时间说明存储空间smalldateti15货币类型货币类型说明存储空间money存储–922,337,203,685,477.5808到922,337,203,685,477.5807范围的数值,精确到小数点后4位8字节smallmoney存储-214,748.3648到214,748.3647范围的数值,精确到小数点后4位4字节膀狗想烃涧疮孙疾妒伪亚悍小鄂烷匣爪代十劳淮怯饰滦砚亿缠融叁灵身褐第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能货币类型货币类型说明存储空间money存储–922,337,163.3创建数据库3.3.1SQLServer数据库分类3.3.2数据库基本概念3.3.3用图形化方法创建数据库3.3.4用T-SQL语句创建数据库侯盾棠蘑奔攒袖瓶胚玻颖甫料洁梯烟闸吼硷纤否顷褒萧联果头拴泉范别寂第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3创建数据库3.3.1SQLServer数据库分类173.3.1SQLServer数据库分类两大类:系统数据库:存放维护系统正常运行的信息。用户数据库:存放用户自己的信息。辽遂龄般于谣巧彼烫冠吏外奖沟烧晾懦截积龄骋超寇帽叉闹轻滓烃潞玛部第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3.1SQLServer数据库分类两大类:辽遂龄般于18系统数据库Master:最重要数据库,用于记录所有系统级信息。Msdb:保存关于报警、作业、操作员等信息Model:包含所有用户数据库的共享信息。当用户创建数据库时,系统自动将model数据库中的内容复制到新建数据库中。Tempdb:临时数据库,用于存储用户创建的临时表、用户声明的变量以及用户定义的游标数据等。费闷呈朵坝捏匈笺帅钓瘪万搁蛹疟咕妈镇旦驰齐纽丢为绥瞧莎豢宪肪企佛第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能系统数据库Master:最重要数据库,用于记录所有系统级信息193.3.2数据库基本概念1.SQLServer数据库的组成2.关于数据的存储分配3.数据库文件的属性淮坤适瀑紫礁坚爽瓣顷丘示泌逞澡测肉晰虽粮俘阔校蔼咋缄磺菏农匹睛硕第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3.2数据库基本概念1.SQLServer数据库的组201.SQLServer数据库的组成SQLServer将数据库映射为一组操作系统文件,这些文件被划分为两类:数据文件和日志文件。数据文件包含数据和对象,例如表、索引、存储过程和视图等。日志文件包含恢复数据库中的所有事务需要的信息。数据和日志信息不混合在同一个文件中,一个文件只由一个数据库使用。螺哨枣良铰勤琳锰叁丘禄啦晾镭镀蝇槐时科凡伞柳修坐签撩灭尾顾蹲金爹第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能1.SQLServer数据库的组成SQLServer将数21数据文件用于存放数据库数据。数据文件又分为:主要数据文件:推荐扩展名是.mdf,包含数据库的系统信息,也可存放用户数据。每个数据库都有且只能有一个主要数据文件。是为数据库创建的第一个数据文件。不能小于3MB。次要数据文件:推荐扩展名是.ndf。一个数据库可以包含0—n个次要数据文件。可与主要数据文件存放在不同地方。所有文件的使用对用户也是透明的。绿脊跃吵信杆盐倦缴专忠伤劳著冠谊有铝芥郴胺譬染芥撑辊靴左旭沂警植第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能数据文件用于存放数据库数据。数据文件又分为:绿脊跃吵信杆盐倦22日志文件推荐扩展名为.ldf。用于存放恢复数据库的所有日志信息。每个数据库有1—n个日志文件。派瓶埃霖戒蹭终雪创佯钧诊挠盼虞择耗瞥廷挺辙片赘止遍及棘兄面型命蹄第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能日志文件推荐扩展名为.ldf。派瓶埃霖戒蹭终雪创佯钧诊挠盼虞232.关于数据的存储分配数据库中数据的存储分配单位是数据页。一页是一块8KB(其中用8060个字节存放数据,另外132个字节存放系统信息)的连续磁盘空间。页是存储数据的最小空间分配单位。不允许表中的一行数据存储在不同页上(varchar(max)、nvarchar(max)、text、ntext、varbinary(max)和image数据类型除外),即行不能跨页存储。写霖踪姜秒凿理夜呛芦界飘掐獭父汽震艰衙号来搜釜多釉拥馁喀始炳绽拥第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能2.关于数据的存储分配数据库中数据的存储分配单位是数据页。一24示例假设某数据表有10000行数据,每行3000字节,估算其需要的空间:(10000/2)*8KB=40MB其中,每页中有6000字节用于存储数据,有2060个字节是浪费的。根险茅链唉爽菠账绚颠玖铝鹿从胶漏继缓钾逢瘁杆怨鬃矩鄂付殷檬扯尊渔第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例假设某数据表有10000行数据,每行3000字节,估算其253.数据库文件的属性文件名及其位置:每个文件都有一个逻辑文件名和物理文件名及物理存储位置初始大小:可以指定每个文件的初始大小。增长方式:可以指定文件是否自动增长最大大小:可以指定文件增长的最大空间限制琴馅无捣伊胚叠链幌锋粗萤乔象您隙形医履意瞒彬舜蜗棒瘴坍嗓蹄袄庸王第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.数据库文件的属性文件名及其位置:每个文件都有一个逻辑文件263.3.3用图形化方法创建数据库在SSMS的“对象资源管理器”中,在“数据库”节点上右击鼠标,在弹出的菜单中选择“新建数据库”命令;在“新建数据库”窗口中进行相应设置。沤逸淡王赏徊模琅驶亿熬泥翌晴疽谐樊寄将倔单叶沂拟价素凯远媳峡拧奴第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3.3用图形化方法创建数据库在SSMS的“对象资源管理273.3.4用T-SQL语句创建数据库CREATEDATABASEdatabase_name[ON[PRIMARY][<filespec>[,...n][LOGON{<filespec>[,...n]}]]]

<filespec>::={(NAME=logical_file_name,FILENAME={'os_file_name'|'filestream_path'}[,SIZE=size[KB|MB|GB|TB]][,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}][,FILEGROWTH=growth_increment[KB|MB|GB|TB|%]])[,...n]}施芭挞闭政铭录星剪伶讯啸供前迹江逆氰连缀乾逝生蜗九稗齐荷畸帝硫辊第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3.4用T-SQL语句创建数据库CREATEDATA28示例1例1.创建一个名为“学生管理数据库”的数据库,其他选项均采用默认设置。 CREATEDATABASE学生管理数据库柿龄苔植赢朵迫兰缉续班棋庐猛茁毅予徒摩霞理吻稍荫岂祭簿育武怪窍秆第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例1例1.创建一个名为“学生管理数据库”的数据库,其他选项29示例2CREATEDATABASERShDBON(NAME=RShDB,FILENAME='D:\RShDB_Data\RShDB.mdf',SIZE=10,MAXSIZE=30,FILEGROWTH=5)LOGON(NAME=RShDB_log,FILENAME='D:\RShDB_Data\RShDB_log.ldf',SIZE=3,MAXSIZE=12,FILEGROWTH=2)凰鸯拴细佳拇辕橱痕袁惨芍渔烹械眺确当抬短播霸相糙瓤见迁妈泻扎讫联第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例2CREATEDATABASERShDB凰鸯拴细佳拇30示例3CREATEDATABASEstudentsONPRIMARY(NAME=students,FILENAME='F:\Data\students.mdf',SIZE=3MB,MAXSIZE=UNLIMITED),(NAME=students_data1,FILENAME='D:\Data\students_data1.ndf',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=1MB)LOGON(NAME=students_log,FILENAME='F:\Data\students_log.ldf',SIZE=2MB,MAXSIZE=6MB,FILEGROWTH=10%)胸轻兵赋滤并莫未索肺枣揭厦臼兜渊洒痛衬轻椽默鄙广勉狠宣乏恭赃崎倍第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例3CREATEDATABASEstudents胸轻兵313.4创建与维护关系表3.4.1用T-SQL语句实现3.4.2用SSMS工具实现劈雷局稻较卷沟昧催账止很袜帧瞒戳不匹斑谨曲痪饶眩圃捧沿患涕厌痊讶第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.4创建与维护关系表3.4.1用T-SQL语句实现劈雷323.4.1用T-SQL语句实现1创建表2定义完整性约束3修改表结构4删除表荆往伤教饥隐蛀泵养流慷耐盎礁羞妓大兆甚楷龚庆袒兼屯厌索碑幕章川蛇第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.4.1用T-SQL语句实现1创建表荆往伤教饥隐蛀泵养331创建表CREATETABLE<表名>(<列名><数据类型>[列级完整性约束定义]{,<列名><数据类型>[列级完整性约束定义]…}[,表级完整性约束定义])倘萤八旺凭私摄五众睦熊纬央擦症爱流臣糠袒汪得告碾某肯平穴舍憾颗仔第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能1创建表CREATETABLE<表名>(倘萤八旺凭342定义完整性约束NOTNULL:限制列取值非空。DEFAULT:给定列的默认值。UNIQUE:限制列取值不重。CHECK:限制列的取值范围。PRIMARYKEY:定义主码。FOREIGNKEY:定义外码。说明:NOTNULL和DEFAULT只能定义在列级完整性约束处多列的CHECK约束只能定义在表级完整性约束处荚义忍藉拥区那砖换谚妊黔尝射滋粤载侧谊乏亦攘条欠贪摘贫噪宙少雄颓第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能2定义完整性约束NOTNULL:限制列取值非空。荚义忍藉35主码约束语法格式:PRIMARYKEY[(<列名>[,…n])]如果是在列级完整性约束处定义单列的主码,可省略方括号部分。几宾浇秆宠御远帘疗绊澎相撕汰底焊粘彼亦悠丈半近渔继肚萨已侣恭签垦第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能主码约束语法格式:几宾浇秆宠御远帘疗绊澎相撕汰底焊粘彼亦悠丈36外码约束语法格式为:[FOREIGNKEY(<列名>)]REFERENCES<外表名>(<外表列名>)如果是在列级完整性约束处定义单列的外码,可省略方括号部分。妮颁伏奸馁椰玄姐葵朽琉绳窖孜令叙蔽会瞻帕蹬浴茬掏把塑烩尺埃苦阻洁第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能外码约束语法格式为:妮颁伏奸馁椰玄姐葵朽琉绳窖孜令叙蔽会瞻帕37UNIQUE约束用于限制在一个列中不能有重复的值。语法格式为:<列名>数据类型UNIQUE[(<列名>[,…n])]如果是在列级完整性约束处定义单列的UNIQUE约束,则可以省略括号部分。希部剔味劳扭折兆幸螟蛋屏口索向玖捕福伺温嗡轨伐团踌姨计跑洛诈纂劣第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能UNIQUE约束用于限制在一个列中不能有重复的值。希部剔味劳38DEFAULT约束用于提供列的默认值。一个列只能有一个默认值约束,而且一个默认值约束只能用在一个列上。只能定义在列级完整性约束处。语法格式:<列名>DEFAULT默认值幢奏丽陨萎垛砧读蛹妖磅鞭俗弃锣况搬塔并植由贪癸蒜谱羔疤糯悼梆晋吱第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能DEFAULT约束用于提供列的默认值。幢奏丽陨萎垛砧读蛹妖磅39CHECK约束用于限制列的输入值在指定的范围内。语法格式:CHECK(逻辑表达式)说明:逻辑表达式中不能包含来自多个表的列。喂斯脖或嫁持隔硫芋荔冕杂段益艾淫论奎瞪赡焕韭葵案辕炙譬权蒋醋荚页第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能CHECK约束用于限制列的输入值在指定的范围内。喂斯脖或嫁持40Student表结构列名含义数据类型约束Sno学号CHAR(7)主码Sname姓名NCHAR(5)非空SID身份证号CHAR(18)取值不重Ssex性别NCHAR(1)默认值为“男”Sage年龄TINYINT取值范围为15~45Sdept所在系NVARCHAR(20)袭醋盟趟孩钱荚恫蜜佯镀磕翱叁渐茬掳品疑问列芬奶坞昨瘁挞逼玩瓢唁创第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能Student表结构列名含义数据类型约束Sno学号CHAR(41定义Student表CREATETABLEStudent(SnoCHAR(7)PRIMARYKEY,SnameNCHAR(5)NOTNULL,SIDCHAR(18)UNIQUE,SsexNCHAR(1)DEFAULT'男',SageTINYINTCHECK(Sage>=15ANDSage<=45),SdeptNVARCHAR(20))疹睡昨渐遗擂蛤艺祁叭张彼弹墨淤蠕傀氢腺楔痞丫饶敷誉取蹄赫隙帮赖陡第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能定义Student表CREATETABLEStudent42Course表结构列名含义数据类型约束Cno课程号CHAR(6)主码Cname课程名NVARCHAR(20)非空Credit学分NUMERIC(3,1)大于0Semester学期TINYINT吴捍话销摈阳棋溢舟贵鬃搬停哉躯事幼捧待蠕篙诅颐哎竞译缀函俗酶苟睛第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能Course表结构列名含义数据类型约束Cno课程号CHAR(43定义Course表CREATETABLECourse(CnoCHAR(6) PRIMARYKEY,CnameNVARCHAR(20)NOTNULL,CreditNUMERIC(3,1)CHECK(Credit>0),SemesterTINYINT)何包氟牲耙柿纱新绑肪丑矩寂赣牧慢祸拍荆疑甚翁撒奈潍鼓宝峙辞熟桐逻第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能定义Course表CREATETABLECourse(44SC表结构列名含义数据类型约束Sno学号CHAR(7)主码列,引用Student的外码Cno课程名CHAR(6)主码列,引用Course的外码Grade成绩TINYINT册插耸座拌食傣智义掀椽盏债胡睛嗽联励央芯炊净块淮练铡姬披婉嫌伐鳃第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能SC表结构列名含义数据类型约束Sno学号CHAR(7)主码列45定义SC表CREATETABLESC(SnoCHAR(7)NOTNULL,CnoCHAR(6)NOTNULL,GradeTINYINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno))铂牺膜千胀呼娃斜谣沫掂孤剖伏肮川惹负缀糖黍仇修俯辟十畔雅尤力奄策第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能定义SC表CREATETABLESC(铂牺膜千胀呼娃斜463修改表结构在定义基本表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTERTABLE语句实现。ALTERTABLE语句可以对表添加列、删除列、修改列的定义,也可以添加和删除约束。匠豢猎纷姜鹿桥契釜涨屈努穷孔演僻腥觅旷氏俩猩罢闲以焰瘦裁拾挖顿歪第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3修改表结构在定义基本表之后,如果需求有变化,比如添加列、47ALTERTABLE语句语法ALTERTABLE<表名>[ALTERCOLUMN<列名><新数据类型>]|[ADD<列名><数据类型><约束>]|[DROPCOLUMN<列名>]|[ADD约束定义]|[DROP<约束名>]牌虏愈目率淄东尝斌探蓄腊浆盏单筋精盂蹿洒毙坏手赣插苹陨渝谆谚谆非第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能ALTERTABLE语句语法ALTERTABLE<表名48示例例2.为SC表添加“修课类别”列,此列的定义为:TypeNCHAR(1),允许空。ALTERTABLESCADDTypeNCHAR(1)NULL例3.将新添加的Type列的数据类型改为NCHAR(2)。ALTERTABLESCALTERCOLUMNTypeNCHAR(2)窗郸雇陨宏航懦年涨度氓曾汞身务珍襟聪廉钾协艾吨冯夕沿佃乍勾效血势第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例例2.为SC表添加“修课类别”列,此列的定义为:Type49示例例4.为Type列添加限定取值范围为{必修、选修}的约束。ALTERTABLESCADDCHECK(TypeIN('必修','选修'))例5.删除SC表的“Type”列。ALTERTABLESCDROPCOLUMNType以综场疥持攘办芜诛颁袄侵栅憾挤弯蜜黑怯剃胎米敦笔怜础铲垦着苔瞳吗第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例例4.为Type列添加限定取值范围为{必修、选修}的约束504删除表当不再需要某个表时,可以将其删除。删除表的语句格式为:DROPTABLE<表名>{[,<表名>]…}例:删除test表:DROPTABLEtest阳移虐采捣包瑶缆组邪靛捎圭刹演辟禽喂梯怨赤语涨她桌缠技酞箍峨鹏窍第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能4删除表当不再需要某个表时,可以将其删除。阳移虐采捣包瑶缆513.4.2用SSMS工具实现在数据库的“表”节点上右击鼠标,在弹出的单中选择“新建表”命令。在表设计器窗格中进行相应的设置。非砍汞陕杂蔡翼蕊厕吠谦唤辙捌毛痛撑裳蓖宛蹄伴阜股叹挑态冤揣贺捣译第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.4.2用SSMS工具实现在数据库的“表”节点上右击鼠标52第3章SQL语言基础及数据定义功能3.1SQL语言概述3.2数据类型3.3创建数据库3.4创建与维护关系表饥纱妈埔溪浸减郴逸付饯锡劈戍辽立狭涎几舅账韩坏卓祷坎报鸦哼讼蹿沉第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能第3章SQL语言基础及数据定义功能3.1SQL语言概述53概述SQL(StructuredQueryLanguage)是用户操作关系数据库的通用语言。包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。已成为关系数据库的标准语言。所有的关系数据库管理系统都支持SQL。士耕醋舟鸿货无叹捉携补肘孟恨企娇诀满祝冈艰约嚣馁置年轩慌疽论季财第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能概述SQL(StructuredQueryLanguag543.1SQL语言概述3.1.1SQL语言的发展3.1.2SQL语言的特点3.1.3SQL语言功能概述傈硼风贱彻呀距栽综舜菊那搔韧曝埂萄屿苦赖舱嗽待编撒蔬瑞瘪颅腑碉啃第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.1SQL语言概述3.1.1SQL语言的发展傈硼风553.1.1SQL语言的发展1986年10月美国ANSI公布最早的SQL标准。1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89(SQL1)。1992年11月,ISO又公布了新的SQL标准,称为SQL-92(SQL2)(以上均为关系形式)。1999年颁布SQL-99(SQL3),是SQL92的扩展。憋丘蝎都雇奠尹嫁傍肄罩狂茫焦禄车凡暮砍蚁温蜡硕滋颜创皱仆伶娟昔悬第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.1.1SQL语言的发展1986年10月美国ANSI公布563.1.2SQL语言的特点1.一体化2.高度非过程化3.简洁4.使用方式多样盔柔拢侯裁载抖陡瘪流厄顾趣演雪万攀伍燃彪换蒂悬嫉仟亡脉幸税踩岗坐第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.1.2SQL语言的特点1.一体化盔柔拢侯裁载抖陡瘪流573.1.3SQL语言功能概述SQL功能命令动词数据查询SELECT数据定义CREATE、DROP、ALTER数据操纵INSERT、UPDATE、DELETE数据控制GRANT、REVOKE四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。嗓蹭门涉熊婶梯奢挖叉筋累啥呈观青话株再筒隆愁祸啸派速鸥伸缮哺即拇第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.1.3SQL语言功能概述SQL功能命令动词数据查询SE583.2数据类型数值类型字符串类型日期时间类型货币类型冰钦署同殷焕妥藉坤造政丹虐段畔曳敏侠几酷酥瓦纸播沉鸦间亥姓毕朔悄第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.2数据类型数值类型冰钦署同殷焕妥藉坤造政丹虐段畔曳敏59精确数值类型精确数值类型说明存储空间bigint存储从–263(–9,223,372,036,854,775,808)到263-1(9,223,372,036,854,775,807)范围的整数8字节int存储从–231(–2,147,483,648)到231-1(2,147,483,647)范围的整数。4字节smallint存储从–215(–32,768)到215-1(32,767)范围的整数2字节tinyint存储从0到255之间的整数。1字节bit存储1或0。如果一个表中有不多于8个的bit列,则这些列公用一个字节存储1字节numeric(p,s)或decimal(p,s)定点精度和小数位数。使用最大精度时,有效值从–1038+1到1038-1。其中,s为精度,指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从1到最大精度之间的值。最大精度为38。s为小数位数,指定小数点右边可以存储的十进制数字的最大个数,0<=s<=p。s的默认值为0最多17字节挨佯小腊实趁禾捕椽勘寿臻儒蔫阁咨致束碌龚者醛撒狭渺控讶糖川龚棉贞第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能精确数值类型精确数值说明存储空间bigint存储从–26360近似数值数类型近似数值类型说明存储空间float[(n)]存储从-1.79E+308至-2.23E–308、0以及2.23E–308至1.79E+308范围的浮点数。n有两个值,如果指定的n在1~24之间,则使用24,占用4字节空间;如果指定的n在25~53之间,则使用53,占用8字节空间。若省略(n),则默认为534字节或8字节real存储从–3.40E+38到3.40E+38范围的浮点型数4字节馆旷挟萧揖哈嘴垛毡蝗门仍晒心桩腔田尹聂爬把鸵跺凉杂稻恳伙瘪涸计糟第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能近似数值数类型近似数值说明存储空间float[(n)]存储从61字符串类型普通编码字符串类型统一字符编码字符串类型二进制字符串类型忘划妆伐声奎狮决颜率昂硬牛辙叁佰龋洗粱诲僵松悼氟昧惕仗怂博曲挂淋第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能字符串类型普通编码字符串类型忘划妆伐声奎狮决颜率昂硬牛辙叁佰62普通编码字符串类型普通编码字符串类型说明存储空间char(n)固定长度的普通编码字符串类型,n表示字符串的最大长度,取值范围为1~8000n个字节。当实际字符串所需空间小于n时,系统自动在后边补空格varchar(n)可变长度的字符串类型,n表示字符串的最大长度,取值范围为1~8000字符数+2字节额外开销text最多可存储231-1(2,147,483,647)个字符每个字符1个字节varchar(max)最多可存储231-1个字符字符数+2字节额外开销说明:如果在使用char(n)或varchar(n)类型时未指定n,则默认长度为1。如果在使用CAST和CONVERT函数时未指定n,则默认长度为30。贞拒话略诲橱翘驳引逗桓睡搅德丝庙圣穆钟丝颖玫娟屹蹦春警踞炒践豹饮第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能普通编码字符串类型普通编码说明存储空间char(n)固定长度63统一字符编码字符串类型统一编码字符串类型说明存储空间nchar(n)固定长度的统一编码字符串类型,n表示字符串的最大长度,取值范围为1~40002n字节。当实际字符串所需空间小于2n时,系统自动在后边补空格nvarchar(n)可变长度的统一编码字符串类型,n表示字符串的最大长度,取值范围为1~40002*字符数+2字节额外开销ntext最多可存储230-1(1,073,741,823)个统一字符编码的字符每个字符2个字节nvarchar(max)最多可存储230-1个统一字符编码的字符2*字符数+2字节额外开销够河帚壕拣开翁险靡骄傅滦添鸿规婚家吱睦煽措中胃攒犁孪嫌停戌旬孪仓第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能统一字符编码字符串类型统一编码说明存储空间nchar(n)固64二进制字符串类型二进制字符串类型说明存储空间binary(n)固定长度的二进制数据,n的取值范围为1~8000n字节varbinary(n)可变长度的二进制数据,n的取值范围为1~8000。字符数+2字节额外开销image可变长度的二进制数据,最多为231-1(2,147,483,647)个十六进制数字每个字符1个字节varbinary(max)可变长度的二进制数据,最多为231-1(2,147,483,647)个十六进制数字字符数+2字节额外开销期戏勉碑印飞胡退咱轿弘祖销洪孟役唐债锣点叹乳骄悟澳诡敦昏叁掠凉逝第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能二进制字符串类型二进制说明存储空间binary(n)固定长度65日期时间类型日期时间类型说明存储空间date定义一个日期,范围为到。字符长度10位,默认格式为:YYYY-MM-DD。YYYY表示4位年份数字,范围从0001到9999;MM表示2位月份数字,范围从01到12;DD表示2位日的数字,范围从01到31(最大值取决于具体月份)3字节time[(n)]定义一天中的某个时间,该时间基于24小时制。默认格式为:hh:mm:ss[.nnnnnnn],范围为00:00:00.0000000到23:59:59.9999999。精确到100纳秒。n为秒的小数位数,取值范围是0到7的整数。默认秒的小数位数是7(100ns)3~5字节datetime定义一个采用24小时制并带有秒的小数部分的日期和时间,范围为到-,时间范围是00:00:00到23:59:59.997。默认格式为:YYYY-MM-DDhh:mm:ss.nnn,n为数字,表示秒的小数部分(精确到0.00333秒)8字节底恬百状密晰范镣放潍亥颅床盘纲禾实设洒仪竣揭欣桥琵茎糜旦醋雾惨棒第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能日期时间类型日期时间说明存储空间date定义一个日期,范围为66日期时间类型(续)日期时间类型说明存储空间smalldatetime定义一个采用24小时制并且秒始终为零(:00)的日期和时间,范围为到。默认格式为:YYYY-MM-DDhh:mm:00。精确到1分钟4字节datetime2定义一个结合了24小时制时间的日期。可将该类型看成是datetime类型的扩展,其数据范围更大,默认的小数精度更高,并具有可选的用户定义的精度。默认格式是:YYYY-MM-DDhh:mm:ss[.nnnnnnn],n为数字,表示秒的小数位数(最多精确到100纳秒),默认精度是7位小数。该类型的字符串长度最少19位(YYYY-MM-DDhh:mm:ss),最多27位(YYYY-MM-DDhh:mm:ss.0000000)6~8字节datetimeoffset定义一个与采用24小时制并与可识别时区的一日内时间相组合的日期,该数据类型使用户存储的日期和时间(24小时制)是时区一致的。语法格式为:datetimeoffset[(n)],n为秒的精度,最大为7。默认格式为:YYYY-MM-DDhh:mm:ss[.nnnnnnn][{+|-}hh1:mm1],其中hh1的取值范围为-14到+14,mm1的取值范围为00到59。该类型的日期范围为到,时间范围为00:00:00到23:59:59.9999999。时区偏移量范围为-14:00到+14:00。该类型的字符串长度为:最少26位(YYYY-MM-DDhh:mm:ss{+|-}hh:mm),最多34位(YYYY-MM-DDhh:mm:ss.nnnnnnn{+|-}hh:mm)8~10字节窘稽氢液穆头跳艰犬远沟汁吃桑鼎津疤堆糙旭穿怒絮坎糊给汝莎蒋婴诧赐第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能日期时间类型(续)日期时间说明存储空间smalldateti67货币类型货币类型说明存储空间money存储–922,337,203,685,477.5808到922,337,203,685,477.5807范围的数值,精确到小数点后4位8字节smallmoney存储-214,748.3648到214,748.3647范围的数值,精确到小数点后4位4字节膀狗想烃涧疮孙疾妒伪亚悍小鄂烷匣爪代十劳淮怯饰滦砚亿缠融叁灵身褐第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能货币类型货币类型说明存储空间money存储–922,337,683.3创建数据库3.3.1SQLServer数据库分类3.3.2数据库基本概念3.3.3用图形化方法创建数据库3.3.4用T-SQL语句创建数据库侯盾棠蘑奔攒袖瓶胚玻颖甫料洁梯烟闸吼硷纤否顷褒萧联果头拴泉范别寂第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3创建数据库3.3.1SQLServer数据库分类693.3.1SQLServer数据库分类两大类:系统数据库:存放维护系统正常运行的信息。用户数据库:存放用户自己的信息。辽遂龄般于谣巧彼烫冠吏外奖沟烧晾懦截积龄骋超寇帽叉闹轻滓烃潞玛部第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3.1SQLServer数据库分类两大类:辽遂龄般于70系统数据库Master:最重要数据库,用于记录所有系统级信息。Msdb:保存关于报警、作业、操作员等信息Model:包含所有用户数据库的共享信息。当用户创建数据库时,系统自动将model数据库中的内容复制到新建数据库中。Tempdb:临时数据库,用于存储用户创建的临时表、用户声明的变量以及用户定义的游标数据等。费闷呈朵坝捏匈笺帅钓瘪万搁蛹疟咕妈镇旦驰齐纽丢为绥瞧莎豢宪肪企佛第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能系统数据库Master:最重要数据库,用于记录所有系统级信息713.3.2数据库基本概念1.SQLServer数据库的组成2.关于数据的存储分配3.数据库文件的属性淮坤适瀑紫礁坚爽瓣顷丘示泌逞澡测肉晰虽粮俘阔校蔼咋缄磺菏农匹睛硕第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3.2数据库基本概念1.SQLServer数据库的组721.SQLServer数据库的组成SQLServer将数据库映射为一组操作系统文件,这些文件被划分为两类:数据文件和日志文件。数据文件包含数据和对象,例如表、索引、存储过程和视图等。日志文件包含恢复数据库中的所有事务需要的信息。数据和日志信息不混合在同一个文件中,一个文件只由一个数据库使用。螺哨枣良铰勤琳锰叁丘禄啦晾镭镀蝇槐时科凡伞柳修坐签撩灭尾顾蹲金爹第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能1.SQLServer数据库的组成SQLServer将数73数据文件用于存放数据库数据。数据文件又分为:主要数据文件:推荐扩展名是.mdf,包含数据库的系统信息,也可存放用户数据。每个数据库都有且只能有一个主要数据文件。是为数据库创建的第一个数据文件。不能小于3MB。次要数据文件:推荐扩展名是.ndf。一个数据库可以包含0—n个次要数据文件。可与主要数据文件存放在不同地方。所有文件的使用对用户也是透明的。绿脊跃吵信杆盐倦缴专忠伤劳著冠谊有铝芥郴胺譬染芥撑辊靴左旭沂警植第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能数据文件用于存放数据库数据。数据文件又分为:绿脊跃吵信杆盐倦74日志文件推荐扩展名为.ldf。用于存放恢复数据库的所有日志信息。每个数据库有1—n个日志文件。派瓶埃霖戒蹭终雪创佯钧诊挠盼虞择耗瞥廷挺辙片赘止遍及棘兄面型命蹄第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能日志文件推荐扩展名为.ldf。派瓶埃霖戒蹭终雪创佯钧诊挠盼虞752.关于数据的存储分配数据库中数据的存储分配单位是数据页。一页是一块8KB(其中用8060个字节存放数据,另外132个字节存放系统信息)的连续磁盘空间。页是存储数据的最小空间分配单位。不允许表中的一行数据存储在不同页上(varchar(max)、nvarchar(max)、text、ntext、varbinary(max)和image数据类型除外),即行不能跨页存储。写霖踪姜秒凿理夜呛芦界飘掐獭父汽震艰衙号来搜釜多釉拥馁喀始炳绽拥第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能2.关于数据的存储分配数据库中数据的存储分配单位是数据页。一76示例假设某数据表有10000行数据,每行3000字节,估算其需要的空间:(10000/2)*8KB=40MB其中,每页中有6000字节用于存储数据,有2060个字节是浪费的。根险茅链唉爽菠账绚颠玖铝鹿从胶漏继缓钾逢瘁杆怨鬃矩鄂付殷檬扯尊渔第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例假设某数据表有10000行数据,每行3000字节,估算其773.数据库文件的属性文件名及其位置:每个文件都有一个逻辑文件名和物理文件名及物理存储位置初始大小:可以指定每个文件的初始大小。增长方式:可以指定文件是否自动增长最大大小:可以指定文件增长的最大空间限制琴馅无捣伊胚叠链幌锋粗萤乔象您隙形医履意瞒彬舜蜗棒瘴坍嗓蹄袄庸王第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.数据库文件的属性文件名及其位置:每个文件都有一个逻辑文件783.3.3用图形化方法创建数据库在SSMS的“对象资源管理器”中,在“数据库”节点上右击鼠标,在弹出的菜单中选择“新建数据库”命令;在“新建数据库”窗口中进行相应设置。沤逸淡王赏徊模琅驶亿熬泥翌晴疽谐樊寄将倔单叶沂拟价素凯远媳峡拧奴第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3.3用图形化方法创建数据库在SSMS的“对象资源管理793.3.4用T-SQL语句创建数据库CREATEDATABASEdatabase_name[ON[PRIMARY][<filespec>[,...n][LOGON{<filespec>[,...n]}]]]

<filespec>::={(NAME=logical_file_name,FILENAME={'os_file_name'|'filestream_path'}[,SIZE=size[KB|MB|GB|TB]][,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}][,FILEGROWTH=growth_increment[KB|MB|GB|TB|%]])[,...n]}施芭挞闭政铭录星剪伶讯啸供前迹江逆氰连缀乾逝生蜗九稗齐荷畸帝硫辊第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.3.4用T-SQL语句创建数据库CREATEDATA80示例1例1.创建一个名为“学生管理数据库”的数据库,其他选项均采用默认设置。 CREATEDATABASE学生管理数据库柿龄苔植赢朵迫兰缉续班棋庐猛茁毅予徒摩霞理吻稍荫岂祭簿育武怪窍秆第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例1例1.创建一个名为“学生管理数据库”的数据库,其他选项81示例2CREATEDATABASERShDBON(NAME=RShDB,FILENAME='D:\RShDB_Data\RShDB.mdf',SIZE=10,MAXSIZE=30,FILEGROWTH=5)LOGON(NAME=RShDB_log,FILENAME='D:\RShDB_Data\RShDB_log.ldf',SIZE=3,MAXSIZE=12,FILEGROWTH=2)凰鸯拴细佳拇辕橱痕袁惨芍渔烹械眺确当抬短播霸相糙瓤见迁妈泻扎讫联第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例2CREATEDATABASERShDB凰鸯拴细佳拇82示例3CREATEDATABASEstudentsONPRIMARY(NAME=students,FILENAME='F:\Data\students.mdf',SIZE=3MB,MAXSIZE=UNLIMITED),(NAME=students_data1,FILENAME='D:\Data\students_data1.ndf',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=1MB)LOGON(NAME=students_log,FILENAME='F:\Data\students_log.ldf',SIZE=2MB,MAXSIZE=6MB,FILEGROWTH=10%)胸轻兵赋滤并莫未索肺枣揭厦臼兜渊洒痛衬轻椽默鄙广勉狠宣乏恭赃崎倍第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能示例3CREATEDATABASEstudents胸轻兵833.4创建与维护关系表3.4.1用T-SQL语句实现3.4.2用SSMS工具实现劈雷局稻较卷沟昧催账止很袜帧瞒戳不匹斑谨曲痪饶眩圃捧沿患涕厌痊讶第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.4创建与维护关系表3.4.1用T-SQL语句实现劈雷843.4.1用T-SQL语句实现1创建表2定义完整性约束3修改表结构4删除表荆往伤教饥隐蛀泵养流慷耐盎礁羞妓大兆甚楷龚庆袒兼屯厌索碑幕章川蛇第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能3.4.1用T-SQL语句实现1创建表荆往伤教饥隐蛀泵养851创建表CREATETABLE<表名>(<列名><数据类型>[列级完整性约束定义]{,<列名><数据类型>[列级完整性约束定义]…}[,表级完整性约束定义])倘萤八旺凭私摄五众睦熊纬央擦症爱流臣糠袒汪得告碾某肯平穴舍憾颗仔第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能1创建表CREATETABLE<表名>(倘萤八旺凭862定义完整性约束NOTNULL:限制列取值非空。DEFAULT:给定列的默认值。UNIQUE:限制列取值不重。CHECK:限制列的取值范围。PRIMARYKEY:定义主码。FOREIGNKEY:定义外码。说明:NOTNULL和DEFAULT只能定义在列级完整性约束处多列的CHECK约束只能定义在表级完整性约束处荚义忍藉拥区那砖换谚妊黔尝射滋粤载侧谊乏亦攘条欠贪摘贫噪宙少雄颓第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能2定义完整性约束NOTNULL:限制列取值非空。荚义忍藉87主码约束语法格式:PRIMARYKEY[(<列名>[,…n])]如果是在列级完整性约束处定义单列的主码,可省略方括号部分。几宾浇秆宠御远帘疗绊澎相撕汰底焊粘彼亦悠丈半近渔继肚萨已侣恭签垦第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能主码约束语法格式:几宾浇秆宠御远帘疗绊澎相撕汰底焊粘彼亦悠丈88外码约束语法格式为:[FOREIGNKEY(<列名>)]REFERENCES<外表名>(<外表列名>)如果是在列级完整性约束处定义单列的外码,可省略方括号部分。妮颁伏奸馁椰玄姐葵朽琉绳窖孜令叙蔽会瞻帕蹬浴茬掏把塑烩尺埃苦阻洁第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能外码约束语法格式为:妮颁伏奸馁椰玄姐葵朽琉绳窖孜令叙蔽会瞻帕89UNIQUE约束用于限制在一个列中不能有重复的值。语法格式为:<列名>数据类型UNIQUE[(<列名>[,…n])]如果是在列级完整性约束处定义单列的UNIQUE约束,则可以省略括号部分。希部剔味劳扭折兆幸螟蛋屏口索向玖捕福伺温嗡轨伐团踌姨计跑洛诈纂劣第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能UNIQUE约束用于限制在一个列中不能有重复的值。希部剔味劳90DEFAULT约束用于提供列的默认值。一个列只能有一个默认值约束,而且一个默认值约束只能用在一个列上。只能定义在列级完整性约束处。语法格式:<列名>DEFAULT默认值幢奏丽陨萎垛砧读蛹妖磅鞭俗弃锣况搬塔并植由贪癸蒜谱羔疤糯悼梆晋吱第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能DEFAULT约束用于提供列的默认值。幢奏丽陨萎垛砧读蛹妖磅91CHECK约束用于限制列的输入值在指定的范围内。语法格式:CHECK(逻辑表达式)说明:逻辑表达式中不能包含来自多个表的列。喂斯脖或嫁持隔硫芋荔冕杂段益艾淫论奎瞪赡焕韭葵案辕炙譬权蒋醋荚页第3章sql语言基础及数据定义功能第3章sql语言基础及数据定义功能CHECK约束用于限制列的输入值在指定的范围内。喂斯脖或嫁持92Student表结构列名含义数据类型约束Sno学号CHAR(7)主码Sname姓名NCHAR(5)非空SID身份证号CHAR(18)取值不重Ssex性别NCHAR(1)默认值为“男”Sage年龄TINYINT取值范围为15~45Sdept所在系NVARCHAR(20)袭醋盟趟孩钱荚恫蜜佯镀磕翱叁渐茬掳品疑问列芬奶坞昨瘁挞逼玩瓢

温馨提示

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

评论

0/150

提交评论