【急求】创建一个数据库,并创建两个数据库表。 拜托

【急求】创建一个数据库,并创建两个数据库表。 拜托,第1张

假设你新表为new_table,老表是tab1,tab2

没有直接从两个基本表直接生产新表的,只能分下面2个步骤创建

(1)先创建新表,里面包括tab1,tab2的字段,如

CREATE TABLE new_table

( F1 varchar(20) NOT NULL,

F2 varchar(11) NOT NULL,

F3varchar(40) NOT NULL,

F4 money NOT NULL

)

(2)用INSERT new_table SELECT tab1.*, tab2.* FROM tab1 INNER JOIN tab2 ON tab1.F1=tab1.F3 插入二个基表的数据,这里假定你二个表通过F1,F3关联(关联有一一或一对多,多对一,你要注意JOIN的类型)

如果你可以用视图,视图名叫new_view则,可以直接生成2个表数据的视图

CREATE VIEW new_view AS SELECT tab1.*, tab2.* FROM tab1 INNER JOIN tab2 ON tab1.F1=tab1.F3

你好,这种功能的实现方法有很多。下面提供两种方案。

1  .   建立级联

2  .   建立触发器

参见下面的代码,有问题再追问。

-- 建立测试环境

-- 创建测试主表. ID 是主键.

CREATE TABLE test_main (

  id      INT   NOT NULL,

  value   VARCHAR(10),

  PRIMARY KEY(id)  

)

-- 创建测试子表. 

CREATE TABLE test_sub (

  id      INT  NOT NULL,

  main_id INT ,

  value   VARCHAR(10),

  PRIMARY KEY(id)  

)

-- 插入测试主表数据.

INSERT INTO test_main(id, value) VALUES (1, 'ONE')

INSERT INTO test_main(id, value) VALUES (2, 'TWO')

-- 插入测试子表数据.

INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE')

INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO')

方法一、级联

-- 增加外键约束,  实现级联删除

-- 创建外键(使用 ON DELETE CASCADE 选项,删除主表的时候,同时删除子表)

ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id)  REFERENCEStest_main  ON DELETE CASCADE

-- 测试删除主表数据. 将成功地执行.

DELETE TEST_MAIN WHERE ID = 1

-- 测试检索子表,应该只有一条 main_id = 2 的数据.

SELECT * FROM test_sub

go

(1 行受影响)

id          main_id     value

----------- ----------- ----------

          2           2 TWOTWO

 

(1 行受影响)

方法二、建立触发器进行删除

IF EXISTS (SELECT NAME FROM SYSOBJECTS 

WHERE NAME = 'DEL_TR' AND TYPE = 'TR') 

DROP TRIGGER DEL_TR 

GO 

CREATE TRIGGER DEL_TR 

ON TEST_MAIN

FOR DELETE 

AS 

IF (SELECT COUNT(*) FROM DELETED) > 0 

DELETE FROM TEST_SUB WHERE ID IN (SELECT ID FROM DELETED) 

GO

1、首先我们打开Workbench创一个建数据库(这里都使用闪电1执行选定命令行)。

2、先创建Student学生表。

3、再创建course课程表。

4、然后就可以创建sc关联表了我们先写上Student的主键和course的主键,并写上sc自己的属性成绩。

5、再写上主键约束,以及把sc表的学号属性和Studnet的学号关联、课程号属性和course的课程号关联。

6、再次运行就可以看到我们成功创建了学生表和课程表的关联表sc。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6692308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存