大家论坛-大家学习网论坛计算机专区程序设计与开发论坛数据库设计与开发 → SQL语言案头完全参考手册 PDF版

意见反馈-google提供的广告

  共有19807人关注过本帖树形打印

主题:SQL语言案头完全参考手册 PDF版

帅哥哟,离线,有人找我吗?
haoran158
  61楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网幼儿园 贴子:5 金钱:105 金币:0 积分:1 魅力:0 精华:0 注册:2008-4-26 16:56:00
  发贴心情 Post By:2008-4-26 17:01:00

我 顶.


 回到顶部
帅哥哟,离线,有人找我吗?
flying1985
  62楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学一年级 贴子:10 金钱:110 金币:0 积分:1 魅力:0 精华:0 注册:2008-4-28 13:28:00
  发贴心情 Post By:2008-4-28 13:46:00

正在学习这个,谢谢分享 !

 回到顶部
帅哥哟,离线,有人找我吗?
civos
  63楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学一年级 贴子:25 金钱:126 金币:0 积分:5 魅力:0 精华:0 注册:2008-4-29 18:16:00
  发贴心情 Post By:2008-4-29 19:51:00

借鉴参考!!!! 看看有好处!!!!!!

 回到顶部
帅哥哟,离线,有人找我吗?
chinacrazy2007
  64楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学三年级 贴子:63 金钱:139 金币:0 积分:20 魅力:0 精华:0 注册:2008-4-9 17:12:00
  发贴心情 Post By:2008-5-1 21:32:00


 回到顶部
帅哥哟,离线,有人找我吗?
Bobby_cs
  65楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学二年级 贴子:38 金钱:124 金币:0 积分:18 魅力:0 精华:0 注册:2008-1-25 21:14:00
  发贴心情 Post By:2008-5-7 11:09:00

按时打发士大夫

 回到顶部
帅哥哟,离线,有人找我吗?
555002
  66楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学四年级 贴子:79 金钱:180 金币:0 积分:0 魅力:0 精华:0 注册:2008-5-4 21:29:00
  发贴心情 Post By:2008-5-9 6:38:00

SQL语法大全中文版,好东西。

 回到顶部
帅哥哟,离线,有人找我吗?
chenbean
  67楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网幼儿园 贴子:1 金钱:101 金币:0 积分:1 魅力:0 精华:0 注册:2008-5-11 10:18:00
  发贴心情 Post By:2008-5-11 10:24:00

T-SQL高级查询练习
2007年05月14日 星期一 15:41

在你的sql 2000服务器上,创建两个数据库DBSource和DBTarget,分别创建源表教师学历表Tsteacher(tID-int-PK,tName-varchar(8),tEduID-int-FK-默认是1)、Teducation(tEduID-int-PK,tEduName-varchar(20))于DBSource库上,目标表Ttteacher(tID-int,tEduName-varchar(20))建在DBTarger库上,要求:

1.向Teducation表中插入学历大专、本科、硕士,Tsteacher表中插入老师李明、张林、张大伟、徐丽、陈风且其对应的学历分别为硕士、本科、硕士、大专、大专;

2.将源库DBSource中Tsteacher表中老师所对应的工号及学历信息导入到目标库DBTarget的表Ttteacher中,如李明的学历ID为1且对应的学历名称为本科的话,那么导入目标表Ttteacher对应的字段就是李明、本科。

3.通过T-SQL语句实现上述功能。

USE master

GO

/*如源数据库已存在则删除*/

if exists(SELECT * FROM sysdatabases WHERE name = 'DBSource')

  DROP DATABASE DBSource

GO

CREATE DATABASE DBSource              /*建立源数据库*/

GO

/*判断目标数据库是否已经在系统中存在*/

if exists(SELECT * FROM sysdatabases WHERE name = 'DBTarget')

  DROP DATABASE DBTarget

GO

CREATE DATABASE DBTarget              /*建立目标数据库*/

GO

USE DBSource                            /*打开源数据库*/

GO

/*----------------建立教师表和学历明细表---------*/

IF OBJECT_ID('Teducation') IS NOT NULL

  DROP TABLE Teducation

GO

CREATE TABLE Teducation

(

  tEduID              int       IDENTITY(1,1)

       PRIMARY KEY,    /*学历ID*/

  tEduName              varchar(20) NOT NULL/*学历名称*/

)

GO

IF OBJECT_ID('Tsteacher') IS NOT NULL

  DROP TABLE Tsteacher

GO

CREATE TABLE Tsteacher

(

  tID         int       IDENTITY(1,1) PRIMARY KEY, /*教师工号*/

  tName              varchar(8)  NOT NULL,         /*姓名*/

  tEduID        int     DEFAULT 1 REFERENCES Teducation(tEduID) /*学历ID*/

)

GO

INSERT INTO Teducation VALUES('大专')

INSERT INTO Teducation VALUES('本科')

INSERT INTO Teducation VALUES('硕士')

INSERT INTO Tsteacher VALUES('李明',3)

INSERT INTO Tsteacher VALUES('张林',2)

INSERT INTO Tsteacher VALUES('张大伟',3)

INSERT INTO Tsteacher VALUES('徐丽',1)

INSERT INTO Tsteacher VALUES('陈风',1)

GO

USE DBTarget                            /*打开目标数据库*/

GO

IF OBJECT_ID('Ttteacher') IS NOT NULL

  DROP TABLE Ttteacher

GO

CREATE TABLE Ttteacher

(

  tID         int       NOT NULL,    /*教师工号*/

  tEduName       varchar(20) NOT NULL /*学历名称*/

)

GO

--第一种方法

INSERT INTO Ttteacher

  SELECT tID,CASE tEduID

  WHEN 1 THEN '大专'

  WHEN 2 THEN '本科'

  WHEN 3 THEN '硕士' END

FROM DBSource..Tsteacher

GO

--第二种方法

INSERT INTO Ttteacher

  SELECT A.tID,B.tEduName FROM DBSource..Tsteacher A,DBSource..Teducation B

  WHERE A.tEduID=B.tEduID

GO

--第三种写法

INSERT INTO Ttteacher

  SELECT A.tID,B.tEduName FROM DBSource..Tsteacher as A INNER JOIN DBSource..Teducation as B

  ON A.tEduID=B.tEduID

GO

--第四种可以不用create,直接用select into创建一个新表

IF OBJECT_ID('Ttteacher') IS NOT NULL

  DROP TABLE Ttteacher

GO

SELECT A.tID,B.tEduName INTO Ttteacher

  FROM DBSource..Tsteacher as A INNER JOIN DBSource..Teducation as B ON A.tEduID=B.tEduID

GO

思考一下如果要求改变目标数据库DBTarget中表Ttteacher的结构,添加一列教师名称(tName-varchar(8)-Not Null),修改教师工号tID为varchar(5),然后同样导入源表数据,只不过此时的教师工号要变为5位的字符格式。

/*---------------修改表Ttteacher结构-----------------*/
USE DBTarget
ALTER TABLE Ttteacher ADD tName VARCHAR(8) NOT NULL DEFAULT ''
ALTER TABLE Ttteacher ALTER COLUMN  tID  VARCHAR(5) NOT NULL
GO
 
/*------注意这里我们是如何补位的,用了两种方法------------------------*/
--我们这里还用第一种方法(这里要用到数据转换convert函数)
INSERT INTO Ttteacher
  SELECT '0000'+CONVERT(char,tID),CASE tEduID  /*这里用0000来补位*/
  WHEN 1 THEN '大专'
  WHEN 2 THEN '本科'
  WHEN 3 THEN '硕士' END,tName
FROM DBSource..Tsteacher
GO
 
INSERT INTO Ttteacher
  SELECT replicate('0',5-len(tID))+CAST(tID as VARCHAR(50)),
  CASE tEduID                                 /*这里用REPLICATE补位*/
    WHEN 1 THEN '大专'
    WHEN 2 THEN '本科'
    WHEN 3 THEN '硕士' END,tName
FROM DBSource..Tsteacher
GO


 回到顶部
帅哥哟,离线,有人找我吗?
uglyugly
  68楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网小学一年级 贴子:10 金钱:110 金币:0 积分:2 魅力:0 精华:0 注册:2008-5-8 22:01:00
  发贴心情 Post By:2008-5-11 22:51:00

hao dongxi

thanks


 回到顶部
帅哥哟,离线,有人找我吗?
lifeng_520
  69楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网学前班 贴子:7 金钱:107 金币:0 积分:7 魅力:0 精华:0 注册:2008-3-3 14:50:00
  发贴心情 Post By:2008-5-14 22:34:00

好东西一定要看看!

 回到顶部
帅哥哟,离线,有人找我吗?
luyishi
  70楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:大家网学前班 贴子:7 金钱:107 金币:0 积分:5 魅力:0 精华:0 注册:2008-2-14 14:45:00
  发贴心情 Post By:2008-5-15 8:45:00

是不是好东西看了就知道


 回到顶部
总数 99 上一页 1 2 3 4 5 6 7 8 9 10 下一页