为您找到搜索结果:3700个
oracle中plsql练习-----在控制台输出1到100以内的素数。
一、思路:首先需要知道素数的概念即质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。中心思想是,外循环所有的自然数,内循环折半查询,增加代码的速度,注意:从1开始,需要大于1,但是plsql中的循环是包括两端的值的,所以初始值应该从2开始。 二、具体实现1--在控制台输出1到100以内的素数。23declare4--声明一个boolean类型的变量,用作判断输出5v_zboolean;6begin7--循环100以内的数字8foriin2..100loop9--满足条件即为true10v_z:=true;11--内循环,如果自然数不为素数,则不能被被2正常,直接就不走内循环,12--如果不是素数,则继续走内循环,将v_z赋值为false,为后边的输出做判断13forjin2..trunc(i/2)loop14--内循环中的算法是折半查询,例如:18不是素数,则18能被2整除,也就得到了18最大的因数为9,依次类推,提高了算法的效率。15if(mod(i,j)=0)then16v_z:=false;1718endif;1920endloop;21--最后输出判断,...
oracle中plsql练习题-----编写一个PL/SQL块,输出所有员工的员工姓名、员工号、工资和部门号
一、思路:首先输出需要变量接收,需要声明变量,于是考虑什么变量类型比较合适,在这我用的是table类型,最后,查询出来,循环输出即可。 二、具体实现1--编写一个PL/SQL块,输出所有员工的员工姓名、员工号、工资和部门号2declare3--声明table类型的对象,属性员工姓名:ename,员工号:empno,工资:sal,部门:deptno4typeemp_table_typeistableofemp%rowtype5indexbybinary_integer;6--声明table类型的变量,用来存储员工表的所有数据7v_empemp_table_type;89begin10select*bulkcollectintov_empfromemp;1112forv_iinv_emp.first..v_emp.last13loop14dbms_output.put_line('员工姓名:'||v_emp(v_i).ename||'员工工资:'||v_emp(v_i).sal||'员工部门:'||v_emp(v_i).deptno);1516endloop;1718end;&n...
oracle中pl/sql 练习题----输入部门编号,在控制台打印这个部门的名称,总人数,平均工资(基本工资+奖金)
一、思路:声明record类型的变量,根据多表联合查询查出想要的数据,最后输出。二、注意:record类型不一定只是一个表中的数据,也可以声明不同表中的数据类型。 三、语句如下:1declare2--声明record类型3typeemp_record_typeisrecord(4deptnoemp.deptno%type,5dnamedept.dname%type,6countemp.sal%type,7avgemp.sal%type8);910--声明record类型的变量11v_empemp_record_type;12begin1314--查询数据,给变量赋值15selecte.deptno,d.dname,count(e.ename)ascount1,avg(sal+nvl(comm,0))intov_empfrom16empeinnerjoindeptdond.deptno=e.deptnowheree.deptno=&nogroupbye.deptno,d.dname;17--selectename,sal,sal+nvl(comm,0)intov_emp...
oracle去除重复数据与oracle分页
一、去除oracle中重复数据,可以使用rowid列,rowid列是一个伪列,该列在数据库中灭一个表中都有,但是我们查询数据库的时候,默认都没有给我们返回这一列,这一列用来区分数据库中的每一行时间,可以这样认为,子啊数据库中所有表的所有数据中,rowid都不会重复,一般主键只能保证在当前表中不重复。 语句(以user表为例):1deletefromusersu1whereexists(select1fromusersu2whereu1.username=u2.usernameandu1.password=u2.passwordandu1.rowid?u2.rowid); 二、分页查询。,mysql使用limit进行分页,oracle中没有limit关键字,子啊oracle中使用rownum进行分页,rownum是一个伪列,但是rownum和rowid不同的地方是rownum在数据库中不存在,rowid物理上存在这一列 语句(以emp表为例):1select*from(selecte.*,rownumrfromempewhererownum<...
数据库范式(数据库设计的范式)
注意:后面的范式一定要满足前面 第一范式:(1NF)是指在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域(列不能在分)。错误一:(关系型数据库(列固定行多个)MySQLoraclesqlserver非关系型数据库NoSQL是关系型数据库的补充(基于内存)缓存服务redis)idnameagesexteltel1tel2tel3tel4tel5错误二:idnameagesextel1张三18男2李四18男1103王五18男120,130,140正确Usertelephoneidnameagesexiduidtel1张三18男121202李四19男231303王五19男33140 第二范式:(2NF)第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。...
servlet实现mysql数据库分页
一、分页所需要的sql语句准备select*fromtablelimitm,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条。例如:select*fromtablenamelimit2,4即取出第3条至第6条,4条记录 第n页每页x条则用语句 limit(n-1)*x ,x计算总共需要多少页: t表示总条 x表示每页显示多少条 总页数为:(t+x-1)/x 二、具体实现1、dao层,接口实现1packagecom.aaa.dao;23importjava.util.List;4importjava.util.Map;5678importjava.util.List;9importjava.util.Map;1011/**12*分页查询13*/1415publicinterfaceIPageDAO{1617/**18*19*第n页每页x条limit(n-1)*x,x20*t总共的条数x一页显示多少count总:(t+x-1)/x21*22*/2324/**25*参数:页码,一页显...
JAVA数据库连接池C3p0 以及阿里Druid提供的连接池
一:连接池的定义本质上就是个容器(集合)存放数据库连接的容器,当系统初始化后,容器被创建,容器中就会申请一些连接对象,当用户来访问数据库的时候,从容器中取连接对象,用户用完之后,归还。 二:常用的连接池的连接方法1、C3p0连接方式: 步骤: 1 导包两个包c3p0-0.9.5.2.jar mchange-commons-java-0.2.12 2定义配置文件名称 c3p0.properties c3p0-config.xml 路径:将文件放到src目录下 3创建核心对象数据库连接池对象ComboPoolDataSource 4获取链接getConnection代码如下:1packagecom.aaa.collection;23importcom.mchange.v2.c3p0.Combo...
Java读取.properties配置文件并连接数据库
1、读取配置文件1//Properties集合流对象读取键值对2publicstaticvoidgetNum()throwsException{3Propertiesp=newProperties();4FileReaderf=newFileReader("c:\root.properties");5p.load(f);6f.close();7}2、properties文件url:jdbc:mysql://localhost:3306/qy97name:"root"password:"root" 3、数据库连接代码1packagecom.aaa.QuDong;importjava.io.FileReader;importjava.sql.*;importjava.util.Properties;publicclassSQLEnc_Test{publicstaticvoidmain(String[]args)throwsException{Propertiesp=newProperties();//获取文件里边的值FileReaderf=newFileReader("c:\ro...
MySql数据库常用语句汇总
第一天1、登陆数据库mysql-uroot-proot;//-u用户名-p密码2、启动数据库netstartmysql;3、创建表空间(数据库)createdatabaseqy97;4、创建数据库并声明数据库为utf8格式createdatabaseqy97charactersetutf-8;4、创建表格createtableperson(idint,namevarchar(10),ageint,sexvarchar(10));5、查询表格select*fromperson;6、查询数据库showdatabases;7、查询数据库有多少表格showtables;8、删除数据库dropdatabaseqy97;9、删除表格droptableperson;10、插入数据insertintopersonvalues(1,"did",12,"nan");11、删除表格数据deletefrompersonwhereid=1;12、使用数据库useqy97//use数据库名第二天13、主键约束特点非空只用于表示当前的记录idintprimarykey14、删除主键altertable表名dropp...
JDBC连接各种数据库的方法,连接MySql,Oracle数据库
JDBC连接各种数据库的方法: JDBC编程步骤:1、导入jar包2、注册驱动3、获取数据库连接对象4、定义SQL语句5、获得执行SQL语句对象statemnet6、执行SQL语句7、处理结果8、释放资源 1)JDBC连接Oracle数据库Class.forName("oracle.JDBC.driver.OracleDriver").newInstance(); //注册驱动Connectioncon=DriverManager.getConnection("JDBC:oracle:thin:@localhost:1521:orcl",“你的oracle数据库用户名”,“用户名密码”); //获取数据库连接对象 2)JDBC连接MySql数据库class.forName("com.mysql.jdbc.Driver"); //注册驱动Connectioncon=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","你的mysq...
抖音爆火的随机点名Java实现原理,没有连接数据库
抖音爆火的随机点名Java实现原理,没有连接数据库importjava.util.Random;publicclassArray{publicstaticvoidmain(String[]args){//定义一个数据组来存取数据String[]names={"杨颖","杨幂","赵丽颖","迪丽热巴","唐嫣","唐艺昕","容祖儿","宋祖儿","蓝盈盈","蔡卓妍","林志玲","孙怡","宋佳","宋茜","马苏","蒋欣","古力娜扎","欧阳娜娜","贾玲","李小璐","江一燕","包文婧","邓家佳","娄艺潇","昆凌","马思纯","周冬雨","何穗","李亚男","李沁","应采儿","张天爱","贺敬轩","谢娜","萧亚轩"};//自动生成随机数Randomra=newRandom();//声明一个变量来接收随机数,随机数不能超过数组的长度intb=ra.nextInt(names.length);//打印输出下标是随机数的内容System.out.println(names[b]);}} ...
mysql 5.7数据库支持emoji符号但是程序总算报错Incorrect string value: 'xF0x9Fx98x84xF0x9F...' for column ...
1.线上碰到个问题,端上切换搜狗输入法后,原来限制的表情符号还能输入。数据库使用的是5.7.22版本的,刚开始以为数据库不支持表情符号导致的,但是看了线上的数据库以及字段,都是支持的。 showvariableslike'%character%'; showfullcolumnsfromdriver_reward_record; 直接使用sql语句通过navicate客户端,也是可以插入成功的。但是在程序里面死活插入不进去,这就郁闷了。 看了下mysql的 mysql-connector-java版本是5.1.34,大于5.1.13也是没问题的。数据库、表、字段都是utf8mb4的,也是正常的。然后怀疑是项目过滤器编码的问题,但是在项目里面写死然后启动项目,仍然提示插入错误:Incorrectstringvalue:'xF0x9Fx98x84xF0x9F...'forcolumn... 这就郁闷了啊~~ 然后网...
记录一次mybatis查询返回为空数据库却能查询到数据的经历
昨晚上测试人员给发了一条测试数据,说是根据这条数据接口返回信息为空。之后根据给的信息去数据库查询了下,明明是有数据的。但是用mybatis就是查询不出来。奇了怪了,自己测试的数据都能查询出来,为何这条数据就是没有那?查询条件就是主键+状态值而已,没有多余的查询。 想了半天,问同事。搞了老半天,刚开始怀疑是数据问题,mybatis数据类型转换的问题,之后把mybatis的查询条件加上了类型(刚开始查询条件没加类型),甚至查询符号也由#变为了$,但是统统不起作用。 之后过来了个同事,说是不是查错库了。。。 仔细一想,自己搜索表的时候,是直接搜索的表名字。没太在意是test库还是dev库,而测试库和dev库的数据又刚好一致,只不过是测试数据的状态不同。所以自己在dev查询出来了数据,而测试库没有。 ╮(╯▽╰)╭哎,其实开始查询找问题前先仔细想想,完全是能避免这样的问题的。甚至关闭重启mysql客户端也是可以的吧 ...
记录一次数据库的恢复经历
测试环境下的数据被莫名其妙的修改了,全表更新错误,影响正常的开发。由于没有备份,通过备份无法恢复。只有通过binlog来恢复:中间遇到的问题和经历说下 1).使用root权限,找到mysql的my.cnf目录和binlog目录,找到里面的bin_log.里面含有binglog的日志目录.其实就是通过mysql的命令行界面,输入SHOWVARIABLESLIKE'%log_bin%';看到的内容类似 比如我自己的目录:my.cnf/db/data0/mysql/3306/my.cnfbinlog/db/data0/mysql/3306/binlog/ 2)进入到mysql的bin目录,使用mysqlbinlog命令mysqlbin路径:/usr/local/mysql/bin/使用binglog先要查看具体某一天的:可以使用命令mysqlbinlog--base64-output=decode-rows-v--start-datetime='2017-12-1000:00:00'--stop-datetime='2017-12-1023:01:0...