SQL Server 数据库开发经典案例教程-SQL Server 2008数据库开发经典案例教程全书课件电子教案汇总.ppt
《SQL Server 数据库开发经典案例教程-SQL Server 2008数据库开发经典案例教程全书课件电子教案汇总.ppt》由会员分享,可在线阅读,更多相关《SQL Server 数据库开发经典案例教程-SQL Server 2008数据库开发经典案例教程全书课件电子教案汇总.ppt(292页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、0 02 23 3 第二代数据库关系型数据库n关系数据库是建立在关系模型之上的数据库 第三代数据库面向对象数据库n处于发展阶段,未来趋势4 4 产品数据库表5 5行(记录)6 67 7 例如:创建数据库、创建表、创建视图、查询数据和访问数据库等操作,都是由数据库引擎完成的8 89 91010客户端应用程序客户端应用程序SQL Server服务器服务器批处理语句:批处理语句:语句语句1语句语句2GO11111212131314141515n创建登录的方法1616n附加数据库可以将物理文件恢复成数据库18181919数据库数据库主数据文件(.mdf)次要数据文件(.ndf)日志文件(.ldf)20
2、202121mastertempdbmsdbStudentsDBBookShopDB用户数据库用户数据库model4个系统数据库个系统数据库用户自己创建2222n是连接到 SQL Server 实例的所有用户都可用的全局资源,它保存所有临时表和临时存储过程2323BookShopDB.ldfE: BookShopDB.mdfC:Book1.ndf Book2.ndfD: 2424数据库的建立数据库的建立-可视化方式可视化方式2525262627272828292930303131的文件n附加数据库可以将物理文件恢复成数据库n使用帮助文档3333343435353636 将一个表的一列(或列组合
3、)定义为引用其他表的主键,则引用表中的这个列(或列组合)就称为外键3737主键主键外键外键38383939table等等40404141 CREATE TABLE mytable ( col1 char(10) primary key, col2 int not null )CREATE TABLE 表名表名( 字段字段1 数据类型数据类型 列的特征,列的特征, 字段字段2 数据类型数据类型 列的特征,列的特征, 。 )4242USE BookShopDb -将当前数据库设置为BookShopDb GO CREATE TABLE UserInfo -创建用户表( UserID char(3)
4、PRIMARY KEY, -UerID为主键 UserName char(10) not null, Sex char(2) not null, Age int , hiredate datetime, tele char(15), Addr varchar(100)GO 4343TABLE一起使用4444USE BookShopDb -将当前数据库设置为BookShopDb GOCREATE TABLE Publisher( PublisherID int IDENTITY(1,1) PRIMARY KEY, -自动编号(标识列) PublisherName varchar(50) not
5、null -出版社名称,必须输入)GO 4545USE BookShopDb -将当前数据库设置为BookShopDbGO CREATE TABLE BookInfo /*创建BookInfo数据表*/( BookID char(15) PRIMARY KEY, -书号 ,主键 BookName varchar(100) not null, -书名 Author varchar(50) not null, -作者 ISBN char(13) , -ISBN,null可以省略 PublishDate datetime not null, -出版日期 PublisherID int not nul
6、l REFERENCES Publisher(PublisherID),-外键 CategoryID int not null REFERENCES Category(CategoryID), -外键 Price money , -价格 Content text -介绍)GO 4646USE BookShopDb -将当前数据库设置为BookShopDbGO Drop table userInfoCREATE TABLE UserInfo -创建用户表( UserID char(3) PRIMARY KEY CHECK(UserID LIKE 0-90-90-9), UserName char
7、(10) UNIQUE, -用户名,唯一约束 Sex char(2) CHECK(Sex in (男,女), -性别,Check约束 Age int not null, -年龄,非空约束 hiredate datetime , -入职日期 tele char(15), -电话 Addr varchar(100) DEFAULT 广东广州 -地址,默认约束 )GO 【示例示例3-6】重建重建UserInfo表,演示在建表时如何设定约束4747USE BookShopDb -将当前数据库设置为BookShopDb,GO CREATE TABLE SalesMaster /*创建SalesMaste
8、r销售主表*/(SalesMasterID int identity primary key, -销售id,自动增长,主键 SalesDate datetime not null, -销售日期 UserID char(3) not null), CONSTRAINT fk_UserID FOREIGN KEY (UserID) REFERENCES UserInfo(UserID) ON DELETE CASCADE 【示例示例3-7】建立建立SalesMaster销售主表,通过设定外键与UserInfo表之间建立联系4848 默认约束 空值约束 标识列5050 修改表结构、删除表5151AL
9、TER TABLE 表名表名ADD CONSTRAINT 约束名约束类型具体的约束说明约束名约束类型具体的约束说明 USE BookShopDb -选择数据库,以下示例从略选择数据库,以下示例从略GOALTER TABLE UserInfo ADD CONSTRAINT pk_ UserID PRIMARY KEY(UserID)添加主键约束添加主键约束添加外键约束添加外键约束ALTER TABLE SalesDetails ADD CONSTRAINT fk_BookID FOREIGN KEY(BookID) REFERENCES BookInfo(BookID) 5252ALTER TA
10、BLE 表名表名DROP CONSTRAINT 约束名约束名 ALTER TABLE UserInfo DROP CONSTRAINT pk_ UserID 535354545555表。任何用户都不应该直接更改系统表56565757USE BookShopDbGOALTER TABLE UserInfo ADD email char(20) GO 增加列增加列 给UserInfo表增加列email,字符类型长度是20,非空修改列修改列USE BookShopDbGOALTER TABLE UserInfo ALTER COLUMN addr varchar(150) not null增加Use
11、rInfo表的字段addr 长度,将其增加到150,类型不变 5858删除列删除列删除UserInfo表 email列USE BookShopDbGOALTER TABLE UserInfo DROP COLUMN emailGO59596060n修改添加字段Alter table 表名 add 字段名称 数据类型n修改表修改字段 alter table 表名 alter column 字段名称 数据类型n修改表删除字段 alter table 表名 drop 字段名称 删除表 Drop table 表名62626363 数据定义语言(DDL)n用于创建或修改数据库里的对象,如创建Create
12、 table、修改Alter table 、删除Drop table等 数据控制语言(DCL)n用来控制用户对数据库数据的访问权限,如:Grant、Revoke等64646565语法格式 INSERT INTO 表名表名(列名,(列名,n) VALUES (值,值,n) 【例例4-1】 向BookShopDb 数据库的UserInfo表中插入所有列数据USE BookShopDb GO -批处理结束标志,表示执行批处理结束标志,表示执行 INSERT INTO UserInfo(UserID,UserName,Sex,Age,hiredate,tele,Addr) VALUES(001,王琳琳
13、王琳琳,女女,26,2005-1-24,07313677867,湖南长沙湖南长沙)INSERT INTO UserInfo VALUES(002,张家辉张家辉,男男,27,2004-3-5,02034657654,广东广州广东广州)INSERT INTO UserInfo(UserID,UserName) VALUES(003,张田田张田田)插入部分列时列名不能省略 插入所有列时列名可省略 6666 【例例4-3】向UserInfo表插入数据,尝试输入性别为其他内容 INSERT INTO UserInfo(UserID,UserName,Sex,Age,hiredate,tele,Addr)
14、VALUES(004,周晨阳周晨阳,中中,30,2003-4-2,02734652345,湖北宜昌湖北宜昌)标识列字段数据的插入 【例例4-5】向向Category表插入数据, Category带有标识列CategoryID INSERT INTO Category(CategoryName) VALUES(计算机基础理计算机基础理论论)6767【例例4-9】 使用SELECT . INTO拷贝UserInfo表年龄大于等于30的数据 生成一新表CopyUserInfoSELECT * INTO CopyUserInfo FROM UserInfo WHERE Age=30 6868UPDAT
15、E 表名表名 SET WHERE 更新条件更新条件【例例4-10】修改修改UserInfo表数据,把UserID为007的用户的住址改为甘肃酒泉UPDATE UserInfo SET Addr =甘肃酒泉甘肃酒泉 WHERE UserID =0076969 【例例4-11】如图完善UserInfo表数据,把用户号003用户的年龄、参加工作日期分别修改为33,2004-8-30 UPDATE UserInfo SET Age =33, hiredate =2004-8-30 WHERE UserID =003【例例4-12】把用户001的参加工作日期加1天,地址改为湖南湘潭UPDATE User
16、InfoSET hiredate=hiredate+1, Addr=湖南湘潭湖南湘潭WHERE UserID =001 注意:修改数据如果只修改一条记录,一般都按主键字段修改。7070DELETE FROM 表名表名 WHERE 条件条件 【例例4-14】删除参加工作日期在删除参加工作日期在2004-1-1之后的用户信息DELETE FROM UserInfo WHERE hiredate2004-1-1 【例例4-15】 删除BookInfo表中书号是B0001的记录 DELETE FROM BookInfo WHERE BookID=B0001 因为要删除BookInfo表的书号是B000
17、1的记录被SalesDetails表引用,所以必须先删除SalesDetails表的相应记录,才能删除BookInfo表的记录 7171 TRUNCATE TABLE 表名表名【例例4-16】 删除CopyUserInfo表的所有数据 TRUNCATE TABLE CopyUserInfo727274747575查询请求查询请求查询结果集查询结果集结果集结果集76767777 SELECT FROM WHERE ORDER BY ASC或DESC7878 SELECT * FROM BookInfo SELECT BookName,Author,publishDate,CategoryID F
18、ROM BookInfo7979SELECT bookName as 书名书名,Author as 作者作者,publishDate as 出版日期出版日期,CategoryID as 类别类别,price as 价格价格FROM bookInfo 1,用,用as关键字关键字 【例例5-3】 用中文名称来显示书的信息,3种不同使用别名方法 2,用空格,用空格3,用,用=SELECT bookName 书名书名,Author 作者作者,publishDate 出版日期出版日期,CategoryID 类别类别,price 价格价格FROM bookInfoSELECT 书名书名= bookName
19、,作者作者= Author, 出版日期出版日期=publishDate,类别类别=CategoryID , 价格价格=price FROM bookInfo8080【例例5-4】查询2007年以后出版的所有书籍的书名、作者、出版日期和价格SELECT bookName,author,publishDate,price FROM BookInfo WHERE PublishDate2007-01-018181 表5-1 常用T-SQL函数828283838484 SELECT bookName,Author,PATINDEX(%数据库数据库%,bookName) POSFROM BookInfo
20、 WHERE PATINDEX(%数据库数据库%,bookName)0【例例5-8】使用日期函数获取今天的日期时间及明天的日期和时间使用日期函数获取今天的日期时间及明天的日期和时间【例例5-7】使用使用PATINDEX函数查询函数查询BookInfo表中包含表中包含数据库数据库的书名和作的书名和作者以及者以及数据库数据库出现的位置出现的位置 SELECT GETDATE() 今天今天, DATEADD(DAY,1,GETDATE() 明天明天858586868787898990909191【例6-1】 查询BookInfo表中价格低于的书名、作者和价格 SELECT BookName,Auth
21、or,Price FROM BookInfo WHERE Price 40【例6-2】 查询BookInfo表中价格在30到80之间(包括边界) 的书名、价格和说明 SELECT BookName,price,Content FROM BookInfo WHERE Price =30 9292【例6-3】 查询UserInfo中电话(tele)为空的用户信息 SELECT UserID,UserName,Sex,Age,hiredate,tele,Addr FROM UserInfo WHERE tele is null 9393【例6-5】 在BookInfo表中,查询书名长度小于10的图书
22、书名、作者和书名长度 SELECT bookname,Author ,LEN(bookName) FROM BookInfo WHERE LEN(bookname)109494【例6-6】 在BookInfo表中,按出版日期的先后顺序,查询价格低于45的图书的书号、书名、价格、作者和出版日期。 SELECT bookid,bookName,Price,Author,PublishDate FROM BookInfo WHERE Price b.PriceWHERE b.BookID =B0002125125n右外联接以右表为主筛选数据右外联接以右表为主筛选数据 自联接n自联接将表自身通过别名关
23、联自联接将表自身通过别名关联127127128128外部查询内部查询129129SELECT 列名.FROM 表名WHERE 条件 =(SELECT 列名 FROM 表名 WHERE 条件)1301302,把该查询代入外部查询【例8-1】显示价格超过平均价格的图书的书号、书名、作者和价格。SELECT Bookid,bookName,Price FROM BookInfo WHERE Price (SELECT AVG(price) FROM BookInfo) 比较运算符131131 AND YEAR(PublishDate) = (SELECT YEAR(publishDate) FROM
24、 BookInfo WHERE BookName =JavaWeb开发技术详解 )【例8-2】 查询具有和“JavaWeb开发技术详解”相同出版社和相同出版年限的书籍的书号、书名和出版日期解决方法:解决方法:132132133133134134WHERE CategoryName =JAVA) ) 值列表135135 【例8-4】显示同类图书中价格最高的的书籍信息,显示内容包括书号、书名、价格和类别。分析:对BookInfo表的每一条记录,与同类图书的价格比较,求出最高价格的书籍SELECT BookID ,BookName ,Price ,CategoryID FROM BookInfo a
25、 WHERE a.Price =( SELECT max(b.price) FROM BookInfo b WHERE a.CategoryID =b.CategoryID ) 136136【例8-5】查询已销售的书籍信息,显示内容包括书号、书名和作者。SELECT BookID,BookName,Author FROM BookInfo WHERE EXISTS(SELECT * FROM SalesDetails WHERE BookID=BookInfo.BookID)137137用户id用户idSELECT a.UserId,a.UserName,YEAR(a.hiredate) 入职
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server 数据库开发经典案例教程-SQL 2008数据库开发经典案例教程全书课件电子教案汇总 数据库 开发 经典 案例 教程 2008 全书 课件 电子 教案 汇总
链接地址:https://www.taowenge.com/p-13023107.html
限制150内