高级查询

Posted FANKEXIN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级查询相关的知识,希望对你有一定的参考价值。

一.

1.主键约束
  alter table grade
  add constraint PK_GradeId Primary key grade(gradeid)

  --删除主键
 #取消主键列的自增,再删除主键
 ALTER TABLE student MODIFY studentno INT

 #删除主键
 ALTER TABLE student DROP PRIMARY KEY

2.  外键约束

  alter table student
  add constraint FK_Grade_Student_GradeId Foreign key (gradeid) referrences grade(gradeid)

---删除外键   界面上(图形化界面)直接点击无效 (1.先用如下命令删除  2.再点击鼠标删除)
  alter table  student
  drop foreign key FK_Grade_Student_GradeId

 3. 唯一约束 年级名称唯一()
  alter table grade
  add constraint UK_Gradename UNIQUE Key(gradename) 
 
   ---删除唯一约束
   alter table grade
   drop index UK_Gradename

 4. 默认值约束
  alter table grade
  alter column gradename set default \'X班\'

  --删除语法
   alter table grade
    alter column gradename drop default

5.  检查约束  mysql中不起作用 
   alter table student
   add constraint CK_GradeID Check(gradeid<7) 

   --无法删除

二.什么是引擎?
 解析:能让程序启动并执行的一个程序,也称之为驱动。
搜索引擎指自动从因特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。
因特网上的信息浩瀚万千,而且毫无秩序,所有的信息像汪洋上的一个个小岛,
网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为用户绘制一幅一目了然的信息地图,
供用户随时查阅。它们从互联网提取各个网站的信息(以网页文字为主),建立起数据库,
并能检索与用户查询条件相匹配的记录,按一定的排列顺序返回结果。

个人理解:在软件行业中,能给程序员提供工具类型的帮助的代码集锦等小工具。可以看成是一个引擎。

三.

删除之delete 和Truncate 巅峰对决
VS1: delete 可以有where,删除部分记录
Truncate一删除所有记录
删除后可以恢复,记录日志
Truncate 删除后不可恢复,不记录日志
VS2: delete
删除效率低一些
删除速度快,效率高
VS3: delete
Truncate
删除后编号会接着上次最大值
截断表: 编号从1开始
Truncate
VS4: delete
四.

使用     三大范式    实现数据库设计规范化

  1.第一范式
        确保每列原子性(最小单元)


  2.第二范式
       在第一范式的基础上,保证表中每列和主键相关 。
       通俗的说:就是保证每张表只做一件事情。


  3.第三范式
       在第二范式的基础上,除了主键列外的其他列和主键直接相关


 规范化和性能的关系:
   既想要性能,也想要规范操作。
   相辅相成,取一个平衡。

五.

 

以上是关于高级查询的主要内容,如果未能解决你的问题,请参考以下文章

高级查询(嵌套查询)和(相关子查询)

SQL(高级查询)

Mysql 基础 高级查询

mysql高级查询

Hibernate 的查询语言 HQL 与高级查询

高级查询,关联查询