数据库题以及笔记

来源:互联网 发布:好的java培训机构 编辑:程序博客网 时间:2024/06/10 23:30

SQL语句的执行顺序:

5 select foo,count(foo)
1 from pokes  
2 where foo>10
3 group by foo
4 having count(*)>5
6 order by foo 


数据库范式:

第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;(即属性不能被分割!)
第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;(即主键能决定一个记录!不能有部分依赖!即A和B是主键,C单独由B决定)

第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。(即一个表中不存在传递依赖!即A是主键,C却可以由B决定)




2、在数据库系统中,产生不一致的根本原因是 (D) 

A.数据存储量太大 B.没有严格保护数据 C.未对数据进行完整性控制 D.数据冗余


18、在下面的描述中,哪些不属于数据库安全性的措施()AC
A. 普通ZIP压缩存
B. 关联加密存储
C. 数据分段
D. 授权限制
E. 数据多机备份
解析:A和C跟数据库安全无关。


有这样一个表,要求检索出第二大的数据

+----+--------+| Id | Salary |+----+--------+| 1  | 100    || 2  | 200    || 3  | 300    |+----+--------+
# Write your MySQL query statement belowSELECT max(Salary) As SecondHighestSalaryFROM EmployeeWHERE Salary<(SELECT max(Salary) FROM Employee)



有这么2个表,请给出所有人的地址,而且地址可以为空!

需要用到外部联结,即联结起来时,有的属性可以为空,用LEFT JOIN ……ON 或者RIGHT JOIN……ON

Table: Person

+-------------+---------+| Column Name | Type    |+-------------+---------+| PersonId    | int     || FirstName   | varchar || LastName    | varchar |+-------------+---------+PersonId is the primary key column for this table.

Table: Address

+-------------+---------+| Column Name | Type    |+-------------+---------+| AddressId   | int     || PersonId    | int     || City        | varchar || State       | varchar |+-------------+---------+AddressId is the primary key column for this table.
# Write your MySQL query statement belowSELECT FirstName,LastName,City,StateFROM Person LEFT OUTER JOIN AddressON Person.PersonId = Address.PersonId 


找出表中第N大的数据,利用函数

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INTBEGIN  SET N=N-1; //N-1要用在这里 #  RETURN (      # Write your MySQL query statement below.      SELECT DISTINCT Salary      FROM Employee      ORDER BY Salary DESC      LIMIT N,1   #从第N行开始选取1行。切忌行从0开始算的,不可以出现计算符如N-1  );END




0 0
原创粉丝点击