SQL数据库知识点总结归纳

本文详细总结了SQL数据库的相关知识点,包括ACID特性、外键的作用、视图的定义与操作、日期函数DATEADD的使用、数据库语言分类、数据完整性、事务处理、SQL查询语法、数据库设计与管理等多个方面,深入探讨了SQL在数据操纵、数据定义、数据安全和并发控制等方面的重要概念和操作。此外,还涵盖了数据库索引、视图、事务、权限管理、数据类型、数据操作以及各种SQL语句的使用,对理解数据库系统有重要作用。
摘要由CSDN通过智能技术生成

 前后顺序可以任意颠倒,不影响库中的数据关系

关系数据库的逻辑性强而物理性弱,因此关系数据库中的各条记录前后顺序可以任意颠倒,不影响库中的数据关系

一名员工可以使用多台计算机(1:m),而一台计算机只能被一名员工使用(1:1),所以员工和计算机两个实体之间是一对多的关系

4f1a322ac51a4f1482f3973c1382b846.png

视图是指计算机数据库的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。视图一经定义就无法修改 

视图一经定义就无法修改 

28686326146f4917bb4c7598d853e6b1.png

DATEADD() 函数在日期中添加或减去指定的时间间隔。

语法 :DATEADD(datepart,number,date)

datapart参数的取值范围{yy/yyyy,qq/q,mm/m,dy/y,dd/d,wk/ww,dw/w,hh,mi/n,ss/s,ms,mcs,ns}

number 是你希望添加的间隔数

date 参数是合法的日期表达式
负责数据库中查询操作的数据库语言数据操纵语言

SQL语言中数据定义语言DDL中包括哪个语句(A)
A、DROP
B、DELETE
C、select
D、grant

数据定义d语言:负责数据的模式定义与数据的物理存取构建;

数据定义语言(DDL):CREATE(创建数据库或表或索引)ALTER(修改表或者数据库)DROP(删除表或索引)

数据操纵m语言:负责数据的操纵,包括查询及增、删、改等操作;

数据操纵语言(DML): SELECT(查询) INSERT(插入) UPDATE(更新) DELETE(删除)

数据控制c语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。

数据查询语言(DQL):是由SELECT子句,FROM子句,WHERE子句组成的查询块

数据控制语言(DCL):GRANT(赋予用户权限) REVOKE(收回权限) DENY(禁止权限)

数据库管理系统是 在操作系统支持下的系统软件

数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。 

修改表结构的关键字都是alter table 表名,再跟具体修改的语句,如

添加表字段

alter table table_name add 字段名称 字段类型

删除表字段

alter table table_name drop 字段名称

修改表字段

alter table table_name change 旧字段名称 新字段名称 字段类型

alter table table_name modify 字符名称 字符类型

在sql数据库中,哪个语句能校验整数列 i 的值不小于 1 不大于 10 ? A

A i BETWEEN 1 AND 10

B i BETWEEN 0 AND 11

C i IN INTERVAL(0,11)

D i IN INTERVAL(1,10) 

当interval作为函数时,它被当作一个比较函数,即interval(),如interval(4,0,1,2,3,4,5,6) ,则在函数中,第一个数4作为被比较数,后面的0,1,2,3,4,5,6为比较数,然后将后面的数字依次与4进行比较,返回小于等于4的个数,所以上述结果为5,注意只有将4后面的数字从大到小进行排序,interval函数才能正常使用,若排序混乱,也可以使用但会影响最终结果。

当interval作为关键字时,表示为时间间隔,常用在date_add()、date_sub()函数中,常用于时间的加减法,查询当前时间之前两个小时的日期:select now()—interval 2 hours;
a74f4094e1cb45debcd2dd486e79b988.png

 HAVING在查询语句中必须依赖于GROUP BY

WHERE子句用来限制SELECT语句从表中指定选取的行

 GROUP BY子句用来分组WHERE子句的输出结果集

having是分组查询时,在分组后条件过滤,这里的过滤是针对行来过滤,不是筛选列

where是分组前的过滤,group by 是分组 

6e556c08278b452490b84a2647847686.png

数据库系统的特点:数据共享性高,冗余度小;具有高度的物理独立性和逻辑独立性;整体结构化,用数据模型描述;由数据库系统提供数据安全性、完整性、 并发控制和恢复能力。简单说即数据库系统的特点为高共享、低冗余、独立性高、具有完整性等。

sum返回表达式中所有数的总和,因此只能用于数字类型的列

avg不能使用日期型的列,max和min只能用于数值型的列,count可以使用任意类型的字段,但都不属于求和函数 

将实体-联系模型转换为关系模型时,实体之间多对多联系在关系模型中的实现方式是( )A 

A 建立新的关系 B 建立新的属性 C 增加新的关键字 D 建立新的实体 

将实体-联系模型转换为关系模型时,一个m:n的联系可以转换为一个独立的关系模式,与该联系相连的各实体的码及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。故本题答案为A选项。 

设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码) 为( )。 C

A 课号,成绩 B 学号,成绩 C 学号,课号 D 学号,姓名,成绩 

学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C。 

关系数据库所采用的数据存放形式是() A

A 二维表 B 链表 C 网状 D 二叉树 

关系数据库是以“二维表”的形式组织和存放数据的。. 关系数据库的表采用二维表格来存储数据,是一种按行与列排列的具有相关信息的逻辑组,它类似于Excel工作表;一个数据库可以包含任意多个数据表。 

某关系表有:员工(部门编号,部门名称,员工编号,姓名,性别,年龄),则其主码为()。A

A 部门编号、员工编号 B 员工编号 C 姓名 D 部门编号

由于一个员工可能属于多个部门(如CEO等),所以主码应该选A 

 在使用 limit 子句时,如果没有足够的行,则:B

A MySQL会报错 B MySQL将只返回它能返回的那么多行 C MySQL将不会返回任何行 

 给出数据表 score(stu-id,name,math,english,Chinese), 下列语句正确的是( )A

A Select sum(math),avg(chinese) from score

B Select *,sum(english) from score

C Select stu-id, sum(math) from score

D Delete * from score 

B和C:*多行,sum一行,stu_id多行,sum一行,D:正确的删除为delete from score 
def676582afb44fe9895433e3114c239.png

数据库做join操作时,至少要涉及到几张表? B

A 3 B 1 C 2 D 4 

自连接即涉及一张表 

在一个mysql查询中,使用哪一个关键字能去除重复列值() C

A group by B order by C distinct D limit 

在一个含有group by的查询sql中,同时存在having和where,sql在解析执行的时候,先执行的是哪一个? B

A having B where 

在下面的两个关系中,职工号和部门号分别为职工关系和部门关系的主键(或称主码)职工(职工号、职工名、部门号、职务、工资) 部门(部门号、部门名、部 门人数、工资总额) 在这两个关系的属性中,只有一个属性是外键(或称外来键、外码、外来码),它是 ______ B

A 职工关系的“职工号” B 职工关系的“部门号” C 部门关系的“职工号” D 部门关系的“部门号” 

职工与部门是一对多的关系,职工号为职工关系的主键,部门号为部门关系的主键,职工关系的部门号为外键
 

语句 SELECT IF(-1,5,2) 的返回值是: D

A 2 B 6 C -1 D 5 

if()函数的具体用法:IF(expr1,expr2,expr3),如果expr1值为真(Boolean值为true,或不为0的值),则返回expr2的值,否则返回expr3的值
 

下列哪一个命令为删除 sample 数据库的 tb_ame 表() D

A delete from tb_ame

B delete from sample.tb_ame

C drop table tb_ame

D drop table sample.tb_ame 

删除表用的是drop table 删除表中的数据是delete from,C选项中必须在已经使用sample数据库之后才能使用,D选项不论在哪一个数据库都能使用


 

数据库中存在学生表S、课程表C和学生选课表SC三个表,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN 为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。请检索选修课程号为C2的学生中成绩最高的学号。( )D

A SELECT S#,SUM(GRADE)FROM SC WHERE GRADE>=60 GROUP BY S# ORDER BY 2 DESC HAVING COUNT(*)>=4 WHERE C#=“C2” AND GRADE  >=(SELECT GRADE FORM SC WHERE C#=“C2”)

B SELECT S# FORM SC WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”)

C SELECT S# FORM SC WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”)

D SELECT S# FORM SC WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”) 

只要学号直接排除A

成绩最高使用ALL,>=就是大于等于ALL后面的最大值;

如果是小于就是小于ALL后面的最小值;
 

在关系型是数据库中,有两个不同的事务同时操作数据库中同一表的同一行,不会引起冲突的是: F

A 其中一个DELETE操作,一个是SELECT操作

B 其中两个都是UPDATE

C 其中一个是SELECT,一个是UPDATE

D 其中一个SELECT E 其中一个是DELETE,另一个是UPDATE

F 两个都是DELETE 

当要删除的记录在数据库中不存在的时候,是不会报错的。

以下哪个不是与Mysql服务器相互作用的通讯协议() B

A TCP/IP B UDP C 共享内存 D Socket 

如果事务T获得了数据项Q上的排它锁,则T对Q______。 C

A 只能读不能写 B 只能写不能读 C 既可读又可写 D 不能读不能写 

共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。

排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。

更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才 能被释放。 

下列选项中,不属于SQL约束的是: D

A UNIQUE B PRIMARY KEY C FOREIGN KEY D BETWEEN 

SQL共有六种约束:

1、not null  非空约束;

2、unique 唯一性约束;

3、primary key约束  :约束唯一标识数据库表中的每条记录(主键),主键必须包含唯一的值,且不为空;

4、foreign key约束:用于预防破坏表之间连接的动作;

5、check 约束 :用于限制列中的值的范围;

6、default约束 :用于向列中插入默认值 。

下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限()。 A

 A grant select,insert on userdb.userinfo to'zhangsan'@'localhost'

B grant'zhangsan'@'localhost'to select,insert for userdb.userinfo

C grant select,insert on userdb.userinfo for'zhangsan'@'localhost'

D grant'zhangsan'@'localhost'to userdb.userinfo on select,insert

权限授予格式:grant [权限] on [table] to 'username'@'localhost';

下列对于数据库索引的说法一定是错误的() B

A 索引可以提升查询,分组和排序的性能

B 索引不会影响表的更新、插入和删除操作的效率

C 全表扫描不一定比使用索引的执行效率低

D 对于只有很少数据值的列,不应该创建索引 

当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 

下面哪个SQL命令用来向表中添加列() D

A MODIFY TABLE TableName ADD COLUMN ColumnName

B MODIFY TABLE TableName ADD ColumnName

C ALTER TABLE TableName ADD COLUMN ColumnName

D ALTER TABLE TableName ADD ColumnName Type 

MODIFY 是用来改变表列性质;ADD是增加列;

用法:ALTER TABLE 表名 MODIFY(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃java的羊儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值