Mysql

1.**系统数据库**是系统提供的最重要的数据库,其中存放了系统级信息。

2.修改数据库使用的T-SQL的```ALTER```语句,删除数据库使用T-SQL的```DROP```语句。

3.在SQL Server中,一般主要数据的扩展名为**mdf**,一般次要数据文件的扩展名为**ndf**,事务日志文件的扩展名**ldf**。

4.在SQL Server中,数据库具有三类系统操作文件,分别为**主要数据文件**,**次要数据文件**,**事务日志文件**。

5.在SQL Server中,一个数据库至少有一个**主要数据文件**,**事务日志文件**。

6.在T-SQL中创建表的语句是:```Create Table```;修改表结构的语句是:```Alter Table```;删除表的语句是:```Drop Table```。

7.使用T-SQL操作的数据,添加语句是:**Insert Into**,更新语句是:**Update**,删除语句是:**Delete**。

8.T-SQL表定义有**主键约束**,**唯一性约束**,**外键约束**,**检查约束**,**默认值约束**五个列级约束。

9.T-SQL表定义有**实体完整性约束**,**域完整性约束**,**用户定义完整性约束**,**参照完整性约束**四个表级约束。

10.T-SQL中**SELECT**查询语句使用频率最高。

11.左外连接返回连接中左表的**所有**行数据,返回右表中的**所有匹配**数据行。

12.SELECT查询语句中两个必不可少的子句是```select```和```from```。

13.在SQL SERVER中不仅可以通过视图检查表中的数据,而且还可以向表中添加修改数据,但是所插入的数据必须符合表中的**列和约束**。

14.视图是从**基本表**或其他视图中导出的表。

15.数据模型的三个要素是**数据结构**、**数据操作**、**[数据]完整性约束**。

------

1.在Transact-SQL中如果要对查询进行分组,则需要使用```group by```子句。

2.使用Transact-SQL删除数据库的语句为```drop database```。

3.使用Transact-SQL创建数据库的语句为```create database```。

4.数据库是计算机系统按照一定方式组织、存储和应用的**数据集合**。

5.数据是表示信息的符号,信息是数据所包含的**含义**。

6.ER数据模型一般在数据设计的**概念设计**阶段使用。

77.数据库的物理设计是对一个给定的**逻辑数据**模型选取一个最合适应环境的物理结构的过程。

8.数据库设计中,将分ER图集成时,主要任务是**增补各局部ER之间的联系**。

9.DBS的维护工作由**DBA**承担。

10.在DBD中,子类具有一个重要的性质:**继承性**。

11.连接操作由关系代数的**笛卡尔积**操作和**选择**操作组合而成。

12.关系代数是以**关系**为运算对象的一组高级运算的集合。

13.若在关系中置换属性的次序,可用的关系代数运算是**投影**。

14.查询优化是指系统对关系代数表达式进行组合优化,他的目的是**提高系统效率**。

15.自然连接要求被连接的两个关系具有**一个或多个相同属性名**。

16.基本表结构的修改用**ALTER**关键字,基本表内容的修改用**UPATDATE**关键字。

17.删除表中数据的命令是**DELETE**。

18.新建数据库的命令是:**Create Database**。

19.备份数据库的命令是:**backup**。

20.SQL Server2008中,局部变量名必须以**@**开头。

21.数据库并发操作带来的三个问题是:**丢失更新问题**,**读脏数据问题**,**不可重复读问题**。

22.封锁技术中基本的两种封锁是:**排他型封锁**和**共享型封锁**。

23.SQL中程序开始时默认的事物存取模式是**readwrite**。

24.SQL中用**Create DOMAIN**定义新的域。

25.触发器的动作事件条件用**when**子句定义,它可以是任意的条件表达式。

26.SQL server 2000是分布式的关系型数据库管理系统,具有**客户服务器**体系结构。

27.服务器在启动**SQLserver**服务后才能进行数据库操作。

28.用户在混合验证模式下使用**SQL授权**用户登录SQL server,必须提供登录名和密码。

29.T-SQl语言中局部变量的作用域是**当前的批处理**。

30.在SQL server中,将一组具有相同权限的用户组织在一起称作**角色**。

31.如果要使用select语句返回指定条数的记录,则应该使用**top**关键字来限定输出字段。

32.使用Transact-SQl修改数据库语句为**alter database**。

33.在Transact-SQL中删除记录使用**delete**语句。

34.数据模型是用来描述数据库的结构和语义的,数据模型具有概念数据模型和结构数据模型两类,ER模型是**概念数据模型**。

35.DBD的逻辑设计分为两大部分:**DB逻辑结构设计**和**应用程序设计**。

36.在关系代数运算中,最浪费时间的两个运算是**笛卡尔积**和**连接运算**。

37.安全运算是指不产生**无限关系**和**无穷验证**的运算。

38.连接运算由**笛卡尔积**和**连接运算**等基本操作组合而成。

39.SQL中表的修改命令是**alter table**。

40.数据库中只存放视图的**定义**而不存放视图的**记录数据**。

41.对查询结果进行分组的操作是**group by**。

42.truncate table的作用是**删除表中的所有记录**。

43.事务运行过程中,由于种种原因,使事务未运行到正常终点就被撤销,这种情况称为**事务故障**。

44.若事务T对数据A加上**X**锁,则允许T读取和修改A,其他任何事物都不允许对A加上任何类型的锁,直到T释放A上的锁。

45.在数据库中,把未提交随后撤销的数据称为**脏数据**。

46.S锁解决了丢失更新问题,但同时又可能会引起**死锁**问题。

47.SQLserver2000的版本主要有企业版、标准版、**个人版**和开发版4个版本。

48.用户访问SQLserver数据库中的数据时,经过第一个验证过程是**身份验证**。

49.T-SQL中用于循环结构的流程控制语句是**while**。

50.创建局部临时表必须使用由**#**开头的表名。

51.内连接查询可以分为**等值连接**,不等值连接,自然连接3种类型。

52.在Transcat-SQL中添加记录使用**insert**语句。

53.“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的**物理设计**阶段。

54.ER方法是设计**概念数据模型**的方法。

55.现实世界到机器世界过渡的中间层次是**概念模型**。

56.概念设计的目标是产生反应**企业组织信息需求**的数据库概念模型,即概念模型。

57.自然连接由**笛卡尔积**、**选择**、**投影**等基本操作结合而成。

58.对关系进行垂直分割的操作称为**投影**,对关系进行水平分割的操作为**选择**。

59.SELECT语句进行查询时,如果要列出所查询表中所有列的简便方法是列名用*****表示。

60.SELECT语句中,HAVING子句必须跟在**GROUP BY**子句后面。

61.排序的时候关键字DESC表示**降序**的含义。

62.事物的原子性由DBMS的**事务管理**子系统来实现。

已知某图书管理数据库有如下表格: 
 用户表user、部门表dept、角色表role、图书表book、图书分类表book_classify、图书借阅表book_borrow、还书表book_return、借阅预约表book_appoint、图书遗失表book_lose; 

| 用户表user、部门表dept、角色表role、图书表book、图书分类表book_classify、图书借阅表book_borrow、还书表book_return、借阅预约表book_appoint、图书遗失表book_lose; |
| ------------------------------------------------------------ |
| (1)用户表(user):包含用户编号id、姓名user_name、出生日期birth_date、身份证号id_card、帐号login_name、密码password、手机号mobile、电子邮件email、部门编号dept_id、角色编号role_id信息。 |
| (2)部门表:包含部门编号id、部门名称dept_name、部门创建时间create_date信息。 |
| (3)角色表:包含角色编号id、角色名称role_name、备注信息remark。 |
| (4)图书表:包含图书编号id、书籍名称book_name、作者author、定价price、有无光盘cd、出版社publish、图书分类编号book_classify_id、总数量account、图书ISBN编号isbn、图书创建时间create_time、备注信息remark。 |
| (5)图书分类表:包含编号id、图书分类名称book_classify_name、父分类编号father_id、创建时间create_time。 |
| (6)图书借阅表:包含编号id、图书编号book_id、用户编号user_id、借阅时间borrow_time、归还时间return_time、创建图书借阅状态create_time、备注信息remark。 |
| (7)图书还书表:包含编号id、图书借阅编号borrow_id、归还时间return_time、创建时间create_time、备注信息remark。 |
| (8)借阅预约表:包含预约流水编号id、图书编号book_id、用户编号user_id、预约时间appoint_time、创建时间create_time、备注信息remark。 |
| (9)图书遗失表:包含遗失流水编号id、图书借阅流水编号borrow_id、创建时间create_time、备注信息remark。 |

 对于图书管理数据库,请写出正确的SQL语句:

 (1)查询作者为“刘刚”的图书的数量。

SELECT COUNT(*) AS 数量
FROM `book`
WHERE `author` = '刘刚';

 (2)查询出版单位为人民邮电出版社的图书明细。

SELECT *
FROM `book`
WHERE `publish`='人民邮电出版社';

 (3)检索2024年3月的借阅图书的读者人数。

SELECT COUNT( DISTINCT `user_id`)
FROM `book_borrow`
WHERE YEAR(`borrow_time`)= '2024' AND MONTH(`borrow_time`)= '3';

 (4)图书管理系统里需要新增一本刚采购的医药方面的书籍:书名为《疑难杂病临证手册(第2版)》、作者为余孟学、定价为158元、出版社为河南科技出版社、ISBN编号为9787534989230。要把它添加到图书表book里,图书分类选择“R 医药、卫生”。 

INSERT INTO`book`VALUES
('5','疑难杂病临证手册(第2版)','余孟学','158','1','出版社','4','1000','9787534989230',NOW(),NULL);

 (5)查询用户小影的借书记录,包括用户姓名、借阅图书名称、出版社、借书时间、归还时间。 

SELECT u.user_name,b.book_name,b.publish,w.borrow_time,w.return_time
FROM USER u, book b, book_borrow w
WHERE w.book_id = b.id AND w.user_id = u.id AND u.user_name = '小影';

 (6)针对用户表user、图书表book、图书借阅表book_borrow建立一个用户借阅图书信息查询视图user_book_borrow_view,查询用户编号、登录名称、姓名、图书名称、出版社、借阅时间、归还时间。 

CREATE OR REPLACE VIEW user_book_borrow_view AS
SELECT u.id,u.login_name,u.user_name,b.book_name,b.publish,w.borrow_time,w.return_time
FROM USER u, book b, book_borrow w
WHERE w.book_id = b.id AND w.user_id = u.id ;

 (7)按book_name字段建立图书索引。索引名为:booknameindex;

CREATE INDEX booknameindex ON `book`(`book_name`);

 (8)按publish,book_name字段建立图书表复合索引。索引名为:bookpublishnameindex ; 

CREATE INDEX bookpublishnameindex ON `book`(`publish`,`book_name`);

 (9)更新小刚用户的部门为运维部。 

UPDATE `user` 
SET `dept_id`= (SELECT `id` FROM `dept` WHERE `dept_name`='运维部')
WHERE `user_name`='小刚';

 (10)删除图书名称包含:“经济学”的所有图书

delete from `book` where `book_name` like '%经济学%';

 (11)删除用户小影的全部借书记录

DELETE FROM `book_borrow` WHERE`user_id`=(SELECT `id` FROM `user` WHERE `user_name`='小影');

 (12)查询所有用户丢失的图书名称。

SELECT `user_name`,`book_name`
FROM `book`,`book_borrow`,`user`,`book_lose`
WHERE `book_lose`.`borrow_id`=`book_borrow`.`id` AND `book_borrow`.`user_id`=`user`.id AND `book_borrow`.`book_id`=`book`.`id`;

1、创建一个数据库 staff, 并在数据库中创建以下四张表;
员工表 employee(员工偏号id姓名userName, 出
生日期bixthDate,身份证号dCard 登录名称
loginName, 登录密码password, 手机号mobile, 电子邮件emal, 部门编号deptId员工级别level,员工头像avatar, 备住remark)
部门表 dept(部门编号id,部门名称deptName, 部
门经理编号managerId)
工资表payrol(工资编号认员工编号empId基本工资baseSalary,应发工资actualSalary, 奖金bonus, 缺勒扣钱deductMoney,薪资发放日期grantDate)请假表ask_leave(请假编号d,员工偏号empId,请假原因leaveReason, 请假开始时间beginDate, 请假结束时间endDate, 提交时间submitDate, 审核人偏号auditId(该列有触发器维护),申请状态status, 审核意见auditOpinion)
基础数据自己填写。
2、偏写存储过程实现插入员工表:参数为:员工偏号id,姓名userName,出生日期birthDate, 身份证号idCard 登录名称loqinName, 登录密码
password, 手机号mobile,电子邮件emal,部门编号deptId,员工级别level员工头像avatar备注remark.
存储过程名称为:insert_employee。
3、利用存储过程在员工表中插入5条记录。
4、创建触发器,当插入或修改工资表payroll 时,应发工资自动为“基本工资十奖金-缺勤扣钱”。
5、在员工表中依据姓名userName建立索引。索引名为:index_userName。
6、建立员工部门工资视图(包含员工名称,部门名称,基本工资,应发工资,奖金,缺勤扣钱)视图名称:v_employee_dept_payroll。
7、利用触发器实现插入请假信息时,审核人偏号自动填入请假人所在部门的部门经理偏号。触发器名称为:insert_ask_leave。
8、备份数据库的结构和数据,导出SQL文件名为:staff-sjk.sql。
9、将staff_sjk.sql上传至服务器。

CREATE DATABASE staff;
USE staff


CREATE TABLE employee(
id INT NOT NULL AUTO_INCREMENT, 
userName VARCHAR(255), 
birthDate DATE,
idCard VARCHAR(255),
loginName VARCHAR(255), PASSWORD VARCHAR(255) mobile VARCHAR(255) 
email VARCHAR(255), 
deptId INT,
LEVEL INT,
avatar BLOB ,
remark TEXT,
PRIMARY KEY(id)
);

CREATE TABLE dept(
id INT NOT NULL AUTO_INCREMENT 
deptName VARCHAR(255), 
manageId INT, 
remark VARCHAR(255), 
PRIMARY KEY(id)
);

CREATE TABLE payroll(
id INT NOT NULL AUTO_INCREMENT 
empId INT, 
baseSalary DOUBLE 
actualSalary DOUBLE, 
bonus DOUBLE, 
deductMoney DOUBLE 
grantDate DATE, 
PRIMARY KEY(id)
);

CREATE TABLE ask_leave(
id INT NOT NULL AUTO_INCREMENT, 
empId INT 
leavekeason TEXT 
beqinDate DATE, 
endDate DATE,
submitDate DATE 
auditId INT, 
STATUS INT, 
auditOpinion TEXT, 
PRIMARY KEY(id)
);

2.

DELIMITER $$
CREATE
       PROCEDURE `staff`.`insert_employee`( IN id INT, IN userName VARCHAR(255),
					IN birthDate DATE,
					IN idCard VARCHAR(255),
					IN loginName VARCHAR(255),
					IN PASSWORD VARCHAR(255),
					IN mobile VARCHAR(255),
					IN email VARCHAR(255),
					IN deptId INT,
					LEVEL INT,
					IN avatar BLOB,IN remark TEXT)
    BEGIN
          INSERT INTO `employee` VALUES(NULL,userName,birthDate,idCard,
					loginName,PASSWORD,mobile,email,deptId,LEVEL,avatar,remark);
    END$$
DELIMITER ;

4.

DELIMITER $$
CREATE
TRIGGER staff.beforeinsert_payloyee
BEFORE INSERT
ON staff.payroll
FOR EACH ROW BEGI人
set
new.actualSalary =new. baseSalary tnew. bonus-new.deductMoney;
END$$
DELIMITER;


DELIMITER $$
CREATE
TRIGGER staff.before_update_payloyee
BEFORE UPDATE
ON staff.payroll
FOR EACH ROW BEGIN
SET
new. actualSalary=new. baseSalary tnew.bonus-new. deductMoney;
END$$
DELIMITER;

6.

CREATE VIEW  v_employee_dept_payroll

AS

SELECT `userName`,`deptName`,`baseSalary`,`actualSalary`,`bonus`,`deductMoney`

FROM`dept`,`employee`,`payroll`

WHERE `dept`.`id`=`employee`.`deptId` AND `employee`.`id`=`payroll`.`empId`

7.

DELIMITER $$

CREATE

    TRIGGER `staff`.`insert_ask_leave` BEFORE  INSERT 

    ON `staff`.`ask_leave`

    FOR EACH ROW BEGIN

       DECLARE manangeID1 INT;

       SELECT `manageId` INTO  manangeID1 FROM `dept` WHERE `id`=(

              SELECT `deptId` FROM `employee` WHERE `id`=new.`empId`);

        SET new.`auditId`=manangeID1;

    END$$

DELIMITER ;

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值