假如你的 外键关系,
是 DELETE CASCADE 方式 的,
那么, 删除 主表的数据的时候, 数据库 会自动 删除掉 子表里面的数据
不需要额外写任何代码
1> -- 创建外键(使用 ON DELETE CASCADE 选项,删除主表的时候,同时删除子表)
2> ALTER TABLE test_sub
3> ADD CONSTRAINT main_id_cons
4> FOREIGN KEY (main_id) REFERENCES test_main ON DELETE CASCADE;
5>
6> -- 测试删除主表数据 将成功地执行
7> DELETE
8> TEST_MAIN
9> WHERE
10> ID = 1;
11>
12> -- 测试检索子表,应该只有一条 main_id = 2 的数据
13> SELECT
14>
15> FROM
16> test_sub;
17>
18> go
(1 行受影响)
id main_id value
----------- ----------- ----------
2 2 TWOTWO
(1 行受影响)
第一题:
CREATE FUNCTION func_学生信息( @sex char(2),@dept varchar(8))
RETURNS table
as
return(
select sno,sn,sex, dept
from s
where sex=@sex and dept=@dept)
对应例子:declare @sex char(2),@dept varchar(8)
set @sex ='男'
set @dept='IS'
select from func_学生信息(@sex,@dept)
第二题:
create proc max_z( @i int,@j int,@max int output)
as
if (@i>@j)
set @max=@i
else
set @max=@j
select @max as '最大值'
对应例子:declare @ii int ,@jj int,@maxx int
exec max_z 80,120, @maxx output
第三题:
create trigger course_delete
on course
after delete
as
if exists(select from sc where cno=(select cno from deleted))
rollback
对应例子:delete
from c
where cno='c6'
第四题:
use basetest
select scsno,sn,cn,score
from s,c,sc
where ssno=scsno and ccno=sccno and dept='IS'
第五题:
select s
from s
where age<(select min(age)
from s
where dept='IS')
and (dept<>'IS')
第六题:
select sno,count(cno) as 选课门数
from sc
where cno is not null
group by sno
没必要写触发器或者事务。
分俩步走。 第一,查询sc表 Sno=95001 存在4个元组的 Sno插入到一个临时表中
然后
delete student
where sno=95001 and (select count(1) from 临时表 where sno=95001)>0
用 SQL 的 DDL 语言创建 S 表,SNo 为主键,SN 不能为空。 CREATE TABLE S1 ( SNo CHAR(6) NOT NULL CONSTRAINT PK_S PRIMARY KEY, SN CHAR(6) NOT NULL, Sex CHAR(2), Age INT, Dept CHAR(20) );
创建计算机系学生的视图,该视图的属性列由学号、姓名、课程号和任课教师号组成。 CREATE VIEW FROM WHERE AND AND S,SC,TC SSNo = SCSNo SCCNo=TCCNo SDept = '计算机'; V_COMS(SN0,SN,CNo,TNo) AS SELECT SSNo, SN, SCCNo, TNo
3检查计算机系年龄在 20 岁以上的学生学号。 SELECT SNo FROM S WHERE Age >20 AND Dept = '计算机';
4检索姓王的教师所讲课程的课程号及课程名称。 SELECT TCCNo, WHERE AND AND CN FROM T, TC, C TTNo = TCTNo TCCNo = CCNo TTN LIKE '王%';
5 检索张三同学所学课程的成绩、列出 SN,CNo 和 Score。 SELECT SN, SCCNO, FROM WHERE AND S, SC SSNo = SCSNo SN = '张三'; Score
6 检索总收入超过 1000 元的教师所讲课程的学生姓名、课程号和成绩。 SELECT FROM WHERE AND AND AND SN, SCCNo, Score S, SC, TC, T SSNo = SCSNo SCCNo = TCCNo TCTNo = TTNo (COMM + SAL ) > 1000;
8S1 同学选修了 C3,将此信息插入 SC 表中。 INSERT INTO 或 INSERT SC VALUES('S1','C3',null) SC(SNo,CNo) VALUES('S1','C3') INTO
10删除 S 表中没有选修任何课程的学生记录。 DELETE FROM S WHERE SNo NOT IN( SELECT DISTINCT SNO FROM SC );
MySQL删除数据库
删除数据库是将已经存在的数据库从磁盘空间中清除,连带着数据库中的所有数据也全部被删除。
MySQL删除数据库的基本语法格式如下:
其中“db_name”是要删除的数据库名称,如果指定数据库名不存在,则删除出错。
例子:删除数据库
删除数据库shulanxt,输入语句如下:
执行上述语句,数据库shulanxt被删除。
以上就是关于SQL中如何用一条语句删除一个学生(学生编号为040101)的信息以及选课信息命令代码是什么全部的内容,包括:SQL中如何用一条语句删除一个学生(学生编号为040101)的信息以及选课信息命令代码是什么、急:关于数据库的问题,急解答。、学生-课程数据库中,若要删除student关系中Sno=95001的元组,而sc又有4个元组的Sno=95001,可用哪几策略等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)