美文网首页
关系数据库三

关系数据库三

作者: 李耕_嘿嘿嘿黑龙江哈哈哈哈尔滨 | 来源:发表于2020-07-02 16:53 被阅读0次

    这章就是讲sql.

    1.SQL数据类型有哪些?

    略.

    2.简述表和view视图层面的操作:

    create table (name) (属性名 类型 约束,...); 声明主键可以在属性后面直接声明, 而多属性主键需要单独语句, 声明外键也要单独语句. PRIMARY KEY (属性名), FOREIGN KEY(属性名) REFERENCES 表(属性名).

    drop table 名字,名字,...;

    alter table 名字 alter/add/add contraint/drop/drop constraint 名字 +*

    定义视图:

    create/alter view 名字(属性) as 查询语句 (alter操作就是修改映射保持逻辑数据独立性)

    drop view 名字;

    3.具体数据层面处理操作.

    insert into 表() values() / from(语句) //values(直接填值) from(子查询语句)

    update 表名 set 属性=赋值 where

    delete from 表名 where 

    4.简述完整性检查对操作的反馈.

    如果是实体完整性会被破坏, 直接拒绝新操作.

    如果是参照完整性被破坏, 如果是参照关系的修改或添加 直接拒绝 如果是被参照关系的修改或者删除, 拒绝, 级联, 对应项目值归null三选一.

    三种选项可以在声明参照完整性约束的时候声明 FOREIGN KEY fk_ma REFERENCES stu(sa) 

    ON DELETE RESTRICT | SET NULL | CASCADE

    ON UPDATE RESTRICT | SET NULL | CASCADE

    update delete语句 where 语句可以嵌套子查询语句

    5.视图可否修改?插入要满足什么条件?

    视图在一定条件下是可以修改的, 需要视图中元组与基础关系中元组一一对应(定义的时候不能有聚集函数, 分组, 并,去重, from 和where包含相关子查询)

    插入需要视图可修改, 不能包含一个基本关系属性的多个副本, 且属性不能定义为表达式.

    6.select 如何去重

    select distinct +*

    7.UPPER()大写, 范围BETWEEN AND , LIKE 'E%'/'E___' REGEXP IS NULL.

    8.集合操作并可以用union, 那么交(intersect)和差(minus,except)怎么表达呢?

    可以采用in/ not in来表达

    9.如何对多个属性排序?

    采用order by 属性1 asc, 属性2 desc. 

    10. "order by 属性1" 表示什么?空值在表前还是表后?

    表示根据属性1升序排列, 空值在表后.

    11. 如何从查询结构中去掉最高值后选取前5个结果?

    select * form table where attribute is not null order by attribute1 desc limit 5 offset 1;

    12.什么聚集操作不会跳过null?

    count(*)

    13.为什么having语句才能使用聚集函数, 而where不行?

    因为分组操作在where后 having前.


    join操作:

    1.join on condition

    2.join using Sno

    3.left join on

    4.natural right join

    三类嵌套:

    exist语句 in语句 逻辑比较语句(包含ALL SOME ANY修饰词)

    相关子查询依赖外查询, exist语句中可以运用相关子查询

    exist表示全称谓词 即所有都有

    exist 表示逻辑蕴含->

    派生表必须独立子查询, 且必须重命名.

    相关文章

      网友评论

          本文标题:关系数据库三

          本文链接:https://www.haomeiwen.com/subject/ozwlqktx.html