数据库基础知识

1.存储过程和函数的区别
答:存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。  
——————————————————————
2.事务是什么?
答:事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:  
       1) 原子性  
              事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。  
       2)一致性  
             事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构 (如 B 树索引或双向链表)都必须是正确的。  
        3)隔离性  
              由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。  
         4)持久性  
               事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
——————————————————————

3.游标的作用?如何知道游标已经到了最后?
答:游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。  
——————————————————————

4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别
答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。  
        语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。
——————————————————————
5. 数据库设计原则、范式
答:第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 
     第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 
        第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
 
    没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余

   总的来说:消除了数据冗余、更新异常、插入异常和删除异常

——————————————————————

 

6. 数据库常用的编码方式有哪几种
答:UTF-8、GB2312、GBK、ISO8859 
——————————————————————

7. 如果有10万条学生成绩信息,怎么获取成绩最高的那一条数据,怎么获取成绩第三的那一条数据,列举你认为性能最好的方式
答:语法:limit begin,count    第一条的 begin 是0    count 是取多少条
    ①这个是获得第一的那个数据 
    select * from 成绩单 order by 成绩 desc limit 0,1 

    第三的 
    select * from 成绩单 order by 成绩 desc limit 2,1 

   ②如果这个查询频繁使用,还是给成绩加上一个字段,代表排名,然后做成索引好了 
   select * from 成绩单 where 排名=3 这样就行了。

——————————————————————


8.StrudentScoreInfo表
id Subject score
1 语文 73
1 数学 86
1 英语 90 
2 语文 86
2 数学 51
2 英语 60 
3 语文 76
3 数学 59
3 英语 83 

查询出总分大于200的id

id score
1 249
请在下面写出sql语句:

select id,sum(score) as allscore 
from StrudentScoreInfo s 
group by id 
having sum(score)>200

-------------------------

1. SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)以及数据控制语言(DCL)
2. DML(Data Manipulation Language)是数据操作语言 :insert、update、delete
    DDL(Data Definition Language)是数据库定义语言:create database、create table/view、alter table/view、 truncate table
    DCL(Data Control LanguageData Manipulation Language)是数据库控制语言,是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句
   DQL(Data Query Language)是数据查询语言:select
 

以下是我精心整理的文章:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值