关于SQLServer数据库表数据插入的基础问题,请求详细解答。

ayano_雪兔 2019-01-07 01:11:54
create table subjects1

(id int,

name nchar(50),

flag bit,

mark int)

select * from subjects1

delete from subjects1

go
insert into subjects1

select '1','语文',1,3

union

select '2','数学',1,4

union

select '3','英语',0,2

union

select '4','毛概',0,3

union

select '5','物理',1,4

union

select '6','地理',1,4


create table student1

(id int,

name nchar(10),

subject1 int,

subject2 int,

subject3 int,

subject4 int,

subject5 int,

subject6 int)
delete from student1

go
insert into student1

select 1,'小张',98,67,85,86,67,98

union

select 2,'小王',65,86,99,80,90,64

union

select 3,'小陈',75,34,87,94,95,76

union

select 4,'小方',86,74,97,57,56,96

union

select 5,'小周',75,55,85,96,86,65

union

select 6,'小刘',88,54,65,76,78,65


create table score1

(id int,

studid int,

subjid int,

grade int)





语句和结果如上,求:(student1-->score1)将student1表中的成绩插入到 score1表中,(subject1=语文,subject2=数学,其它类推) 如:

1 1 1 80

2 1 2 90



语句和结果如上,求 (score1 --> student1)清空 student1 (delete from student1),再将 score1的数据插入到 student1中。请贴出详细语句,谢谢了!



...全文
168 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayano_雪兔 2019-01-09
  • 打赏
  • 举报
回复
求详细语句
ayano_雪兔 2019-01-07
  • 打赏
  • 举报
回复
引用 11 楼 二月十六 的回复:
[quote=引用 8 楼 ayano_雪兔 的回复:] [quote=引用 7 楼 二月十六 的回复:][quote=引用 6 楼 ayano_雪兔 的回复:] [quote=引用 5 楼 二月十六 的回复:]1 1 1 80 2 1 2 90 这个数据,studid是1,对应的名字是什么?怎么对应的
studid是学生ID 对应student1的name字段 小张[/quote] 不是把student1给删除了么[/quote]所以可以再插入数据嘛…[/quote] 删除之后没有名字了,外边有的也是id,不是名字,名字去哪找?[/quote]名字一列最后再插入可以嘛 先让name字段空着
二月十六 版主 2019-01-07
  • 打赏
  • 举报
回复
引用 8 楼 ayano_雪兔 的回复:
[quote=引用 7 楼 二月十六 的回复:][quote=引用 6 楼 ayano_雪兔 的回复:] [quote=引用 5 楼 二月十六 的回复:]1 1 1 80 2 1 2 90 这个数据,studid是1,对应的名字是什么?怎么对应的
studid是学生ID 对应student1的name字段 小张[/quote] 不是把student1给删除了么[/quote]所以可以再插入数据嘛…[/quote] 删除之后没有名字了,外边有的也是id,不是名字,名字去哪找?
二月十六 版主 2019-01-07
  • 打赏
  • 举报
回复
引用 9 楼 ayano_雪兔 的回复:
[quote=引用 7 楼 二月十六 的回复:][quote=引用 6 楼 ayano_雪兔 的回复:] [quote=引用 5 楼 二月十六 的回复:]1 1 1 80 2 1 2 90 这个数据,studid是1,对应的名字是什么?怎么对应的
studid是学生ID 对应student1的name字段 小张[/quote] 不是把student1给删除了么[/quote]第一道小题也是,要直接把数据插入到score1表里,可以实现嘛…[/quote]
INSERT INTO dbo.score1
SELECT  ROW_NUMBER()OVER(ORDER BY  t.studid,t.subjid),*
FROM    ( SELECT    id studid,
                    1 AS subjid,
                    subject1 AS grade
          FROM      student1
          UNION ALL
          SELECT    id,
                    2 ,
                    subject2
          FROM      student1
          UNION ALL
          SELECT    id,
                    3 ,
                    subject3
          FROM      student1
		  UNION ALL
          SELECT    id,
                    4 ,
                    subject4
          FROM      student1
		  UNION ALL
          SELECT    id,
                    5 ,
                    subject5
          FROM      student1
		  UNION ALL
          SELECT    id,
                    6 ,
                    subject6
          FROM      student1
        ) t
ayano_雪兔 2019-01-07
  • 打赏
  • 举报
回复
引用 7 楼 二月十六 的回复:
[quote=引用 6 楼 ayano_雪兔 的回复:] [quote=引用 5 楼 二月十六 的回复:]1 1 1 80 2 1 2 90 这个数据,studid是1,对应的名字是什么?怎么对应的
studid是学生ID 对应student1的name字段 小张[/quote] 不是把student1给删除了么[/quote]第一道小题也是,要直接把数据插入到score1表里,可以实现嘛…
ayano_雪兔 2019-01-07
  • 打赏
  • 举报
回复
引用 7 楼 二月十六 的回复:
[quote=引用 6 楼 ayano_雪兔 的回复:] [quote=引用 5 楼 二月十六 的回复:]1 1 1 80 2 1 2 90 这个数据,studid是1,对应的名字是什么?怎么对应的
studid是学生ID 对应student1的name字段 小张[/quote] 不是把student1给删除了么[/quote]所以可以再插入数据嘛…
二月十六 版主 2019-01-07
  • 打赏
  • 举报
回复
引用 6 楼 ayano_雪兔 的回复:
[quote=引用 5 楼 二月十六 的回复:]1 1 1 80 2 1 2 90 这个数据,studid是1,对应的名字是什么?怎么对应的
studid是学生ID 对应student1的name字段 小张[/quote] 不是把student1给删除了么
ayano_雪兔 2019-01-07
  • 打赏
  • 举报
回复
引用 5 楼 二月十六 的回复:
1 1 1 80 2 1 2 90 这个数据,studid是1,对应的名字是什么?怎么对应的
studid是学生ID 对应student1的name字段 小张
二月十六 版主 2019-01-07
  • 打赏
  • 举报
回复
1 1 1 80 2 1 2 90 这个数据,studid是1,对应的名字是什么?怎么对应的
ayano_雪兔 2019-01-07
  • 打赏
  • 举报
回复
引用 3 楼 二月十六 的回复:
清空之后名字怎么来的?只有id
可以写成插入语句吗,不写查询语句,delete from student1以后,student1的name字段内容也是手动输入插入,有办法实现嘛?不知道我表述有没有问题…
二月十六 版主 2019-01-07
  • 打赏
  • 举报
回复
清空之后名字怎么来的?只有id
ayano_雪兔 2019-01-07
  • 打赏
  • 举报
回复
引用 1 楼 二月十六 的回复:
SELECT  ROW_NUMBER()OVER(ORDER BY  t.studid,t.subjid),*
FROM ( SELECT id studid,
1 AS subjid,
subject1 AS grade
FROM student1
UNION ALL
SELECT id,
2 ,
subject2
FROM student1
UNION ALL
SELECT id,
3 ,
subject3
FROM student1
UNION ALL
SELECT id,
4 ,
subject4
FROM student1
UNION ALL
SELECT id,
5 ,
subject5
FROM student1
UNION ALL
SELECT id,
6 ,
subject6
FROM student1
) t


还有一道小题哦 求(score1 -->student1)清空student1(delete from student1),再将score1的数据插入到student1中。
二月十六 版主 2019-01-07
  • 打赏
  • 举报
回复
SELECT  ROW_NUMBER()OVER(ORDER BY  t.studid,t.subjid),*
FROM ( SELECT id studid,
1 AS subjid,
subject1 AS grade
FROM student1
UNION ALL
SELECT id,
2 ,
subject2
FROM student1
UNION ALL
SELECT id,
3 ,
subject3
FROM student1
UNION ALL
SELECT id,
4 ,
subject4
FROM student1
UNION ALL
SELECT id,
5 ,
subject5
FROM student1
UNION ALL
SELECT id,
6 ,
subject6
FROM student1
) t


34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧