自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (13)
  • 收藏
  • 关注

原创 ssh连接虚拟机(vmvare)里面的centos

ssh连接虚拟机(vmvare)里面的centos

2022-06-19 15:09:51 232 1

原创 MybatisPlus

目录:MybatisPlus1 创建简单的demo1.引入依赖2.创建实体类3.创建配置文件4.添加mapper接口5.启动类扫描mapper路径6.测试2 查看sql输出的日志3 主键策略4 自动填充5 MP实现乐观锁6 分页查询1.添加分页插件2.分页查询实现7 逻辑删除8 条件查询构造器 Wapper1 创建简单的demo1.引入依赖mybatis-plus-boot-starter、mysql-connector-java、lombok <dependency> &l

2021-06-22 21:58:20 187

原创 Redis详解

目录:Redis1 Redis简介2 Redis安装1.直接编译安装(推荐使用)2.使用Docker3.直接安装4.通过在此案体验,可以直接使用Redis功能5.后台启动3 基本数据类型1.2.3.4.5.分布式锁限流布隆过滤器延时队列Geo1 Redis简介应用场景:缓存、分布式锁、限流特点数据持久化多种不同数据结构类型之间的映射支持主从模式的数据备份自带了发布订阅系统定时器、计数器2 Redis安装1.直接编译安装(推荐使用)提前准备好GC环境yum install gc

2021-06-13 21:48:05 517

原创 Docker详解

目录:Docker1 Docker简介1.是什么2.虚拟化技术3.开发/运维(DevOps)4.三大特征2 centos7的Docker安装1.2.3.4.5.3 Docker常用命令1.2.3.4.5.41.2.3.4.5.51.2.3.4.5.61.2.3.4.5.71.2.3.4.5.81.2.3.4.5.91.2.3.4.5.1 Docker简介1.是什么Docker:解决了运行环境和配置问题的软件容器,方便做持续集成并有利于整体发布的容器虚拟化技术。Docker出现的原因:代码在开发上

2021-06-12 21:09:31 1386

原创 Java多线程详解

目录:多线程1 程序、线程、进程基本概念2 线程的创建和使用3 线程的生命周期4 线程的同步3 线程的通信3 jdk5新增的线程创建方式1 程序、线程、进程基本概念程序:为完成特定任务,用某种语言编写的一组指令的集合。(一段静态代码)进程:程序的一次执行过程,伙食正在运行的一个程序。进程是资源分配的单位。线程:进程可进一步细化为线程,是一个程序内部的一条之星路径。线程是调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(PC)。多线程:若一个进程同一时间并行执行多个线程,就是支持多线程的。

2021-06-10 21:41:51 108

原创 Java IO流

目录:IO流详解1 流的分类2 示例代码1.FileReader读入2.缓冲流实现文件复制1 流的分类数据单位字节流:非文本,图片、视频等字符流:文本流向输入流输出流角色节点流:直接作用在文件上处理流:在已有基础上包了一层流,例如要加快流的速度而做的流抽象基类字节流字符流输入流InputStreamReader输出流OutputStreamWriter2 示例代码1.FileReader读入 // 1、实例化File类对

2021-06-09 21:19:01 58

原创 Java集合详解

目录:Java集合详解1 集合框架与数组的对比及概述2 集合框架接口1.Collection接口继承树2.Map接口继承树2 集合的遍历1.Iterator迭代器遍历Collection3 集合的遍历1.ArrayList源码2.LinkedList源码3.Vector源码1 集合框架与数组的对比及概述1、集合、数据都是对多个数据进行存储操作的结构,简称Java容器。(此时的存储,主要指的是内存层面的存储,不涉及持久化的存储(.txt、数据库等))2、数组在存储多个数据方面的特点一旦初始化,

2021-06-07 22:13:46 92

原创 Spring详解

文章目录1 Spring概念1.概念2.特点3.创建Spring工程1.要导入的jar包介绍2.需要引入的依赖3.配置文件bean.xml4.单元测试5.项目结构2 IoC容器1.IoC基本概念2.IoC底层原理3.IoC接口(BeanFactory)1.Spring提供IoC容器实现的两种方式1.BeanFactory2.ApplicationContext4.IoC操作Bean原理1.什么是Bean管理2.Bean管理操作的两种方式1.基于xml1.Spring创建对象2.Spring属性注入2.基于注

2021-06-02 22:07:22 237 1

原创 设计模式——工厂模式

一个类调用另一个类普通模式工厂模式

2021-06-02 20:22:48 61

原创 springboot整合Swagger

文章目录1.介绍1.前后端分离面临的情况2.Swagger3 之 HelloWorld1.创建springboot工程2.swagger文档地址3.swagger文档基本配置4.Swagger 各种注解1.controller类注解2.model类注解1.介绍1.前后端分离面临的情况在前后端分离时,不可能要后端把所有接口都开发好,然后要前端去开发,需要前后端一起来做。这时我们需要一个文档,会详细的把后端需要开发哪些接口,这些接口需要接收什么样的参数,返回什么样的数据,在什么情况下返回的数据格式是什

2021-05-31 19:39:26 196 2

原创 springboot:发送简单邮件、带附件邮件、Freemarker做模版邮件、Thymeleaf做模版邮件、定时任务

文章目录1 邮件基础知识1.SMTP邮件协议2.POP3邮件协议3.IMAP邮件协议2发送 QQ 邮件1.准备工作2.发送简单邮件1.创建springboot工程2.application.yml邮件配置3.发送简单邮件3.发送带附件的邮件4.使用 Freemarker 做邮件模版1.添加依赖2.添加邮件模板3.发送邮件5.使用 Thymeleaf 做邮件模版1.添加依赖2.添加邮件模板3.发送邮件1 邮件基础知识1.SMTP邮件协议SMTP 是一个基于 TCP/IP 的应用层协议,江湖地位有点类

2021-05-30 16:56:17 1444

原创 springboot-消息中间件:ActiveMQ和RabbitMQ

文章目录1 消息中间件介绍1.两个重要的规范JMS和AMQP2.什么是消息中间件3.优点2 JMS之ActiveMQ1.准备工作1.ActiveMQ下载2.启动3.访问网址2.springboot中使用ActiveMQ1.创建springboot项目2.在application.yml中配置相关参数3.在springboot的main方法所在类定义一个消息队列4.创建JMS的组件4.发送邮件5.该例子的完整项目代码3 AMQP之RabbitMQ1.准备工作1.使用 Docker 安装 RabbitMQ2.在

2021-05-29 19:44:14 639 3

原创 springboot项目模块化改造

文章目录springboot项目模块化改造1 修改idea默认的jdk版本1.找到maven的目录修改settings.xml文件2.创建父maven项目3.创建子module4.剪切vhr-web里的parent5.添加子模块间的相互依赖springboot项目模块化改造1 修改idea默认的jdk版本1、可以创建项目之后一一修改2、可以统一修改1.找到maven的目录修改settings.xml文件C:\Users\22370.m2\wrapper\dists\apache-maven-

2021-05-29 14:26:06 350

原创 springboot+vue+axios封装请求

定义api.js对请求的地址以及响应回来的数据处理import axios from "axios"import { Message } from 'element-ui';// 封装服务端响应信息axios.interceptors.response.use(success=>{ // 业务上的错误 if(success.status && success.status==200 && success.data.status===500){

2021-05-18 20:01:09 173

原创 Spring Security

文章目录SpringSecurity项目创建手工配置用户名密码数据库配置配置文件配置application.ymlJava代码配置HttpSecurity 配置不同的权限控制方法登录表单详细配置登录成功登录失败注销登录多个 HttpSecurity密码加密BCryptPasswordEncoder方法安全代码SecurityConfig.classMultiHttpSecurityConfig.javaHelloController.javaMethodService.javaMultiHttpSecuri

2021-05-09 18:09:18 194 2

原创 微人事项目

文章目录1 技术架构2 Vue简介3 SPA3.1 vue-cli23.1.1 安装单页面应用3.1.2 工程代码解析3.2 vue-cli34 微人事前端页面4.1登录页面1 技术架构后端1、Springboot2、Spring Security3、Redis4、POI/邮件发送/消息中间件5、Mysql前端6、Vue7、网络访问axios8、页面ElementUI9、状态管理Vuex2 Vue简介1、MVVM框架3 SPAsingle page application

2021-05-06 21:12:55 1061

原创 springcloud

文章目录1 主要介绍1.1 主要内容1.2 收获2 微服务介绍2.1 什么是微服务?2.2 微服务的优势2.3 使用springcloud的优势3 springcloud介绍3.1 什么是springcloud3.2 核心3.3 版本名称4 springcloud体系4.1 springcloud包含组件4.2 Springcloud和springboot版本关系5 Eureka5.1 注册中心5.2 Eureka5.1 Eureka搭建1 主要介绍1.1 主要内容微服务的由来,以及微服务和spr

2021-04-24 16:30:22 417 2

原创 springcloud代码

文章目录EurakaApplication.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.java.javaEurakaApplication.java@SpringBootApp

2021-04-24 16:26:22 239

原创 Springboot错误处理源码分析(含源代码详细注释)

处理错误有关的类路径:org\springframework\boot\autoconfigure\web\servlet\error主要类:DispatcherServlet.javadoDispatch()processHandlerException(request, response, handler, exception);ErrorMvcAutoConfiguration.java //自动配置异常处理规则其他类:DefaultErrorAttributes.javaBasi

2021-04-21 20:47:01 555 2

原创 Springboot响应处理源码分析(含源代码详细注释)

文章目录名词解释大纲响应JSON内容协商代码ServletInvocableHandlerMethod.javaHandlerMethod.javaHandlerMethodReturnValueHandlerComposite.javaModelAndViewMethodReturnValueHandler.javaRequestResponseBodyMethodProcessor.java.javaAbstractMessageConverterMethodProcessor.javaHttpMess

2021-04-19 21:02:17 470

原创 Springboot请求处理源码分析(含源代码详细注释)

文章目录名词解释handlerhandlerMethod大纲请求映射REST映射原理请求映射原理:怎么知道哪个请求谁来处理参数处理原理代码AbstractHandlerMethodAdapter.javaRequestMappingHandlerAdapter.javaHiddenHttpMethodFilter.javaHttpServlet.javaFrameworkServlet.javaDispatcherServlet.javaAbstractHandlerMapping.javaAbstract

2021-04-12 21:04:29 1264

原创 springboot响应处理

文章目录4、数据响应与内容协商1、响应JSON1.1、jackson.jar+@ResponseBody1、返回值解析器2、返回值解析器原理1.2、SpringMVC到底支持哪些返回值1.3、HTTPMessageConverter原理1、MessageConverter规范2、默认的MessageConverter2、内容协商1、引入xml依赖2、postman分别测试返回json和xml3、开启浏览器参数方式内容协商功能4、内容协商原理5、自定义 MessageConverter4、数据响应与内容

2021-03-31 21:11:17 404

原创 springboot数据访问

文章目录1.SQL1.1数据源的自动配置-HikariDataSource1.1.1导入JDBC场景1.1.2分析自动配置1.1.3修改配置项1.1.4测试1.2数据源的自动配置-HikariDataSource1.2.1druid官方github地址1.2.2自定义方式1.2.3使用官方starter方式1.3整合MyBatis操作1.3.1配置模式1.3.2注解模式1.3.3混合模式1.4整合 MyBatis-Plus 完成CRUD1.4.1什么是MyBatis-Plus1.4.2整合MyBatis-P

2021-03-11 21:02:47 146

原创 装饰者(包装模式)

装饰者(包装模式)案例模拟应用场景:老王是卖豆浆的,现在的豆浆品种不断增多,如下图,可以任意搭配,这种情况如果用继承的方式会形成 类爆炸,并且后期扩展也比较麻烦,这时候就可以用到装置者模式。适用于组合情况。最终可以搭配的豆浆品种:类图:代码实现:1.豆浆属于饮品,创建一个饮品的接口,后期可能还会卖果汁之类的其他饮品创建被装饰者,豆浆,实现饮品Drink接口/**豆浆豆浆属于饮品,所以要实现 Drink 这个接口*/public class Soya implements

2021-03-10 21:55:09 73

原创 springbootWeb开发,涉及静态资源的访问、请求参数处理

文章目录1 简单功能分析1.1 静态资源的访问访问目录访问前缀webjars1.2 欢迎页的支持1.3 静态资源配置原理官方文档引用By default, Spring Boot serves static content from a directory called/static (or /public or /resources or /META-INF/resources) in theclasspath or from the root of the ServletConte

2021-03-08 21:52:01 660

原创 springboot自动配置

@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}), @Filter( type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter..

2021-03-02 20:33:09 109

原创 springboot组件添加,@Configuration,@Import,@Conditional,@ImportResource

之前spring创建xml的方式2. 现在通过标有@Configuration的配置类package com.ll.config;import com.ll.domain.Pets;import com.ll.domain.User;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configuration /.

2021-03-01 20:46:17 1005 2

原创 创建第一个springboot项目

根据官方文档https://docs.spring.io版本jdk:1.8maven:3.3java -versionmvn -version修改maven的配置文件settings.xml目的:改变镜像源,加快jar包的下载这里我用的是idea自带的mavenmaven下载页:https://maven.apache.org/download.cgi<mirrors> <mirror> <id>nex

2021-02-28 17:24:42 155 1

转载 虚拟机centos与主机互相Ping通

在虚拟机(Vmware Workstation)下,安装了CentOS7,现在想通过SSH工具连接虚拟机中的CentOS7 1、  首先,要确保CentOS7安装了  openssh-server,在终端中输入  yum list installed | grep openssh-server 如果没任何输出显示,表示没有安装 通过输入  yum install openssh-server来进行安装openssh-server 2、 &n...

2021-02-26 20:50:15 687

原创 小记录

ssm下载带中文名称的文件//文件下载@RequestMapping("filedownload")public ResponseEntity<byte[]> filedownload(HttpServletRequest request,Model model) throws Exception { HttpHeaders headers = new HttpHeaders(); String realPath = request.getSession(.

2020-12-04 16:38:16 53

转载 springmvc在jsp获取完整url地址含参数

如果要在jsp页面用java代码获取完整url,直接用页面的request获取是获取不到spring的请求地址的。spring controller的request和请求转发后jsp request是2个不同的对象。直接上结果:例如请求地址为:http://localhost:8080/index/test?time=1&no=2Controller打印:request.getScheme() = httprequest.getServerName() = loca

2020-11-30 14:41:52 924

原创 REST风格(RESTful)

REST风格(RESTful)基本功能请求方式基本功能GET查询POST添加PUT修改DELETE删除实例请求方式地址功能GEThttp://localhost:8080/项目名/users查询所有用户POSThttp://localhost:8080/项目名/users添加一个用户PUThttp://localhost:8080/项目名/users修改一个用户DELETEhttp://l

2020-11-14 21:01:29 303

原创 java语言实现循环队列(附详细注释)

//循环队列的出队复杂度是O(1),不需要移动,只需要变更front++//数组队列的出队是O(n),每出队一次,所有的元素都要向前移一个位置public class LoopQueue<E> { private E[] data; private int front,tail; private int size; //队列的大小,可以通过front和tail计算出 ...

2019-11-24 17:30:24 263

原创 java语言实现数组队列(附详细注释)

public class Array<E> { int size; //数组实际装的元素 E[] data; //声明一个数组 /** * 有参的构造函数,可声明数组的容量 * @param capacity数组的容量 */ public Array(int capacity) {// data=new E[capacity]; 不能直接new一个泛型...

2019-11-24 16:23:02 109

原创 java语言实现数组栈(附一个小案例)

public class Array<E> { int size; //数组实际装的元素 E[] data; //声明一个数组 /** * 有参的构造函数,可声明数组的容量 * @param capacity数组的容量 */ public Array(int capacity) {// data=new E[capacity]; 不能直接new一个泛型...

2019-11-24 16:10:44 107

原创 java语言实现(动态)数组(附超详细的注释和时间复杂度的分析)

1. 数组的实现类——int型public class Array { int size; //数组实际装的元素 int[] data; //声明一个数组 /** * 有参的构造函数,可声明数组的容量 * @param capacity数组的容量 */ public Array(int capacity) { data=new int[capacity]; s...

2019-11-17 19:38:29 149

原创 java邮件发送实现用户注册功能

易邮邮件服务器的配置foxmail添加邮箱账户

2019-09-04 20:13:16 330

原创 java三子棋

Game.javaimport java.util.Scanner;public class Game { //char类型的二维数组,chessbord表示棋盘 static char[][] chessbord={ {' ',' ',' '}, {' ',' ',' '}, {' ',' ',' '} }; static int[] arr=new...

2019-07-19 09:54:36 837

原创 eclipse错误篇,踩坑

eclipse出现code recommenders installation problems1、关掉报错的那个连接,点击Window -> preferences -> java -> Editor -> Content Assist -> Advanced。2、再打开的配置了面将Default Proposal Kinds栏中Java Proposals ...

2019-04-13 10:29:10 289

原创 图解数组

2019-04-07 15:47:32 225

Springboot请求处理源码分析(含源代码详细注释)

Springboot请求处理源码分析(含源代码详细注释)

2021-04-19

湖南文理学院计算机科学与技术专业2019年上学期(大三下)编译原理复习提纲.docx

湖南文理学院计算机科学与技术专业2019年上学期(大三下)编译原理复习提纲: 一、 选择题 5*2=10分 二、 填空题 10分 三、 简单计算 50分 1. 写文法 5*2=10分 2. 三元式、四元式、逆波兰 5分 3. 文法左递归的消除、左公因子的提取 5分 4. 文法二义性的判断 5分 5. 自动机,正规式转为不确定自动机、不确定自动机确定化、确定自动机最小化 15分 6. LR,短语、直接短语、素短语、句柄、最左素短语、句型画出语法树 10分 四、 综合题 1. LL分析 10分 2. 算符优先 10分 3. LR分析 10分

2019-07-19

java连接SqlServer完整代码,工具类,jdbc

java连接SqlServer完整代码,工具类,jdbc JDBC工具类的构建 1.资源释放 见https://mp.csdn.net/postedit/86577443 2.驱动防二次注册 ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //Driver是静态代码块,类加载了就执行,用registerDriver会二次注册 //DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.**SQLServerDriver**()); ``` 3.使用properties配置文件 1.在src低下声明一个文件XXX.properties 2.在工具类里使用静态代码块读取属性 对应文件位于根目录

2019-01-21

oracle实验报告

实验一 SQL*PLUS练习 【实验目的】 (1) 了解Oracle的工作环境和基本使用方法。 (2) 练习标准SQL的数据操作,查询命令及其查询优化。 (3) 学会使用高级SQL命令,排序、分组、自连接查询等。 (4) 学会使用SQL*PLUS命令显示报表,存储到文件等。 【实验内容】 一、 准备使用SQL*PLUS 1. 进入SQL*PLUS 2. 退出SQL*PLUS 3. 显示表结构命令DESCRIBE SQL>DESCRIBE emp 使用DESCRIBE(缩写DESC)可以列出指定表的基本结构,包括各字段的字段名以及类型、长度、是否非空等信息。 4. 使用SQL*PLUS显示数据库中EMP表的内容 输入下面的查询语句: SQL>SELECT * FROM emp; 按下回车键执行查询 5. 执行命令文件 START或@命令将指定文件调入SQL缓冲区中,并执行文件内容。 SQL>@ 文件名(文件后缀缺省为.SQL)或 SQL>START 文件名 文件中每条SQL语句顺序装入缓冲区并执行。 二、 数据库命令——有关表、视图等的操作 1. 创建表employee 例1 定义一个人事信息管理系统中存放职工基本信息的一张表。可输入如下命令: SQL>CREATE TABLE employee (empno number(6) PRIMARY KEY, /* 职工编号 name varchar2(10) NOT NULL, /* 姓名 deptno number(2) DEFAULT 10, /* 部门号 salary number(7,2) CHECK(salarycreate table emp2 as select * from emp where 1=2; 在命令的where子句中给出1=2,表示条件不可能成立,因而只能复制表结构,而不能复制任何数据到新表中去。另外,还可以复制一个表的部分列定义或部分列定义及其数据。 三、 Oracle数据库数据查询 1、单表查询 2、多表查询 四、 SQL*PLUS常用命令 表1 常用报表格式化名命令 命令 定义 Btitle 为报表的每一页设置底端标题 Column 设置列的标题和格式 Compute 让SQL*PLUS计算各种值 Remark 将某些字标记为注释 Set linesize 设置报表的行宽字符数 Set newpage 设置报表各页之间的行数 Spool 使SQL*PLUS将输出写入文件中 Start 使SQL*PLUS执行一个sql文件 Ttitle 设置报表每页的头标题 Break 让SQL*PLUS进行分组操作 例3 建立一个批命令文件对查询到的数据以报表的形式输出并将其保存到指定的文件中。 处理方法:利用SQL*PLUS语言工具(也可以使用其他文本编辑器)建立批命令的.SQL文件。在“SQL>”提示符下,使用EDIT命令在”E:\”中建立SCGB.SQL文件。 SCGB.SQL文件中的命令组如下: SQL>EDIT E:\ SCGB.SQL SET echo off SET pagesize 30 SET linesize 75 TTITLE’2008年4月10号’CE’公司职员基本情况登记表’R’Page:’ FORMAT 99- >SQL.PNO SKIP 1 CE’===========================’ BTITLE COL 60 ’制标单位’ TAB 3 ‘人事部’ COLUMN empno heading ‘职工|编号’ COLUMN ename format a10 heading ‘姓 名’ COLUMN job heading ‘工 种’ COLUMN sal format $99,990 heading 工 资’ COLUMN comm Like sal heading ‘奖 金’ COLUMN deptno format 9999 heading ‘部门|编号’ COLUMN hiredate heading ‘参加工作时间’ SPOOL e:\sjbb /*在E盘中建立格式报表输出文件,默认属性为LST BREAK on deptno skip 1 COMPUTE sum of sal comm on deptno SELECT empno,ename,job,hiredate,sal,comm,deptno from emp ORDER BY deptno,sal; SPOOL off /*终止SPOOL功能,关闭其文件。注意,此命令不可省,否则将建立空文件。 五、 实验内容 1、以cs+学号为用户名创建用户,并授予用户创建数据对象的权限。 2、复制emp表,复制表名为emp_学号,然后将emp表中工资低于$2000 的职工插入到复制的表中。 3、对复制的emp表插入一行只包含有职工号,职工名,工资与部门号四个数据 项值的记录。 4、在复制的emp表中将雇员ALLEN提升为经理,工资增至$2500, 奖(佣 )金增加40%。 5、删除复制的emp表中工资低于500的记录行。 6、列出10号部门中既不是经理,也不是秘书的职工的所有信息。 7、查找出部门所在地是CHICAGO的部门的职工姓名、工资和工种。 8、统计各部门中各工种的人数、工资总和及奖金总和。 9、查找出工资比其所在部门平均工资高的职工姓名、工种与工资情况。 实验3 Oracle数据库开发环境下PL/SQL编程 【实验目的】 (1)掌握 PL/SQL 的基本使用方法。 (2)在SQL*PLUS环境下运行PL/SQL的简单程序。 (3)应用 PL/SQL 解决实际问题 【实验内容与步骤】 PL/SQL块中的可执行部分是由一系列语句组成的(包括对数据库进行操作的SQL语句,PL/SQL语言的各种流程控制语句等)。在块中对数据库查询,增、删、改等对数据的操作是由SQL命令完成的。在PL/SQL块中,可以使用SQL的数据查询命令,数据操纵命令和事务控制命令。可使用全部SQL函数。PL/SQL中的SQL语句,可使用SQL的比较操作等运算符。但不能使用数据定义语句。 在PL/SQL块中使用SELECT语句时注意几点: (1)SELECT语句必须含有INTO子句。 (2)INTO子句后的变量个数和位置及数据类型必须和SELECT命令后的字段名表相同。 (3)INTO子句后可以是简单类型变量或组合类型变量。 (4)SELECT语句中的WHERE条件可以包含PL/SQL块中定义的变量及表达式,但变量名不要同数据库表列名相同。 (5)在未使用显式游标的情况下,使用SELECT语句必须保证只有一条记录返回,否则会产生异常情况。 [例3-1] 问题:编写一个过程,求和运算。 SET SERVEROUTPUT ON; DECLARE a number:=1; BEGIN a:=a+5; DBMS_OUTPUT.PUT_LINE('和为:'||TO_CHAR(a)); END; / 【例3-2】:使用%TYPE声明变量,输出制定表中的相关信息。 DECLARE my_name student.sname%TYPE; BEGIN SELECT sname INTO my_name FROM student WHERE no=’01203001’; DBMS_OUTPUT.PUT_LINE(my_name); END; / 【例3-3】问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。 declare v_sal emp.sal%type; begin select sal into v_sal from emp where ename=spName; if v_sal :NEW.sal THEN DBMS_OUTPUT.PUT_LINE('工资减少'); ELSIF :OLD.sal < :NEW.sal THEN DBMS_OUTPUT.PUT_LINE('工资增加'); ELSE DBMS_OUTPUT.PUT_LINE('工资未作任何变动'); END IF; DBMS_OUTPUT.PUT_LINE('更新前工资 :' || :OLD.sal); DBMS_OUTPUT.PUT_LINE('更新后工资 :' || :NEW.sal); END; / --执行UPDATE查看效果 UPDATE emp SET sal = 3000 WHERE empno = '7788'; 6、需要对在表上进行DML操作的用户进行安全检查,看是否具有合适的特权。 Create table foo(a number); Create trigger biud_foo Before insert or update or delete On foo Begin If user not in (‘DONNY’) then Raise_application_error(-20001, ‘You don’t have access to modify this table.’); End if; End; / 即使SYS,SYSTEM用户也不能修改foo表。 2、 利用PL/SQL编写程序实现下列触发器 1)、编写一个数据库触发器,当任何时候某个部门从dept表中删除时,该触发器将从emp表中删除该部门的所有雇员。(要求:emp表、dept表均为复制后的表) 2)、创建一个触发器,当客户下完订单后,自动统计该订单的所有图书的价格总额。 3)、创建一个触发器,禁止客户在非工作时间(早上8:00前,晚上17:00后)下订单。 五、实验心得

2019-01-10

操作系统实验报告

三、实验内容与要求 1、熟悉windows的编程接口,使用系统调用编程实现将参数1对应文件1.txt和参数2对应文件2.txt的内容合并到参数3对应文件zong.txt中(上传文件名为学号后5位ex0701.c)。 2、使用windows提供的命令将文件1.txt和文件2.txt的内容合并到文件total.txt中 (请将实现的操作命令写入下题批处理文件的第一行)。 3、主管助理小张经常接收公司员工发来的文件,开始为了节省时间,小张将下载的文件都保存在文件夹xiazai中(文件名如图1所示,下载后直接解压即可),这样不便于后期的统计和分类管理,现在领导要求必须为所有员工(90人)每人单独建立一个文件夹(以员工工号命名10201、10202......10290),然后将他们提交的文件分别剪切到各自对应的文件夹中(如图2所示)。于是小张开始为7名员工建立文件夹,再一个一个的去做……同学们想想有没有一种方法能快速完成所要求的操作呢? 请熟悉windows的命令接口,使用windows提供的常用命令copy、md、del等编写一个批处理文件(上传文件名为学号后5位ex0703.bat),实现所要求的功能: 1、启动linux系统或通过windows telnet到linux。 2、用huas用户名和密码123456登入系统中。 3、打开一终端窗口(在linux桌面上单击右键,选择从终端打开)。然后在其中输入以下命令实验。 4、熟悉常用操作命令. 5、编辑如下源代码(实验教材P86 1.进程的创建)并保存 二、实验目的 (1)加深对进程概念的理解,明确进程和程序的区别。 (2)分析进程竞争资源现象,学习解决进程互斥的方法。 (3了解Linux系统中进程通信的基本原理。 三、实验内容与要求 (1)任务一:编写一段程序,使其实现进程的软中断通信。 要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Processll is Killed by Parent! Child Processl2 is Killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止 Parent Process is Killed! (2)任务二:在上面的程序中增加语句signal (SIGNAL, SIG-IGN)和signal (SIGQUIT, SIG-IGN),观察执行结果,并分析原因。 (3)任务三:进程的管道通信 编制一段程序,实现进程的管道通信。 使用系统调用pipe()建立一条管道线;两个子进程P1和P2分别向管道中写一句话: Child 1 is sending a message! Child 2 is sending a message! 而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。 要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。 二、实验目的 自行编制模拟程序,通过形象化的状态显示,加深理解进程的概念、进程之间的状态转换及其所带来的PCB内容 、组织的变化,理解进程与其PCB间的一一对应关系。 三、实验内容与要求 1)设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。 2)独立编写、调试程序。进程的数目、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织形式可自行选择。 3)合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。 4)设计出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB内容、组织结构的变化。 二、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 三、实验内容与要求 通过计算不同算法的命中率比较算法的优劣。同时也考虑了用户内存容量对命中率的影响。页面失效次数为每次访问相应指令时,该指令所对应的页不在内存中的次数。 计算并输出下属算法在不同内存容量下的命中率。  先进先出的算法(FIFO); 最近最少使用算法(LRU) 二、实验目的 死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。 三、实验内容与要求 设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。 系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析。 四、算法描述(含数据结构定义)或流程图 (一) 数据结构 1. 可利用资源向量Available ,它是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源的数目,其初始值是系统中所配置的该类全部可用资源数目。其数值随该类资源的分配和回收而动态地改变。如果Available(j)=k,标是系统中现有Rj类资源k个。 2. 最大需求矩阵Max,这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max(i,j)=k,表示进程i需要Rj类资源的最大数目为k。 3. 分配矩阵Allocation,这是一个n×m的矩阵,它定义了系统中的每类资源当前一分配到每一个进程的资源数。如果Allocation(i,j)=k,表示进程i当前已经分到Rj类资源的数目为k。Allocation i表示进程i的分配向量,有矩阵Allocation的第i行构成。 4. 需求矩阵Need,这是一个n×m的矩阵,用以表示每个进程还需要的各类资源的数目。如果Need(i,j)=k,表示进程i还需要Rj类资源k个,才能完成其任务。Need i表示进程i的需求向量,由矩阵Need的第i行构成。 上述三个矩阵间存在关系:Need(i,j)=Max(i,j)-Allocation(i,j)。 (二) 银行家算法 Request i 是进程Pi 的请求向量。Request i (j)=k表示进程Pi请求分配Rj类资源k个。当Pi发出资源请求后,系统按下述步骤进行检查: 1. 如果Request i ≤Need,则转向步骤2;否则,认为出错,因为它所请求的资源数已超过它当前的最大需求量。 2. 如果Request i ≤Available,则转向步骤3;否则,表示系统中尚无足够的资源满足Pi的申请,Pi必须等待。 3. 系统试探性地把资源分配给进程Pi,并修改下面数据结构中的数值: 二、实验目的 磁盘是高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出工作,在现代计算机系统中往往同时会有若干个要求访问磁盘的输入输出要求。系统可采用一种策略,尽可能按最佳次序执行访问磁盘的请求。由于磁盘访问时间主要受寻道时间T的影响,为此需要采用合适的寻道算法,以降低寻道时间。本实验要求模拟设计一个磁盘调度程序,观察调度程序的动态运行过程。通过实验来理解和掌握磁盘调度的职能。 三、实验内容与要求 分别模拟如下磁盘调度算法,对磁盘进行移臂操作:  先来先服务算法  最短寻道优先算法 1. 假设磁盘只有一个盘面,并且磁盘是可移动头磁盘。 2. 磁盘是可供多个进程共享的存储设备,但一个磁盘每个时刻只能为一个进程服务。当有进程在访问某个磁盘时,其它想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出请求而处于等待状态时,可用磁盘调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。为此设置“驱动调度”进程。 3. 由于磁盘与处理器是并行工作的,所以当磁盘在为一个进程服务时,占有处理器的其它进程可以提出使用磁盘(这里我们只要求访问磁道),即动态申请访问磁道,为此设置“接受请求”进程。 4. 为了模拟以上两个进程的执行,可以考虑使用随机数来确定二者的允许顺序,参考程序流程图。 5. “接受请求”进程建立一张“进程请求I/O”表,指出等待访问磁盘的进程要求访问的磁道,表的格式如下: 进程名 要求访问的磁道号 6. 磁盘调度的功能是查“请求I/O”表,当有等待访问的进程时,按磁盘调度算法从中选择一个等待访问的进程,按其指定的要求访问磁道。流程图中的“初始化”工作包括:初始化“请求I/O”表,设置当前移臂方向;当前磁道号。并且假设程序运行前“请求I/O”表中已有若干进程(4~8个)申请访问相应磁道。

2019-01-10

uml rational rose

实验一 实验名称:业务建模 一、实验目的 1.熟悉业务建模内容。 2.掌握如何使用建模工具rational rose绘制业务模型图。 3.学习使用Microsoft Project对题目进行进度安排。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据图书管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。 要求: 1、创建业务用例模型。(参与者--用例)。 2、用活动图来描述系统核心业务过程。 3、创建业务对象模型。 四、实验步骤 1. 系统当前业务描述 …………………………… 2. 系统业务用例模型 ………………………….. 3. 核心业务用例的活动图 …………………………. 4. 系统业务对象模型 ………………………… 五、 实验心得 实验二 用例建模 一、 实验目的: 通过学生对提供的案例进行用例建模,熟练掌握用例建模技术。 二、主要实验仪器设备及环境 1. 计算机:安装有:操作系统为windows 2000,WindowsXP Professional; 2. 软件:National rose 三、实验内容: 1. 认真阅读案例的需求,根据其内容建立相应的用例模型; 2. 选择主要用例进行事件流分析,并把分析结果作为说明文档附在用例模型中; 四、实验步骤: 1. 系统参与者 2. 系统用例 3. 系统用例模型 4. 用例文档(主要用例) 五、实验心得 (对用例模型、用例的粒度、关系的理解) 实验三 顺序图 一、实验目的 1.理解顺序图的基本概念。 2. 掌握在Rational Rose中绘制交互图的操作方法。 3. 细化用例文档中的事件流,绘制顺序图。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 通过对系统动态模型部分的学习,根据用例建模阶段的用例图和用例文档,对对应的用例实现用顺序图来描述系统的动态特性。完成如下任务: 对选定系统中的主要用例进行动态建模(顺序图)。 四、实验步骤 1.在logic view中创建“分析模型”包,在该包中添加“用例实现”包,在“用例实现”包中添加跟踪关系图(类图),在跟踪关系图中描述用例与用例实现的关系。为系统中主要的用例实现添加顺序图。 如下图: 2.在logic view中分别添加三个包(构造型:layer):边界层、控制层、实体层。主要根据用例文档来识别分析类(边界类、控制类、实体类)。如下图: 3.对主要的用例实现,根据细化用例文档中的主要事件流。 ……………………………………… 4.结合用例实现中识别出来的分析类,绘制顺序图。如下图: ……………………………………… 五:实验心得: 实验四 系统分析类图 一、实验目的 1.识别分析类之间的关系、类的属性和操作。 2.使用ROSE软件构建系统的分析类图。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据***系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行分析,识别出分析类,识别类的属性和方法,构建每个用例的VOPC图,综合所有用例的VOPC图,构建系统的分析类图 要求: 1、针对每个用例实现构建其VOPC图 2、综合所有VOPC图,构建系统的分析类图 四、实验步骤 1. 对每个用例实现识别分析类,根据需求、常识识别类的属性,根据交互图识别类的方法,在每个用例实现下创建一个类图,命名为 **用例的VOPC图(借书用例VOPC) 2. 综合所有VOPC图,在系统分析包中创建一个类图,命名为系统分析类图 3. 通过用例实现顺序图中的消息映射出分析类的操作(如下图)。 ……………………………………. 4. 根据用用例文档映射出类的属性(如下图)。 ……………………………………….. 五、实验总结 实验五 实验名称:子系统和接口 一、实验目的 1.基于分析阶段的BCE架构,抽取子系统。 2.根据包设计原则,对系统组织结构进行设计 。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据指定系统的开发进度,已经完成对系统用例分析,应用BCE架构构建了系统的组织结构。本次实验主要根据抽取子系统的方法设计子系统、子系统接口,然后根据打包原则重构系统组织结构 要求: 1、抽取子系统,设计相应接口 2、利用包图设计系统架构 四、实验步骤 1. 抽取子系统 子系统是一种特殊的包,采用构造型《subsystem》扩展包的寓意,子系统内部是完全封装的,子系统提供接口对外服务。  你抽取子系统是依据什么角度(从那几个方面收取子系统?教材P263) ………文字描述子系统及抽取角度…………………… 2. 接口设计 接口是子系统对外提供的服务。接口采用构造型《interface》通过对类进行扩展表示 ……………子系统和接口的关系及几口中的操作,如P262 8-11图…….. 3. 更新软件架构 …………系统架构更新后的包图,如图8-17………………. 五、 实验心得 实验四 (系统静态模型)分析类图 一、实验目的 1.识别分析类、关系、类的属性和操作。 2.使用UML工具软件构建系统的分析类图。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据***系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行分析,识别出分析类,识别类的属性和方法,构建每个用例的VOPC图,综合所有用例的VOPC图,构建系统的分析类图 要求: 1、针对每个用例实现构建其VOPC图 2、综合所有VOPC图,构建系统的分析类图 3、根据顺序图为类添加操作 4、根据需求和用例文档为类添加属性 四、实验步骤 1. 对每个用例实现识别分析类,根据需求、常识识别类的属性,根据交互图识别类的方法,在每个用例实现下创建一个类图,命名为 **用例的VOPC图(借书用例VOPC) 1) 添加VOPC图 2) 打开vopc图,把该用例中的边界类、控制类、实体类拖入其中,并建立关系 2. 通过用例实现顺序图中的消息映射出分析类的操作(如下图)。 把每个类收到的消息映射为该类的一个操作。下面以申请边界类为例: 3. 根据用用例文档映射出类的属性(如下图)。 1) 打开某个类的规格说明,选择“属性”选项卡,在编辑窗口中点击鼠标右键,在菜单中“Insert”,可以为类添加属性 . 2) 例: 4. 综合所有的VOPC图,创建完整的系统分析类图 1) 在分析模型包下添加一个类图:命名为系统分析类图 2) 打开系统分析类图,把边界类包、控制类包、实体类包中的所有类拖入系统分析类图中,由于类的属性和操作、类之间的关系已经在每个类图中已经描述,所以在系统分析类图中会自然体现出来。 五、实验总结

2019-01-10

uml实验报告整合

实验一 实验名称:业务建模 一、实验目的 1.熟悉业务建模内容。 2.掌握如何使用建模工具rational rose绘制业务模型图。 3.学习使用Microsoft Project对题目进行进度安排。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据图书管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。 要求: 1、创建业务用例模型。(参与者--用例)。 2、用活动图来描述系统核心业务过程。 3、创建业务对象模型。 四、实验步骤 1. 系统当前业务描述 …………………………… 2. 系统业务用例模型 ………………………….. 3. 核心业务用例的活动图 …………………………. 4. 系统业务对象模型 ………………………… 五、 实验心得 实验二 用例建模 一、 实验目的: 通过学生对提供的案例进行用例建模,熟练掌握用例建模技术。 二、主要实验仪器设备及环境 1. 计算机:安装有:操作系统为windows 2000,WindowsXP Professional; 2. 软件:National rose 三、实验内容: 1. 认真阅读案例的需求,根据其内容建立相应的用例模型; 2. 选择主要用例进行事件流分析,并把分析结果作为说明文档附在用例模型中; 四、实验步骤: 1. 系统参与者 2. 系统用例 3. 系统用例模型 4. 用例文档(主要用例) 五、实验心得 (对用例模型、用例的粒度、关系的理解) 实验三 顺序图 一、实验目的 1.理解顺序图的基本概念。 2. 掌握在Rational Rose中绘制交互图的操作方法。 3. 细化用例文档中的事件流,绘制顺序图。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 通过对系统动态模型部分的学习,根据用例建模阶段的用例图和用例文档,对对应的用例实现用顺序图来描述系统的动态特性。完成如下任务: 对选定系统中的主要用例进行动态建模(顺序图)。 四、实验步骤 1.在logic view中创建“分析模型”包,在该包中添加“用例实现”包,在“用例实现”包中添加跟踪关系图(类图),在跟踪关系图中描述用例与用例实现的关系。为系统中主要的用例实现添加顺序图。 如下图: 2.在logic view中分别添加三个包(构造型:layer):边界层、控制层、实体层。主要根据用例文档来识别分析类(边界类、控制类、实体类)。如下图: 3.对主要的用例实现,根据细化用例文档中的主要事件流。 ……………………………………… 4.结合用例实现中识别出来的分析类,绘制顺序图。如下图: ……………………………………… 五:实验心得: 实验四 系统分析类图 一、实验目的 1.识别分析类之间的关系、类的属性和操作。 2.使用ROSE软件构建系统的分析类图。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据***系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行分析,识别出分析类,识别类的属性和方法,构建每个用例的VOPC图,综合所有用例的VOPC图,构建系统的分析类图 要求: 1、针对每个用例实现构建其VOPC图 2、综合所有VOPC图,构建系统的分析类图 四、实验步骤 1. 对每个用例实现识别分析类,根据需求、常识识别类的属性,根据交互图识别类的方法,在每个用例实现下创建一个类图,命名为 **用例的VOPC图(借书用例VOPC) 2. 综合所有VOPC图,在系统分析包中创建一个类图,命名为系统分析类图 3. 通过用例实现顺序图中的消息映射出分析类的操作(如下图)。 ……………………………………. 4. 根据用用例文档映射出类的属性(如下图)。 ……………………………………….. 五、实验总结 实验五 实验名称:子系统和接口 一、实验目的 1.基于分析阶段的BCE架构,抽取子系统。 2.根据包设计原则,对系统组织结构进行设计 。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据指定系统的开发进度,已经完成对系统用例分析,应用BCE架构构建了系统的组织结构。本次实验主要根据抽取子系统的方法设计子系统、子系统接口,然后根据打包原则重构系统组织结构 要求: 1、抽取子系统,设计相应接口 2、利用包图设计系统架构 四、实验步骤 1. 抽取子系统 子系统是一种特殊的包,采用构造型《subsystem》扩展包的寓意,子系统内部是完全封装的,子系统提供接口对外服务。  你抽取子系统是依据什么角度(从那几个方面收取子系统?教材P263)

2019-01-10

数据库原理实验报告整合

《数据库原理及应用》课程实验 实验1 创建数据库和数据表 一、实验目的 熟悉SQL Server Management Studio界面;掌握通过图形化向导和执行Transact-SQL语句创建数据库的方法。 二、实验环境 Windows7操作系统,SQL Server软件。 三、实验课时 2课时。 四、实验内容 SQL Server中的一个数据库必须至少包含一个数据文件和一个事务日志文件,所以创建数据库就是建立主数据文件和日志文件。 在SQL Server中创建数据库的方法主要有两种:一是在SQL Server Management Studio窗口中使用可视化界面,通过方便的图形化向导创建,二是通过执行Transact-SQL语句创建。 (一)向导方式创建 1、从“开始”菜单选择“所有程序”→“Microsoft SQL Server ”,打开“SQL Server Management Studio”窗口,使用Windows或SQL Server身份验证建立连接。 2、在“对象资源管理器”窗格中展开服务器,选择“数据库”节点右击,从弹出的快捷菜单中选择“新建数据库”命令,打开“新建数据库”窗口。 3、该窗口中有3个页,分别是“常规”、“选项”和“文件组”,完成这3个页的内容即可完成数据库的创建。这里,我们仅设置“常规”的相应内容,其他2个页的内容按照默认设置即可。 (1)“数据库名称”文本框中输入数据库的名称,如“student”,再输入该数据库的所有者,这里使用默认值即可。(也可以通过单击文本框右边的“浏览”按钮选择所有者。 (2)“数据库文件”列表中包括两行,一个是数据文件,一个是日志文件。通过单击下面相应的按钮可以添加或删除相应的数据文件。  逻辑名称:指定该文件的文件名。  文件类型:用于区别当前文件是数据文件还是日志文件。  文件组:显示当前数据库文件所属的文件组。  初始大小:指定该文件的初始容量。在SQL Server 中数据文件的默认值为3MB,日志文件的默认值为1MB。  自动增长:用于设置在文件容量不够用时,文件根据何种增长方式自动增长。  路径:指定存放在文件的目录。默认情况下,SQL Server 将存放路径设置为其安装目录下的data子目录,单击该列中的按钮可以在打开的“定位文件夹”对话框中更改数据库的存储路径。 完成上述操作后,单击“确定”按钮关闭“新建数据库”窗口,即完成了数据库的创建,可以在“对象资源管理器”窗格中看到新建的数据库。 (二)语言方式创建 SQL Server 使用的Transact-SQL语言是标准SQL的增强版本,使用它提供的Create Database语句同样可以完成对数据库的建立(参考内容见附录)。 1、单击“新建查询”按钮,创建一个查询输入窗口将附录中的语句复制到该窗口。选择创建数据库的命令,单击工具栏中的“分析”按钮,可以检查语法错误;单击“执行”按钮即可执行语句,在查询窗口内的“查询”窗格中可以看到“命令已成功完成”的提示消息。在“对象资源管理器”窗格中刷新,即可看到新建的数据库。 2、继续执行Create Database之后的语句,在“student”数据库中用Create Table命令依次建立S、C和SC这三个数据表,各表字段如下: STUDENT(SNO,SNAME,SEX,DOB,DEPT,TELNO) COURSE(CNO,CNAME,CPNO,TEACHER,CREDIT) SC(SNO,CNO,SCORE) 表1:STUDENT表 列名 类型 长度 约束 NULL PK FK CHECK sno char 10 N Y sname varchar 8 N sex Char 2 N ‘男’ or ‘女’ DOB datetime dept varchar 10 telno char 11 N 表2:COURSE表 列名 类型 长度 约束 NULL PK FK CHECK cno char 5 N Y cname varchar 10 N Cpno char 5 teacher varchar 8 N credit smallint 表3:SC表 列名 类型 长度 约束 NULL PK FK CHECK sno char 10 N Y References s(sno) cno char 5 N References c(cno) score decimal(6,2) 0-100 要求:当主表STUDENT中的主码SNO和COURSE中的主码CNO发生修改或删除时,SC表中的相应外码做CASCADE操作。 (三)知识巩固 用SQL-DDL语言创建“产品订购”数据库,包含四个数据表S、P、J和SPJ,表结构及内容如下(下划线为主码): S(SNO,SNAME, ADDRESS,TEL) 释义:供应商(供应商编号,姓名,地址,电话) J(JNO,JNAME,LEADER,BG) 释义:项目(编号,项目名,负责人,预算) P(PNO,PNAME,SPEC,CITY,COLOR) 释义:零件(编号,零件名,规格,生产地,颜色) SPJ(SNO,JNO,PNO,QTY) 释义:供应(供应商编号,项目编号,零件编号,数量) 其中,sno,jno,pno分别为对应S表,J表,P表的外码。 S表 列名 类型 长度 约束 NULL PK FK CHECK sno char 10 N Y sname varchar 8 N address char 10 N tel char 11 N J表 列名 类型 长度 约束 NULL PK FK CHECK jno char 10 N Y jname varchar 8 N leader varchar 8 N bg int N P表 列名 类型 长度 约束 NULL PK FK CHECK pno char 10 N Y pname varchar 8 N spec char 10 N city char 10 N color char 10 N SPJ表 列名 类型 长度 约束 NULL PK FK CHECK sno char 10 N Y References s(sno) jno char 10 N References j(cno) pno char 10 N References p(pno) qty int 实验2 数据库的简单查询 一、实验目的 掌握单表查询中各个子句(Select、From、Where、Group、Having、Order)的用法,特别要掌握比较运算符和逻辑运算符的使用。 二、实验环境 Windows7操作系统,SQL Server软件。 三、实验课时 2课时。 四、实验内容 在已建立的学生数据库和数据表的基础上,用Select语句完成下列查询操作。 STUDENT(SNO,SNAME,SEX,DOB,DEPT,TELNO) COURSE(CNO,CNAME,CPNO,TEACHER,CREDIT) SC(SNO,CNO,SCORE) 1、 查询全体学生的学号和姓名。 Select sno,sname From s 2、 查询全体学生的所有基本信息(仅针对S表)。 Select * From S 3、 对SC表查询全体学生的选课记录,并对score列增加5分。 Select sno,cno,score=score+5 From SC 4、 查询全体学生的学号和姓名,将原来的英文列名设置中文别名。 Select sno,sname from 5、 显示所有选课学生的学号,去掉重复结果。 Select distinct sno From sc 6、 查询成绩在80分以上的学生选课记录。 Select * From sc Where score>80 7、 查询经济系所有学生的学号和姓名。 Select sno,sname From S 8、 查询成绩在80~90分的学生选课记录. 9、 查询年龄不在22~25的学生记录。 10、 查询所有姓“刘”的学生基本信息。 11、 查询无考试成绩(成绩为空值)的学号、课程号。 12、 查询考试成绩非空值的学号、课程号。 13、 查询数学系年龄小于20岁的学生记录。 14、 查询选修了‘101’或‘102’课程的选课记录。 15、 查询学生总人数。 16、 查询选修了课程的学生人数。 17、 查询选修了‘101’课程的学生的平均成绩。 18、 查询学号为‘01003’的学生的考试总成绩。 19、 查询‘101’课程的最高分和最低分。 20、 查询每门课程的选课人数。 21、 查询每个学生的学号、选课数、平均成绩和总成绩。 22、 查询选课数超过2门的学生学号及其选课数。 23、 查询所有学生信息,查询结果按年龄降序排列。(针对S表操作) 24、 查询所有学生信息,查询结果按系名升序,同系学生按年龄降序排列。 25、查询选课数超过2门的学生学号及其选课数,查询结果按选课数降序排列。 实验3 数据库的多表查询 一、实验目的 继续熟练SQL-SELECT语句的使用;理解多表查询的概念;掌握多表连接查询中各个子句的用法,特别要比较内连接和外连接的结果。掌握非相关子查询、相关子查询的用法,理解它们的执行过程。 二、实验环境 Windows7操作系统,SQL Server软件。 三、实验课时 2课时。 四、实验内容 (一)、在已建立的STUDENT数据库和数据表的基础上,用Select语句的连接查询完成下列操作。 1、查询每个学生的基本信息及其选课情况。 select * from s,sc where s.sno=sc.sno 2、查询选修‘a’课程的学生学号、姓名和成绩。 select sno,sname,score from s,sc where cno=’a’ and s.sno=sc.sno 3、查询与‘李四’在同一个系学习的学生记录。 select from where 4、查询与‘李平’年龄相同的学生记录。 select from where 5、查询选修课程名为“高数”的选课记录。 select sno,score from c,sc where cname=’高数’ and c.cno=sc.cno 6、查询选修课程名为“高数”的学生记录。 select s.sno,sname from s,c,sc where cname='高数' and s.sno=sc.sno and c.cno=sc.cno 7、查询选修‘a’课程且成绩大于等于90的学号、姓名和成绩。 select s.sno,sname,score from s,sc where cno='a' and score>90 and s.sno=sc.sno 8、查询‘吴十’的所有选课记录。 select cno from s,sc where sname=’吴十’ and s.sno=sc.sno 9、查询计算机系学生选修的课程号,要求结果中去掉重复记录。 select distinct cno from s,sc where dept=’计算机’ and s.sno=sc.sno 10、查询计算机系选修课程数大于等于2的学号、姓名及平均成绩,查询结果按平均成绩降序。 select sno,sname,avg(score)平均成绩 from s,sc where sc and s.sno=sc.sno order by avg(score) 11、查询每个学生的学号、选修课程号、课程名及成绩。 select s.sno,c.cno,cname,score from s,c,sc where s.sno=sc.sno and c.cno=sc.cno 12、查询所有学生的选修情况(包括选课和未选课的学生),要求显示学号、姓名、课程号和成绩。 select sno,sname,cno,score from where (二)、在已建立的数据库和数据表的基础上,用Select语句的嵌套查询完成下列操作。 1、查询选修‘a’课程且成绩大于等于90的学号、姓名。 select sno,sname from s where sno=(select sno from sc where cno='a' and score>90) 2、查询‘李四’的所有选课记录。 select cno from sc where sno= (select sno from s where sname=’李四’ ) 3、查询与‘李平’在同一个系学习的学生记录。 select from where 4、查询与‘李平’年龄相同的学生记录。 select from where 5、查询选修课程名为‘高数’的选课记录,输出结果包括学号和成绩。 select sno,score from sc where cno= (select cno from c where cname=’ 高数’ ) 6、查询选修课程名为‘高数’的学生记录,输出结果包括学号、姓名和所在系。 select sno,sname,dept from s where sno= (select sno from sc where cno= (select cno from c where cname=’高数’ ) ) 7、查询学号为‘1’学生的选修课程号和课程名。 select cno,cname from c where sno= (select from where 8、查询没有选修‘101’课程的学生学号和姓名。 select from where 9、查询选修‘101’课程或‘102’课程的学生姓名。 select from where 10、查询选修‘101’课程和‘102’课程的学生学号。 select from where 11、查询选修‘101’课程但没选修‘102’课程的学生学号。 select from where 12、查询没有选修任何课程的学生记录,输出结果包括学号、姓名和所在系。 select from where 13、查询数学系学生选修的课程号,要求结果中去掉重复记录。 select from where 14、查询选修课程至少包含‘01003’选修课程的学生学号。 select from where 实验4 数据库更新、视图定义及使用 一、实验目的 掌握Insert、Update、Delete语句的使用;对于Insert语句,要求理解默认值约束、空值约束在插入记录时所起的作用。理解视图的概念,掌握Create View、Drop View语句的使用;掌握基于视图的查询语句的使用。 二、实验环境 Windows7操作系统,SQL Server软件。 三、实验课时 2课时。 四、实验内容 (一)、在已建立的数据库和数据表的基础上,向数据库中添加一个临时表ST,其结构与S表结构相同。用Insert语句向临时表输入数据,输入有误时用Update语句进行修改。再用三个更新语句完成下列操作。 1、向S表添加若干新记录,内容自定。(观察已定义的表的约束情况) 2、向SC表添加新记录,内容自定,不低于10条(注意不能违反参照完整性)。 3、为临时表ST添加记录。 4、把S表的所有行一次性地加到临时表ST中。 select * into ST from S; 5、在SC表中把所有学生的成绩加2分。 update sc set score=case when score+2>100 then 100 else isnull(score,0)+2 end; 6、在ST表中把所有学生的年龄增加1。 7、在ST表中把‘李四’的所在系改为‘计算机’。 update st set dept='计算机' where sname='李四' 8、在SC表中将选修课程‘高数’的学生成绩加2分。 update sc set score=score+2 from sc,c where sc.cno=c.cno and cname='高数' 9、在SC表中删除所有成绩为空值的选修记录。 delete sc where score is null 10、删除计算机系选修成绩不及格的选课记录。 delete sc from s,sc where s.sno=sc.sno and score90 7、查询计算机系选修课程名为“高数”并且成绩大于70分的学生的学号和成绩。 select sno,score from SCVIEW where cname='高数' and score>70 8、通过MAST视图将学号为‘01008’学生的年龄修改为21岁。 9、通过MAST视图将学号为‘2’学生所在系改为‘经济’,是否能成功执行?若不能成功请说明理由;若修改成功,请再次通过MAST视图查询学生基本信息,是否能查询到该生?若不能查询请说明理由。 能成功执行以下语句: update MAST set dept='经济' where sno='2' 不能查到该生,因为在MAST视图下他的条件已经不符合系名为数学。 10、通过SCVIEW视图将学号为‘1’学生的总成绩修改为380分,是否能成功执行?若不能成功请说明理由。 实验5 数据库的安全与保护 一、实验目的 理解SQL Server的用户与权限管理机制,掌握用对象资源管理器创建服务器登录帐号,并同时建立用户。掌握如何为给定的用户分配权限。 二、实验环境 Windows7操作系统,SQL Server软件。 三、实验课时 2课时。 四、实验内容 用户与权限管理 (1)打开“SQL Server Management Studio”窗口,使用对象资源管理器创建两个服务器登录帐号Test1和Test2,并在“sample_st”数据库中创建两个对应的同名用户。设置Test1用户和Test2用户的默认架构为guest。 (2)使用Test1身份登录,并为Test2分配创建数据表的权限;用Test2身份登录来验证权限分配成功。 (3)使用Test1身份登录,收回刚刚分配给Test2的创建数据表的权限;用Test2身份登录来验证权限回收成功。 五、实验步骤 1、使用对象资源管理器创建两个服务器登录帐号。 以系统管理员身份登录SQL Server。打开“SQL Server Management Studio”窗口,在对象资源管理器列表中,打开展开“安全性”文件夹,选择“登录名”图标,单击鼠标右键,在弹出的菜单中选择“新建登录名”。在打开的对话框中依次建立Test1和Test2,选择“SQL Server身份验证”,同时还要输入密码,默认数据库为“sample_st”。 (2)在“用户映射”中列出了当前登录帐号可以选择访问的数据库如“sample_st”,在其左侧的复选框中打勾,表示当前登录帐号可以访问对应的数据库,默认用户名与登录帐号相同。 (3)单击“确定”按钮完成创建。 2、创建新的数据库用户。 在对象资源管理器中选中要访问操作的数据库,展开“安全性”文件夹,在“用户”文件夹中查找是否已建立与登录名Test1和Test2同名的数据库用户,若已建立,则在属性中修改其默认架构为guest;否则右击鼠标在菜单中选择“新建用户”选项,出现“数据库用户-新建”对话框,建立相应的用户。 3、用Grant、Revoke命令实现对用户的授权和收权。 4、用Create命令创建数据表验证授权和收权是否成功。 5、以系统管理员身份登录SQL Server。使用:“GRANT SELECT ON SC TO Test1 WITH GRANT OPTION”命令,再分别以Test1和Test2身份登录,进行授权及查询数据表,验证“WITH GRANT OPTION”能否成功执行。 6、以系统管理员身份使用“REVOKE”命令回收上述授权。

2019-01-10

湖南文理学院大三专业英语翻译

整合版,书上没有的课文翻译 目录 1.1仔细看看处理器和主存储器 3.4介绍java 4.1操作系统概要 5.1 互联网 6.2载波频率和多路复用 7.2 SQL引言

2019-01-10

湖南文理学院微机原理期末复习大纲

考试复习大纲哦 湖南文理学院,学长亲传1. cpu基本结构:两大部件,数据总线 2. 指令系统、堆栈操作:进栈 3. 串操作:串怎么传送 4. 转移指令:条件转移,短转移,进远转移

2019-01-10

湖南文理学院uml模拟考试试卷及答案*(附详细解析)

1. 用例(Use case)用来描述系统对事件作出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。用例“创建新订单”、“更新订单”与用例“核查客户帐号”之间是( B A )关系。 A.包含(include) B.扩展(extend) C.分类(classification) D.聚集(aggregation( ) 2. ( B C)描述了一组交互对象间的动态协助关系,表示完成某项行为的对象和这些对象间传统消息的时间顺序。 A.对象图 B.协作图 C.序列图 D.状态图 3. 对某企业的工作流程进行建模,( B )是最有效的。 A.交互图 B.活动图 C.状态图 D.类图 4. 用况图关于角色的说法中错误的是( D )。 A. 参与者是与目标系统交互的人或物 B. 参与者可以是实际的人,也可以是外部设备、外部系统等 C. 参与者之间可以存在一定的关系 D. 参与者是用例图的重要组成部分,因此它是目标系统的组成部分 5. 接口的构造型是( B )。 A.《sign》 B.《interface》 C.《component》 D.《mode》 6. ( C )是对象与其他外部世界相互关联的唯一途径。 A.消息传递 B.状态转 C.接口 D.函数调用 7. 在状态图中不能表示下面那些概念?( D ) A.动作(action) B.事件(event) C.转移(transition) D.类(class) 8. 继承机制的作用是 ( C )。 A. 信息隐藏 B. 数据封装 C. 派生新类 D. 数据抽象 9. 顺序图主要可以为设计人员提供( B A )信息。 A. 消息发送的顺序 B. 某个方法的执行流程 C. 类之间关联关系的多重性 D. 某个对象在不同状态之间的转移 10. 一个设计得好的OO系统具有( B ) A. 低内聚、低耦合的特征 B. 高内聚、低耦合的特征 C. 高内聚、高耦合的特征 D. 低内聚、高耦合的特征

2019-01-10

湖南文理学院uml模拟考试试卷及答案

1. 实现是软件工程的最后阶段,它描述了程序设计语言中的细节。( F ) 2. 数据管理部分的设计是OOD模型中的一部分,负责使用关系数据库存储和检索永久对象。( F ) 3. 在系统设计的过程中,要设计高层策略,即系统架构(system architecture),用于构造问题的解决方案。(T) 4. 一个软件系统,如果只有源代码,缺乏其他相应的辅助文档,如缺乏顺序图和类图,则可以利用Rose进行逆向工程得到顺序图和类图,但得到的顺序图和类图会比较简单。( F) 5. 用况(Use Case)用于描述所要开发的系统的一项功能。( T ) 6. 顺序图是一种强调发送和接受消息的对象结构组织的图,用以展示围绕对象以及它们之间的连接器而组织的交互。( F ) 7. 在一个状态图中,有且仅有一个初始状态,可有一个或多个终止状态。(T) 8. 当系统规模较大且较为复杂时,往往难以直接对其进行建模。这就需要把系统分解成子系统,再对子系统进行建模。( T ) 9. 类图是最重要的模型图,它描述了系统中各类对象以及它们之间的各种关系。( T ) 10. 两个参与者(actor)之间可以有包含(include)关系、扩展(extend)关系或泛化(generalization)关系,而包含关系和扩展关系是依赖(dependency)关系的版型。( F )

2019-01-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除