12.删除外键约束

使用DDL语句删除外键约束

alter table 表名 drop foreign key 约束名;

实例:

删除dept_id的外键约束

alter table emp drop foreign key emp_fk;
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库管理规范 版本号:V1.0 信息科 2017年4月 数据库管理规范 1 规范说明 3 2 维护管理安全规范 3 3设计规范 4 4. SQL编写规范 7 5. 数据库备份与恢复策略规范 8 6开发测试与上线安全规范 10 7 监控 10 8连接池使用规范 11 9 数据库重要级别划分 11 10 数据库安装规范 12 11 业务上线数据库部分规范 13 1 规范说明 本规范是针对数据库使用,维护管理,设计开发等。 2 维护管理安全规范 2.1数据库版本使用规范【强制】 MYSQL使用5.6.39社区版本 2.3数据库账户安全与管理规范 2.3.1 密码安全【强制】 密码不少于8位,应包含数字,字母,字符 密码不应该和用户名一致 删除数据库默认空用户账户 必须修改root密码 2.4账户安全管理【强制】 为应用程序设立独立访问账户 禁止开发工程师通过应用帐号登录生产数据库 禁止QA申请线上账号与使用账号登陆线上环境进行测试 数据库只有root用户具有最高管理权限 备份数据库用户要单独建立,并专属备份恢复操作 数据库安装后删除或锁闭不需要使用的数据库账号 数据库管理员账户可以锁定和解锁其他用户 数据库管理账户在空闲5分钟以上会自动退出 数据库管理权限账号不能超过2个 2.5数据库日志管理规范【强制】 windows、linux 下的日志管理 Windows系统应开启日志功能,记录系统和系统中各个进程的相关信息 linux的操作系统要开启系统日志 Mysql数据库如果使用了innodb引擎必须打开二进制日志 Mysql必须打开慢日志,并且将慢日志阀值设置为1-2秒之间 对Mysql的错误日志等要进行定期查看,定期清理和定期备份管理 2.6数据库架构规范【强制】 2.6.1 mysql数据库高可用 MYSQL 采用复制+第三方心跳软件或者第三方集群架构(经测试后)实现近7X24小时高可用性 要求,数据库架构必须能够实现故障自动迁移,满足业务7X24小时持续服务要求 3设计规范 3.1命名规范【强制】 3.1.1表的命名 表的名称在T_后增加一个或者多个后缀,表名、字段名必须使用小写字母或数字;禁 止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因 为无法进行预发布,所以字段名称需要慎重考虑。 3.1.2视图命名:V_相关表名(或者根据需要另取名字) 3.1.3存储过程命名:PRO_存储过程名(用英文表达存储过程意义) 3.1.4函数命名:FUN_函数名称(用英文表达函数作用) 3.1.5触发器命名:TRI_触发器名称(用英文表达触发器作用) 3.1.6索引命名:I_表名_字段名(如果存在多字段索引,取每字段前三个字符加下划 线组合,如:在 hyid,hyname,hymobile上建立联合索引,命名:I_表名_hyi_hyn_hym,如果前三个截取字 符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在 zhyid,zhyname,zhymobile上建立联合索引,命名:I_表_id_nam_mob) 3.1.7唯一索引命名:UI_表名_字段名(如果存在多字段唯一索引,取每字段前三个字 符加下划线组合,如:在 hyid,hyname,hymobile上建立唯一索引,命名:UI_表名_hyi_hyn_hym,如果前三个截取 字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在 zhyid,zhyname,zhymobile上建立唯一索引,命名:UI_表_id_nam_mob) 3.1.8主键命名:PK_表名_字段名(如果存在多字段主键,取每字段前三个字符加下划 线组合,如:在 hyid,hyname,hymobile上建立主键,命名:PK_表名_hyi_hyn_hym,如果前三个截取字符 相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在 zhyid,zhyname,zhymobile上建立主键,命名:PK_表_id_nam_mob) 3.1.9外键命名:FK_表名_主表名_字段名 10. Sequence命名:SEQ_表名_列名(或者根据需要另取名字) 2. 设计原则 3.2.1表的设计 【强制】每个表,都必须要有主键。主键是每行数据的唯一标识,保证主键不可随意更 新修改,在不知道是否需要主键的时候,请加上主键,它会为你的程序以及将来查找 数据中的错误等等,提供一定的帮助; 【强制】所有的MySQL数据库除历史原因外,都必须采用UTF8编码 【建议】一个表的某列与另一表有关联关系的时候, 请在应用程序维护外键关系,如果在数据库建立外键约束请遵循以下几点: 尽量少使用外键,在高并发下数据库会增加较大开销; 不要以数据操作不方便为理由而不建外键。加上外键以后,一些
数据库设计规范 统一要求规范 1 主键及主键约束 pk_表名,其中表名不含"系统规则名",例如:部门表org_dept的主键为"pk_dept", 主键约束名为"pk_dept"。 2 外键及外键约束 子表中的外键名和主表的主键名一致,外键约束名为"fk_"加上主表的表名。例如:主表 表名为tm_in_h,主表主键名为pk_in_h,主表约束名为pk_in_h; 子表名为tm_in_b,子表主键名为pk_in_b,子表主键约束名为pk_in_b,子表外键名为p k_in_h,子表外键约束名为fk_in_h。 3 表字段的引用 一个表a的字段在引用另外一个表b的主键字段时,表a的该字段的命名与表b的主键名称 一样。例如:如果表a有一个引用"部门"的字段,其字段直接命名为"pk_dept"。如果有 多个字段引用同一个档案,则不用如此处理。 4 属性命名开始字符规范 主要以数据库字段的类型和Java类型结合来标示字段名的开始字符 "数据库类型 "JAVA类型 "开始 "示例字段名 "示例说明 " " " "字符 " " " "char(20) "java.lang.String "c,pk_"cproductid "和引用的表 " " " " ",pk_wo "的主键名一 " " " " " "致,所以如 " " " " " "果是工作单i" " " " " "d的话,用的" " " " " "是pk_wo,如" " " " " "果是NC产品 " " " " " "表的话,是c" " " " " "productid。" "varchar(30) "java.lang.String "v "vbillcode "单据号 " "char(19) "nc.vo.pub.lang.UFDateTim"t "tmaketime "时间 " " "e " " " " "char(10) "nc.vo.pub.lang.UFDate "d "dauditdate "日期 " "int "java.lang.Integer "i "iprintcount"打印次数 " "int "java.lang.Integer(元数 "f "fstatusflag"单据状态 " " "据为整数枚举) " " " " "char(1) "nc.vo.pub.lang.UFBoolean"b "boutendflag"是否出库完 " " " " " "成 " "decimal(28,8"nc.vo.pub.lang.UFDouble "n "nmny "金额 " ") " " " " " "char(8) "nc.vo.pub.lang.UFTime "t "tdelivtime "运输时间 " 5 单据状态 "字段名字 "字段说明 "数据库类型 "JAVA类型 " "fstatusflag "单据状态 "int "java.lang.Intege" " " " "r " 6 审计信息 "字段名 "描述 "数据类型 "长 " " " " "度 " "creator "创建人 "char "20 " "creationtime"创建时间"char "19 " "modifier "修改人 "char "20 " "modifiedtime"修改时间"char "19 " "pk_corp "公司/单 "char "4 " " "位 " " " 7 审批流信息 "字段名 "描述 "数据类型 "长 " " " " "度 " "operator "制单人 "char "20 " "approver "审核人 "char "20 " 8 系统信息 "字段名 "描述 "数据类型 "长 " " " " "度 " "dr "删除标志"SMALLINT "2 " "ts "时间戳 "char "19 " 9 树型业务对象的内部编码 "code "name "字段名 "数据类型 "长度 "精度 "备注 " "innercode "内部编码 "Innercode "varchar "60 " " " 10 打印次数 "字段名字 "字段说明 "数据库类型 "JAVA类型 " "iprintcount "打印次数 "int "java.lang.Intege" " " " "r " 11 单据日期时间 "字段名字 "字段说明 "数据库类型 "JAVA类型 " "dbilldate "单据日期 "char(19) "nc.vo.pub.lang.UFDate " "taudittime "审核时间 "char(19) "nc.vo.pub.lang.UFDateTim" " " " "e " 制单日期、审批日期字段删除12 单据属性名 "字段名字 "字段说明 "数据库类型 "JAVA
三、数据库操作题(40分) 设数据库中有以下基本表: 学生基本信息表:student(sno,sname,sgender,sbirth,sdept) 课程信息表:course(cno,cname,credit) 学生选课关系表:SC(sno,cno,grade) 系信息表:dept(sdept,sdeptName,sdeptAddress) 其中各属性表示:sno:学号,sname:学生姓名,sgender:性别, sbirth:出身日期,sdept学生所在的系,cno:课程号,cname:课程名称,credit课程的学 分;grade:考试成绩;sdeptName:系名称;sdeptAddress:系地址。(1- 10题每题3分,11-12题每题5分) 1、查询出身日期在1990-1-1至1990-12-31日之间的学生信息。 select * from student where sbirth between '1990-1-1' and '1990-12-31' 2、查询所有姓"王"的学生信息。 Select * from student where sname like '王%' 3、查询计算机系(cs)及信息系(info)所有学生信息,要求按学生姓名降序排序。 Select * from student where sdept in ('cs','info') order by sname desc. 4、删除课程信息表中课程号为1的课程(考虑外键约束条件)。 Delete sc where cno='1' Delete course where cno = '1' 5、在系信息表中插入一条记录,sdept:Art,sdepatName:艺术系,sdeptAddress:机 电大楼。 Insert into sdept values('Art',' 艺术系',' 机电大楼') 6、根据学生出生日期查询学生的年龄。 select sno,sname,datediff(yy,sbirth,getdate()) as sage from t_student 7、关联学生基本信息表及系信息表查询计算机系的所有学生信息,要求列出系名称, 学号,学生名、出生日期。 Select sdept.sdeptName,student.sno,student.sname,student.sbirth from student,sdept where student.sdept = sdept.sdept and sdept.sdeptName = '计算机系' 8、查询课程的平均成绩在75分以上的学生。 Select sno,avg(grade) as '平均成绩' from sc Group by sno Having avg(grade) > 75 9、找出和学号为'2002151121'同在一个系学习的所有学生。 Select * from student where sdept = (select sdept from student where sno=' 2002151121') 10、关联学生基本信息表、课程信息表、学生选课关系表建立视图,视图名为v_scDeta il。视图包括:学号、学生姓名、课程名称、考试成绩信息。并在视图的基础上查 询选修了课程名称为'数据库原理'课程的学生。 Create view v_scDetail As Select student.sno,student.sname,course.cname,sc.grade From student,course,sc Where student.sno = sc.sno and course.cno = sc.cno Select * from v_scDetail where cname = '数据库原理' 11、列出女生的人数大于20人的系及女生人数,并按女生人数从高到低排序。 select sdeptname,count(sgender) as GNums from student t join sdept d on t.sdept = d.sdept where t.sgender = '女' group by sdeptname,sgender having count(sgender) >= 20 order by count(sgender) desc 12、统计每门课程的总分、平均分、最高分、最低分(注:列出所有课程,包括没有学 生选择的课程,其总分、平均分、最高分、最低分用NULL表示)。 Create view as v_Stat As Select cno,sum(grade) as GTotal,avg(grade) as GAv

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值