MySQL-简单总结
部分概念:1、在数据库中产生数据不一致的根本原因是冗余
2、一个事务对某数据加S锁后,其它的事务不能对该数据加任何类型的锁(错误):所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁
3、一个数据库只有一个模式和一个内模式
4、使某个事务永远处于等待状态,而得不到执行的现象称为死锁(错误):死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程
5、外模式/模式映像可以保证数据与程序的逻辑独立性
6、实体完整性和参照完整性是基本关系的两个不变性
7、由于数据库中的数据是不断更新的,因此关系模式是相对变化的(错误):关系模式是型,关系是它的值,关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据
8、在关系模式R(U,F)中,U=(X,Y,Z),如果F={X->Y, X->Z},则X为候选码
9、多个属性构成的码只能定义为表级完整性约束条件
10、在SQL命令的短语中,WHERE子句中不允许使用聚集函数
11、一个事务对某数据加X锁后,其它的事务只能对该数据加S锁(错误):事务A对对象T加X锁以后,其他事务不能对T加任何锁,只有事务A可以读写对象T直到A释放X锁
12、若并发事务遵守三级封锁协议则必然遵守两段锁协议
13、死锁是不能解除的只能预防(错误):可剥夺资源和撤销进程来解除死锁
14、概念模型依赖于DBMS和硬件设备(错误):不依赖硬件
15、用于数据库恢复的重要文件是索引文件(错误):用于数据库恢复的重要文件是日志文件
16、子查询的SELECT语句中不能使用ORDER BY子句
17、同一外模式可以被某一用户的多个应用系统使用,但一个应用程序只能使用一个外模式
18、数据库中的数据冗余度高(错误):数据库是长期存储在计算机内有组织可共享的数据集合,具有较小的冗余度,较高的数据独立性和易扩展性,并为多个用户共享
19、三级模式结构可提供数据独立性
20、候选键是指一个关系模式中,能够唯一标识元组的属性集
21、一个关系模式可以有多个“候选键”
22、当主外健不能保证参照完整性和数据一致性时,还可以选择触发器来实现
23、用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求
24、SQL语言中,删除一个视图的命令是DELETE(错误):是DROP
25、触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用
26、数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
27、SQL中使用GRANT语句向用户收回对数据的操作权限(错误):GRANK是授权,REVOKE是收回权限
28、授权时,如果指定了WITH GRANT OPTION子句,获得某种权限的用户只能使用该权限,不能传播该权限(错误):没带WITH GRANT OPRION是不可以传播的,但带了就能传播
29、关系是笛卡尔积的有限子集
30、关系操作的特点是集合操作方式,即操作的对象和结果都是集合
31、在E-R图中,用来表示属性的图形是椭圆形
32、属性的取值范围称为属性的域
33、关系表中的每一行称为属性(错误):关系表中的每一行称为元组,表中的一列即为一个属性
34、一个关系模式只能有一个“主键”
35、SELECT语句中的条件可以用WHERE或HAVING引出,但HAVING必须在GROUP BY之后使用
36、ORDER BY子句仅对检索数据的显示有影响,并不改变表中行的内容顺序
37、使用WHERE子句是为了限制GROUP BY子句返回的行个数(错误):WHERE在GROUP BY之前使用
38、如果想要查询结果中不显示重复的数据,可以使用DISTINCT关键字
39、语句select * from sale left join vip on vip.vno=sale.vno会显示sale表的全部内容
40、数据冗余可能导致的问题有浪费存储空间及修改麻烦和潜在的数据不一致性
41、数据模型是由数据结构、数据操作和完整性约束三部分组成的
42、数据库是长期存储在计算机内的、有组织、可共享的大量的数据的集合
43、已知系(系编号,系名称,系主任,电话,地点), 系关系的主码是系编号
44、在关系模型中,实体和实体间的联系都是用关系来表示的
45、候选码的值可以唯一地表示关系中的一个元组
46、候选码的属性称为主属性
47、参照完整性是指基本关系R 的主属性不能取空值(错误):若属性(或属性组) F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为:取空值( F 的每个属性值均为空值)或者等于 S 中某个元组的主码值
48、任意两个元组的候选码可以相同(错误):不能
49、关系中行的顺序和列的顺序都可以交换
50、关系的外码是允许有空值的
51、数据库设计中,规范化程度越高模式就越好(错误):“分离”越深,产生的关系越多,关系过多,连接操作越频繁,连接操作会花费很多时间
52、当用户违反了参照完整性时,DBMS会采取一些策略加以处理,包括拒绝,级联操作和设置为空值
53、触发器是实现数据库完整性的一个重要方法
54、在数据库中“脏数据”是指未提交随后又被撤销的数据
55、封锁粒度越大,系统中能够被封锁的对象就越多,并发度越高(错误):封锁的粒度越大,数据库所能够封锁的数据单元就越少,并发度就越小,系统开销也越小
56、在数据库安全性控制中,所有授予出去的权力在必要时都可以用REVOKE语句收回
57、若 R.A→R.B, R.B→R.C,则 R.A→R.C
58、3NF 的模式也一定是 2NF 模式
59、默认情况下,SQL Server用户执行的每一条SQL语句都会被当成单独的事务自动提交
60、一个数据库只能有一个外模式,而概念模式和内模式则可有多个(错误): 一个数据库只有一个概念模式、一个数据库可以有多个外模式、一个数据库只有一个内模式
61、创建数据表时必须为字段设置数据类型
62、SQL是关系型数据库语言的标准,所以不同数据库产品的SQL完全相同(错误):不同
63、删除数据时若没有设置条件,则系统不会删除表中的任何记录(错误):全删
64、在关系模型中,同一表中的不同属性命名可以相同(错误):重名会有错误
65、范式的目的主要是为了提高查询效率(错误):范式的目的在于降低数据的冗余性和数据的一致性
66、唯一约束与主键约束的共同特点是不允许出现NULL值(错误):唯一约束与主键约束都要求表中指定列上有一个唯一值
67、视图是从一个或多个表中导出来的虚拟表
68、执行COMMIT提交事务后,如果需要恢复,执行ROLLBACK(错误):COMMIT提交后对数据库来说是永久性修改,ROLLBACK是撤销正在进行的所有没有提交的修改
69、SQL Server中为所有字段插入记录时,若省略字段名称,则必须严格按照数据表结构插入对应的值
70、触发器必须手动触发才会执行(错误):触发器是自动执行的,当用户对表中数据作了某些操作之后立即被触发
71、修改数据时若未带WHERE条件,则表中对应字段都会被改为统一的值
72、为视图添加数据,相当于向创建视图的表添加数据
73、事务的执行要么成功,要么就返回到事务开始前的状态
74、全局变量是由系统提供且预先声明的变量,以“@”开头,用户只能使用,不能进行更改(错误):全局变量两个@就不能修改,@开头为局部变量,必须先用DECLARE命令定义后才可以使用
75、在创建或修改表时,可以通过定义 FOREIGN KEY 约束来创建主键(错误):FOREIGN KEY是外键约束
76、语句 DELETE 可以删除表结构(错误):DELETE 是删除表中的数据,不删除表结构
77、混合模式下,用户既可以使用 Windows 身份验证,也可以使用 SQL Server身份验证
78、约束只能在创建表时定义,不能在创建表后添加(错误):约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTE…CREATE TABLE table_name)
79、索引对于查询的结果没有任何影响,但能加快对表执行SQL语句的速度,相应地也就提高了获取查询结果的速度
80、当对视图进行UPDATE、INSERT和DELETE操作时,为了保证被操作的行满足视图定义中子查询语句的条件,应在视图定义语句中使用可选择项WITH CHECK OPTION
----------------------分割线-------------------------
部分选择题引申出的概念:
1、 数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS):DBS包括DB和DBMS
2、 在SQL语言中的视图VIEW是数据库的外模式
3、 关系的完整性约束包括:实体完整性、参照完整性、用户定义完整性
4、 数据库系统的数据独立性体现在:不会因为数据存储结构与数据逻辑结构的变化而影响应用程序
5、 概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是实体-关系模型
6、 从数据库的三级模式结构中,内模式有1个
7、 主码或主键的概念主要体现在唯一和非空功能上
8、 关系代数运算是以集合运算为基础的运算
9、 从一个数据库文件中取出满足某个条件的所有记录形成一个新数据库文件的操作是选择
10、一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的属性
11、在视图上不能完成的操作是在视图上定义新的表,可以在视图上更新视图、查询、在视图上定义新的视图
12、SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句实现数据定义功能
13、若要彻底删除数据库中已经存在的表S,可用DROP TABLE S
14、学生关系模式 S( S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是ALTER TABLE S DROP Age
15、SQL中的视图机制提高了数据库系统的安全性
16、SQL语言的GRANT和REVOKE语句主要是用来维护数据库的安全性
17、安全性控制主要是防范是非法用户,防止他们对数据库数据的存取
18、规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足每一个属性都是不可分解的
19、消除了部分函数依赖的1NF的关系模式,必定是2NF
20、关系模式的候选码可以有一个或多个
21、设有关系模式R(S,D,M),其函数依赖集:F={S→D,D→M},则关系模式R的规范化程度最高达到2NF
22、在关系数据库设计中,设计关系模式是数据库设计中逻辑设计阶段的任务
23、在数据库设计中,将ER图转换成关系数据模型过程属于逻辑设计阶段
24、现有如下关系:患者(患者编号,患者姓名,性别,出生日期,所在单位),医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果),其中,医疗关系中的外码是患者编号
25、模式和外模式的对应关系是一对多
26、用GROUP BY子句对数据分组时,在分组中用来进行条件选择的子句是HAVING
27、若D1={a1,a2,a3},D2={b1,b2,b3,b4}则D1×D2集合中共有元组12个
28、子查询的条件依赖于父查询,这类查询称为相关子查询
29、设有关系模式R(A,B,C),F={A→B,C→B}。相对于F,R的候选码为AC
30、自然连接是一种特殊的等值连接
31、规范化的关系模式中,所有属性都必须是一个不可分的数据项,这样的关系模式属于1NF
32、在SQL命令的短语中,定义表时规定某个属性上取值唯一使用的短语是UNIQUE
33、在 2NF的基础上,消除了传递函数依赖的关系模式,必定是3NF
34、关系模式R(A,B,C,D,E) ,R上的函数依赖集F={AB→E,B→C,C→D },则R的候选码是AB
35、关系模式R(A,B,C,D,E) ,R上的函数依赖集F={AB→E,B→C,C→D },则R是几范式1NF
36、SQL的DROP INDEX语句的作用是删除索引
37、数据库中的数据除了具有永久存储、有组织的特点外还具有可共享的特点
38、表中的行称为一个元组,也称一个记录
39、DBMS属于软件
40、实体完整性要求主属性不能取空值,这一点可以通过定义主码来保证
41、关系规范化中的删除操作异常是指不该删除的数据被删除
42、在数据库逻辑结构设计中,将E-R模型转换为关系模型应遵循相应原则。对于两个不同实体集和它们之间的一个多对多联系,最少应转换为3个关系模式
43、数据库管理系统是系统软件
44、HAVING不是定义属性上约束条件的语句
45、下列短语中可以在SQL查询时去掉重复数据的是DISTINCT
46、数据库中各种操作的执行是通过DBMS来完成的
47、DBA是数据库管理员
48、表的每一列叫做字段或属性
49、表的每一列的所有取值范围称为域
50、关系是一组域D1,D2...Dn的笛卡尔积的子集
51、关系代数表达式R-S表示的是在R中且不在S中的元组
52、外连接又有多种形式,主要重点解决信息不丢失的问题,它不包括自然连接
53、关系模式中如果X->Y,它的含义是任意元组在X上的属性值相等,则在Y上的属性值也相等
54、如果X→Y,并且对于X的任何一个真子集X',都有X’不能确定Y, 则称完全函数依赖
55、Edgar F. Codd(埃德加 • 科德)因为提出了关系数据库模型而获得图灵奖
56、在应用程序中,普通用户访问的是外模式
57、数据库三级模式体系结构的划分,有利于保持数据库的数据独立性
58、数据模型的要素:数据结构、数据操作、数据的约束条件
59、关系的属性不可再分
60、关系模式R (商品编号,数量,部门编号,负责人) ,如果有如下规定:每种商品只在一个部门销售; 每个部门只有一个负责人;每种商品只有一个库存数量。关系模式R最高达到2NF
61、有三个关系S、R、T如下,则由S、R得到T的运算是自然连接
62、在学生表中有8个字段,要查找所有年龄小于 20 岁且姓王的男生,并且只显示学号,姓名两个字段,那么应采用的关系运算是选择投影
63、在数据库的安全性控制中,授权的数据对象的范围越小,授权子系统就越灵活
64、允许用户定义新关系时,引用其他关系的主码作为外码的是REFERENCES
65、在数据库中删除触发器使用DROP
66、从Product表中查询出Price(价格)高于Pname (产品名称)为“网通IP电话卡”的所有记录中的最高价格的查询语句是:SELECT * FROM Product WHERE Price>(SELECT max(Price)FROM Product WHERE Pname=’ 网通IP电话卡’)
67、已知Student表中有一个age列,数据类型是int,如果要限制该列的取值范围在18到28之间,可以使用:alter table Student add check(age>=18 and ageA是平凡的函数依赖
83、“ORDER BY pno,level”先按pno升序后,相同的pno再按level升序
84、master 数据库包含了所有系统级信息,对 SQL Server 系统来说至关重要,一旦受到损坏,有可能导致 SQL Server 系统的彻底瘫痪
85、视图:视图可将多个物理数据表抽象为一个逻辑数据表、视图充当着查询中指定的表的筛选器、视图可筛选表中的行
86、一个关系数据库文件中的各条记录前后顺序可以任意颠倒,不影响库中的数据关系
87、UPDATE用于更新表中已有数据的语句是
88、sysadmin具有数据库服务器上全部操作权限
89、外码( Foregin Key) 是 在一个关系中的一个或一组属性是另一个关系的主码
90、SQL的视图是从基本表或视图中导出的
91、在数据库的表定义中,限制成绩属性列的取值在0到100的范围内,属于数据的用户自定义约束
92、在 SQL 中,WHERE 子句指出的是查询条件
93、SELECT 语句中,"HAVING 条件表达式"用来筛选满足条件的分组
94、在视图的定义语句中,只能包含数据查询语句
95、一个仓库可存放多种商品, 同一种商品只能存放在一个仓库中,仓库和商品是一对多联系
96、数据库设计中,确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和存储结构,这是数据库设计的物理设计阶段
97、在关系数据库设计中,对关系进行规范化处理,使关系达到一定的范式,例如达到3NF,这是逻辑设计阶段的任务
98、在概念模型中的客观存在并可相互区别的事物称实体
99、学生和课程之间的对应关系,每名学生可选多门课,每门课也可以有多个学生选,从学生到课程的联系类型是多对多
100、一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是原子性
101、SQL语言中的COMMIT语句的主要作用是提交事务
102、事务日志用于保存对数据的更新操作
103、解决并发操作带来的数据不一致问题的主要技术是封锁
104、死锁不属于并发操作带来的问题
105、DBMS普遍采用封锁方法来保证调度的正确性
106、事务T在修改数据R之前,必须对其加X锁,直到事务结束才释放,这是事务的一级封锁协议
107、事务的特性:原子性、一致性、隔离性
108、SQL语言中的Rollback语句的主要作用是回滚事务
109、在并行处理中,若干事物相互等待对方释放封锁,称为系统进入死锁状态
110、不允许任何其他事务对一个锁定目标加锁的锁是排他锁
111、ER模型中实体用矩形表示
112、并发控制的基本单位是事务
113、SQL Server中事务默认的隔离级别是READ COMMITTED
114、为了防止一个事务在执行时被其他事务干扰,应采取的措施是并发控制
115、 E-R图中的菱形框“表示”的是联系
116、建立索引可以加快数据的查询效率。在数据库的三级模式结构中,索引属于内模式
117、在进行数据库逻辑结构设计时,判断设计是否合理的常用依据是规范化理论
118、如果事务T获得了数据项A上的排他锁,则其他事务对A不能读也不能写
119、若事务T对数据项D已加了S锁,则其他事务对数据项D可以加S锁,但不能加X锁
120、在数据库管理系统的三级封锁协议中,一级封锁协议能够解决的问题是丢失修改
121、事务一提交,其对数据库中数据的修改就是永久的,以后的操作或故障不会对事务的操作结果产生任何影响。这个特性是事务的持久性
122、在多个事务并发执行时,如果事务Tl对数据项A的修改覆盖了事务T2对数据项A的修改,这种现象称为丢失数据
123、在判断死锁的事务等待图中,如果等待图中出现了环路,则说明系统存在死锁
----------------------分割线-------------------------
指令操作
创建数据库:
CREATE DATABASE mysql
//创建的数据库名是关键字 CREATE DATABASE `CREATE` 删除数据库:
DROP DATABASE mysql查看所有的数据库:
SHOW DATABASES查看创建数据库的定义信息:
SHOW CREATE DATABASE mysql备份数据库指令:
mysqldump -u root -p -B mysql mysql01 > d:\\bak.sql
//然后输入密码后就备份到了D盘的bak.sql文件里面了
//-B的作用是备份多个数据库后面跟多个数据库名,如果只备份数据库中的几个表就不需要-B,直接写数据库名然后加需要备份的表名就可以了恢复数据库的方法:
//打开DOS输入下列语句
mysql -u root -p
//再输入密码
source d:\\bak.sql
//执行后就备份完成了
//也可以打开D盘下面的bak.sql文件全选复制,在查询语句中执行来恢复----------------------分割线-------------------------
创建表:
CREATE TABLE mysqltest(
id INT,
`NAME` VARCHAR(255),
`PASSWORD` VARCHAR(32),
`BIRTHDAY` DATE)表中插入数据:
INSERT INTO t2(birthday,jobtime) VALUES('2022-11-11','2022-11-11 10:10:10');增加列:
ALTER TABLE t2 ADD image VARCHAR(32) NOT NULL DEFAULT ''
AFTER login_time; 查看表的所有列:
DESC t2修改列的属性:
ALTER TABLE t2
MODIFY image VARCHAR(35) NOT NULL DEFAULT ''删除列:
ALTER TABLE t2
DROP image修改表名:
RENAME TABLE t2 TO t0修改表的字符集:
ALTER TABLE t0
CHARACTER SET utf8;修改列名:
ALTER TABLE t0
CHANGE birthday user_birthday VARCHAR(32) NOT NULL DEFAULT ''修改表中数据:
UPDATE t1
SET salary = 1000
WHERE NAME = 'wo'
//不加WHERE语句会导致某列中所有数据被修改删除表中数据:
DELETE FROM t1
WHERE NAME = 'ni'删除表:
DROP TABLE t1删除表中所有数据:
DELETE FROM t1对表中数据查询运算:
SELECT id ,(chinese + math + english) AS total_score FROM t2按某种要求查询表中数据:
SELECT * FROM t2
WHERE id > 2 AND (chinese + math + english) > 100
//AND OR NOT 逻辑运算排序查找表中某数据:
SELECT * FROM t2
ORDER BY math
//默认ASC升序,DESC降序
//可在ORDER BY前面加上WHERE筛选TOP的使用:
SELECT TOP 20 percent name
FROM sh_goods
ORDER BY score DESC
//查找前百分之二十----------------------分割线-------------------------
统计函数:
SELECT COUNT(*) FROM t2
//统计有几行,可以用WHERE来约束
//*可以替换位列名,此时会把NULL值排除求和函数:
SELECT SUM(math) FROM t2求平均函数:
SELECT AVG(math) FROM t2求最大最小函数:
SELECT MAX(chinese + math + english) , MIN(chinese + math + english) FROM t2分组查询:
SELECT MAX(math) ,id
FROM t2 GROUP BY id
//用HAVING进行筛选
//SELECT MAX(math) ,id
// FROM t2 GROUP BY id
// HAVING MAX(math) > 40返回字符集:
SELECT CHARSET(id) FROM t2连接字符串:
SELECT CONCAT(joa,'和',job) FROM t2
WHERE id = 4返回字符串出现的位置:
SELECT INSTR('caijiruwo','wo') FROM DUAL
//DUAL是亚元表,可作测试使用将字符串转换为大小写:
SELECT UCASE(joa) FROM t2//大写
SELECT LCASE(job) FROM t2//小写从字符串左右边起取某个个长度的字符
SELECT LEFT(joa,1) FROM t2//左
SELECT RIGHT(job,1) FROM t2//右统计字符长度(按照字节):
SELECT LENGTH(joa) FROM t2返回字符串替换:
SELECT id , REPLACE(joa,'ni','ta') FROM t2比较字符串大小:
SELECT STRCMP('hei','hoo') FROM DUAl
// 相等为0 ,小于 -1 ,大于 1返回某段字符串:
SELECT SUBSTRING(joa,1,2) FROM t2返回去除字符串左右空格:
SELECT LTRIM(' asflkj') FROM DUAL;//左
SELECT RTRIM('asfasf ') FROM DUAL;//右
//TRIM会去除左右两边数学函数:
SELECT ABS(-10) FROM DUAL;//绝对值
SELECT BIN(10) FROM DUAL;//转换为二进制
SELECT CEILING(2.3) FROM DUAL;//向上取整
SELECT CONV(8,10,2) FROM DUAL;//把第一个数从某进制转换为某进制
SELECT FLOOR(4.3) FROM DUAL;//向下取整
SELECT FORMAT(25.3545,2) FROM DUAL;//保留小数点后几位
SELECT HEX(17) FROM DUAL;//转换为十六进制
SELECT LEAST(25,345,34,1) FROM DUAL;//返回最小值
SELECT MOD(10,3) FROM DUAL;//取余
SELECT RAND() FROM DUAL;//返回随机值 0到1之间 RAND()seed是种子,给定值后返回默认值时间函数:
SELECT CURRENT_DATE FROM DUAL//当前年月日SELECT CURRENT_TIME FROM DUAL//当前时分秒SELECT CURRENT_TIMESTAMP FROM DUAL//当前年月日时分秒SELECT now() FROM DUAL//当前年月日时分秒SELECT * FROM t3 WHERE DATE_ADD(send_time,INTERVAL 10 MINUTE ) >= NOW();//返回十分钟前发布的消息//DATE_ADD加上时间SELECT * FROM t3 WHERE DATE_SUB(NOW(),INTERVAL 10 MINUTE)
页:
[1]