zoukankan      html  css  js  c++  java
  • 数据库与SQL语言<4>

    s数据库面试主要包含范式、事务、存储过程、SQL语言,以及索引等诸多方面。

    1.数据库理论

    第一范式:关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R属于第一范式。

    第二范式:如果关系型数据库属于第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称第二范式。

    第三范式:如果关系型数据库是第二范式,且每个非主属性每个非主属性都不传递依赖于R的候选键,则称R的第三范式。

    BC范式:关系模式属于第一范式,且每个属性都不传递依赖于R的候选键。

    第四范式:R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡的多值依赖X->->Y时,X必是R的超键。

    数据库事务:作为单个逻辑工作单元执行的一系列操作,这些单元要么全做要么全不做,是不可分割的工作单元。(原子性、一致性、独立性、持久性)

    游标作用:定位结果集的行。

    事前触发(事案件发生前触发)、事后触发、语句级触发(可以在语句执行前或者后执行)、行级触发(触发器影响的每一行触发)

    SQL注入式攻击就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。

    2.SQL语言

    select *from ppp where num<=all(select num from ppp)   ------------找出表ppp中num最小的对应数据

     selct top 1 num from ppp order by num

    select *from ppp where num=(select Min(num) from ppp)

    select * from ppp where num in(select num from ppp group by num having(count(num)>1))-------------选择ppp中num重复的记录

    复制表(只复制结构,源表名:A,新表名:B)-----------select *into B from A  where 1=0   (表示只创建表结构,1=0永远不成立,没有符合数据,也可 1<>1)

    拷贝表(拷贝数据,源表名:A,新表名:B)-----------select *into B from A  (创建表结构,同时也要数据)

    多表联查---------select *from A,B.. where 关联条件

    临时表创建:create table #Temp(字段1 类型,字段2 类型,...)      ----------临时表要在表名前面加“#”当同时含有where子句、group by 子句 、having子句及聚集函数时,执行顺序如下:
    --执行where子句查找符合条件的数据;
    --使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;最后用having 子句去掉不符合条件的组。
    --having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
    --having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
    --having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。

    order by 在所有关键字的后面。

    数据库语言(DML、DDL、DCL、DQL、TCL) 

    类型
    ※数据定义语言(DDL-data definition language),例如:CREATE、DROP、ALTER等语句。
    ※数据操作语言(DML-data manipulation language),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
    ※ 数据查询语言(DQL),例如:SELECT语句。(一般不会单独归于一类,因为只有一个语句)。
    ※数据控制语言(DCL-Data Control Language),例如:GRANT(授权)、REVOKE(收回授予权限)、deny等语句。
    ※事务控制语句(TCL),例如:COMMIT(注释)、ROLLBACK(回滚)等语句。

    mysql:

    创建数据库:---create database test;(test 是数据库名)

    删除数据库:--drop database test;

    创建表:--create table class

          {

             code varchar(20) primary key,     (主键)

             name varchar(20) not null;   

           };

         ----create table ceshi{}

    删除表:--drop table ceshi;

    插入表:三种方式

      1)不指定具体字段:insert into ceshi values(value1,value2,value3);

      2)依次指定表中字段:insert into ceshi(id,name) values(value1,value2);

      3)同时插入多条记录:insert into ceshi values (1,xun,12),(2,ying,12),(3,five,13);

  • 相关阅读:
    python 使用pyinstaller生成exe,以及编译报错:编译时报错如下:No module named timedeltas not build. If you want import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace --force' to
    Remote desktop manager 如何导入.db配置文件
    C# string怎么转换成泛型T?
    C# 如何在ComboBox输入文字改变时,触发事件?
    C# 检查panel所有的checkbox 是否被选中
    C# bool? 的意思
    WPF: Accessing Databases with Windows Presentation Foundation / WPF链接数据库
    WPF 03
    WPF MVVC 基础
    使用 Topshelf 创建 Windows 服务
  • 原文地址:https://www.cnblogs.com/xunyingFree/p/7356900.html
Copyright © 2011-2022 走看看