Java基础数据库哪些需要学习(Java基础数据库小结)

  • 时间:
  • 8390人关注

这是一篇关于java相关的编程问答内容,被628位程序员关注,内容涉及到java、数据库、Java基础数据库小结等,由益悦媛 编辑补充,一起来看下大家的回答。

创建表的语句,最后一个不写逗号createtablestudent(idint,namevarchar(10),phonechar(11),agetinyint,scoreint,birthdaydate)char(10):张三,自动补空格,到10个字符,定长,每个长度都是10。varchar(10):张三,不会自动补空格,不定长。

数据库内一般不存放音频,视频,图片,文件,这些内容。如果要存放这些文件,一般存放的都是文件的地址varchar类型。showdatabases查询所有数据库。createdatabaseifnotexistsdb+数据库名字。创建数据库。dropdatabase+数据库名字删除数据库。切换使用的数据库。USEdb_name;表命令。eg:usedb604;showtable查看所有表。

desc+表名查看表结构。SHOWcreatetable+表名查看创建表语句。droptable+表名查出此表。Altertable表名add|drop|modify|changecolumn列名、类型等信息修改表名。altertableuserdropcolumnage;删除列。修改表名mysql>altertableuserrenametostudent;mysql>renametableusertostudent;

数据库操作语句(增删改数据)1.插入数据INSERTINTOtable_name(列名)VALUES(值);insertinto。[如果不写列名,values后面必须给表中的所有列赋值,并且和列一一对应]eg:insertintouser(id,name,age)values(1,'zhangsan',20);insertintouservalues(1,'zhangsan','男',20);2.修改数据UPDATEtable_nameSETcol_name1=值,col_name2=值2。[WHEREwhere_definition]。eg:updateusersetname='zhaoliu';3.删除数据。deletefromtable_name。[WHEREwhere_definition]。eg:deletefromuserwhereid=1;

查询数据1.查询所有数据。SELECT*fromtable_name;eg:select*fromuser;2.查询指定列数据。SELECT列名,列名,列名fromtable_name;eg:selectid,namefromuser;3.查询时指定常量列(别名)SELECT列名as别名fromtable_name;as可以不写eg:mysql>selectid,nameas姓名fromuser;mysql>selectid,name姓名fromuser;4.查询时去除重复数据DISTINCT。eg:selectdistinctid,namefromuser;5.查询时合并。eg:selectid,name,age,java+mathfromuser;selectid,name,age,java+mathastotalfromuser;

6.按条件查询WHEREeg:select*fromuserwhereid=2;a逻辑条件查询,涉及多个条件and&&(与)or(或)。eg:select*fromuserwhereid=2andname='lisi';select*fromuserwherename='lisi'orage=22;b比较条件查询>、>=、<、<=、=、<>,betweenand(谁和谁之间)。eg:select*fromuserwhereid<>2;eg:select*fromuserwhereid>2;eg:select*fromuserwhereid>=2;eg:select*fromuserwhereidbetween2and5;c判断是否为null(null表示没有数据)mysql>select*fromuserwhereageisnull;mysql>select*fromuserwhereageisnotnull;d模糊查询like。%通配符,可以匹配多个字符_通配符,匹配一个字符。mysql>select*fromuserwherenamelike'zhao%';mysql>select*fromuserwherenamelike'%s%';mysql>select*fromuserwherenamelike'zhaos_';

7通过聚合函数查询。a计算表中有多少条数据(行)count。eg:selectcount(*)fromuser;如果某些行对应的列没有数据,不计算到总数里。eg:selectcount(age)fromuser;b求平均值avg。eg:selectavg(age)fromuser;c求最大值和最小值。eg:selectmin(age)fromuser;eg:selectmax(age)fromuser;d求和sum。mysql>selectsum(age)fromuser;--sum()该列所有数据总和。--+该行数据相加的和。

8.排序orderby。eg:select*fromuserorderbyage;eg:select*fromuserwhereageisnotnullorderbyage;desc表示降序,asc表示升序,默认升序。eg:select*fromuserwhereageisnotnullorderbyagedesc;可以指定多个排序的字段,例如先按照age排序,相同的age值再使用id排序eg:select*fromuserwhereageisnotnullorderbyage,id;eg:select*fromuserwhereageisnotnullorderbyagedesc,iddesc;

9分组查询groupby。eg:selectgender,count(*)fromusergroupbygender;eg:selectgender,count(*)fromstugroupbygenderorderbygenderdesc;having对分组后的数据进行筛查。where放在分组前使用mysql>selectgender,count(*)fromuserwhereageisnotnullgroupbygenderhavingcount(*)>1。orderbygenderdesc;

10分页查询limit。Limit从哪个位置开始查(索引从0开始计数),查询多少条数据。mysql>select*fromuserlimit3,3;表示从0位置开始查询3条数据mysql>select*fromuserlimit3。

码农之家
精选回答2:Java如果通过jdbc操作连接oracle数据库

5小时20分钟前回答

1、jdbc

1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity

2) jdbc的本质:在编程时java程序会去连接不同的数据库,而每个数据库的底层的实现原理是不同的,所以我们所编写的程序应该是面向一套规范去编写的,这套java语言连接数据库的规范就是jdbc

A、sun公司:

jdbc接口是一套由Sun公司制定的一套Class文件规范,用于规范程序员;

B、数据库厂商:

编写jdbc接口的实现类,并将这些实现类打成jar包,并发布;这些jar包被称为连接数据库的驱动。

C、编程的程序员:

从各类型的数据库官网上面下载jar包,并配置到环境变量Classpath中。若果没有把class文件配置到环境变量classPath,那么代表你只有接口和调用数据,而没有接口的实现类,没有实现类程序是无法运行的。

3) oracle10gi下JDBC驱动包介绍:

Oracle 数据库 10g 第 2 版 (10.2.0.1.0) JDBC 驱动程序针对所有平台的 JDBC 瘦客户端

classes12.jar     用于 JDK 1.2 和 JDK 1.3
classes12_g.jar    与 classes12.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息
classes12dms.jar   与 classes12.jar 一样,除了另外包含支持 Oracle 动态监视服务的代码。
classes12dms_g.jar 与 classes12dms.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。

ojdbc14.jar     用于 JDK 1.4 和 1.5 的类
ojdbc14_g.jar    与 ojdbc14.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。
ojdbc14dms.jar   与 ojdbc14.jar 一样,除了另外包含支持 Oracle 动态监视服务的代码。
ojdbc14dms_g.jar  与 ojdbc14dms.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。
orai18n.jar      用于 JDK 1.2、1.3、1.4 和 1.5 的 NLS 类。该 jar 文件代替旧的 nls_charset jar/zip 文件。
ons.jar        供纯 Java 客户端 Oracle 通知服务 (ONS) 后台程序使用。
demo.tar 或 demo.zip 包含 JDBC 示例程序

|示例:java连接数据库进行查询操作|

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCTest01 {
 public static void main(String[] args) {
 Connection con=null;
 PreparedStatement prs=null;
 ResultSet rs=null;
 try {
  //步骤1、加载oracle驱动程序
  Class.forName("oracle.jdbc.OracleDriver");
  String url="jdbc:oracle:thin:@10.125.4.55:1521:orcl";
  String user="zhangjunbo";
  String password="zjb123";
  String sql="select * from student where xuehao='2'";
  try {
  //步骤2、获取连接 
  con=DriverManager.getConnection(url, user, password);
  System.out.println(con);
  } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
  try {
  //步骤3、实例化预编译语句
  prs=con.prepareStatement(sql);
  } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
  //步骤4、执行查询
  try {
  rs=prs.executeQuery(sql);
  } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
  
  
 } catch (ClassNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 try {
  //步骤5、处理查询结果集
  while(rs.next()){
  System.out.println("姓名:"+rs.getString("xingming")+"\n"+"生日:"+rs.getString("birthday"));
  }
 } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }finally{
  //逐一将上面的几个对象关闭,不关闭的话会影响性能、并且占用资源
  //注意关闭的顺序,最后使用的最先关闭
  try {
  rs.close();
  } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
  try {
  prs.close();
  } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
  try {
  con.close();
  } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
 }
 }
}

|示例:通过配置文件连接数据库进行增删改查|

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCTest02 {
 public static void main(String[] args) throws ClassNotFoundException, SQLException {
 //创建输入流
 FileReader fReader=null;
 try {
  fReader=new FileReader("src/JDBC/db.properties");
 } catch (FileNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 //创建map集合对象
 Properties properties=new Properties();
 //加载(将输入流中的资源加载到属性类对象中) 
 try {
  properties.load(fReader);
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 String driver=properties.getProperty("driver");
 String url=properties.getProperty("url");
 String username=properties.getProperty("username");
 String password=properties.getProperty("password");
 Class.forName(driver);
 Connection connection=DriverManager.getConnection(url, username, password);
 //对student表进行修改操作
 String sql="update student set xingming=? where xuehao=?";
 PreparedStatement pre=connection.prepareStatement(sql);
 pre.setString(1,"纷纷");
 pre.setString(2, "3");
 String sqlInsert="insert into student values(20,'寂静','男','','12000',3,20,21)";
 PreparedStatement pre2=connection.prepareStatement(sqlInsert);
 int insertInt=pre2.executeUpdate();
 int updateInt=pre.executeUpdate();
 System.out.println(updateInt+insertInt);
 pre.close();
 connection.close();
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

展开问题
码农之家
精选回答3:Java数据库基础视频,并发事务

24小时38分钟前回答

并发事务引起的问题

1.更新丢失(Lost Update)

两个事务都同时更新一行数据,但是第二个事务却中途失败退出,导致对数据的两个修改都失效了。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来。

2.脏读(Dirty Read)

又称无效数据读出。一个事务读取另外一个事务还没有提交的数据叫脏读。

例如:事务T1修改了一行数据,但是还没有提交,这时候事务T2读取了被事务T1修改后的数据,之后事务T1因为某种原因Rollback了,那么事务T2读取的数据就是脏的。

3.不可重复读(Non-Repeatable Read)

是指在一个事务中两次读同一行数据,可是这两次读到的数据不一样。

例如:事务T1读取某一数据,事务T2读取并修改了该数据,T1为了对读取值进行检验而再次读取该数据,便得到了不同的结果。

4.幻读

事务在操作过程中进行两次查询,第二次查询的结果包含了第一次查询中未出现的数据或者缺少了第一次查询中出现的数据

例如:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样。这就叫幻读。

不可重复读重点在于update和delete,而幻读的重点在于insert。所以说不可重复读和幻读最大的区别,就在于如何通过锁机制来解决他们产生的问题。

以上就是码农之家java培训机构的小编针对“Java数据库基础视频,并发事务”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

展开问题
码农之家
精选回答4:Java常见面试题&mdash;数据库索引详解

5小时35分钟前回答

索引在mysql中也叫做键(key),是存储引擎用于快速找到记录的一种数据结构。

索引的作用:加速查询操作;副作用:降低写操作性能;

索引常见的两种数据结构类型:

1.B-Tree索引

它就是传统意义上的索引,它是最常用、最有效的索引。

2.哈希索引

哈希索引是一种自适应的索引,数据库会根据表的使用情况自动生成哈希索引,我们人为是没办法干预的。

B-Tree索引

大多数mysql引擎都支持这种索引;

1.B-Tree通常意味着所有的值都是按顺序存储的,

2.并且每一个叶子页到根的距离相同;

B-Tree(M=4)

B-Tree(M=4,依次插入1~6)


存储引擎不需要进行全表扫描来获取需要的数据,取而代之是从索引的根节点开始进行搜索;

适用于:

全键值查找(全值匹配)

键值范围(若是有多列的合并索引,需要精确匹配某一列并范围匹配另一列)

键前缀查找

按顺序查找(orderby)

限制:

如果不是按照索引的最左列开始查找,则无法使用索引

不能跳过索引中的列

如果查询中有某个列的范围查询,其右边的所有列都无法使用索引优化查询

哈希索引

在mysql中,只有memory引擎显式支持哈希索引;基于哈希表实现,只有精确匹配索引所有列的查询才有效;对于每一行数据,存储引擎会对所有的索引列计算一个哈希码,不同的键值行计算出的哈希码不一样,哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针;(hash索引结构:hash值:指针)

优势:

查找速度非常快

限制:

无法用于排序

不支持部分索引列匹配查找

只支持等值比较查询

索引优点:

降低需要扫描的数据量,根据索引定位资源,减少IO次数;

可以帮助避免排序操作,因为索引本身就是根据顺序存放的,避免使用临时表;

帮助将随机IO转为顺序IO,提示系统性能;

索引的缺点

第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

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

哪些情况需要加索引?

在经常需要搜索的列上,可以加快搜索的速度;

在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;

在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;

在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;

在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;

在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

以上就是码农之家java培训机构小编分享的“Java常见面试题—数据库索引详解”的内容,希望对大家有帮助,更多java面试题请继续关注码农之家java培训机构官网,每天会精彩内容分享与你。

相关java面试题推荐


2019最新最全java面试题及答案:http://www.xz577.com/tutorial_baseinterviewquestions/

Java常见面试题汇总:http://www.xz577.com/javazixun/1007.html

2019最新java面试题含答案(基础篇):http://www.xz577.com/javazixun/1145.html

各大互联网公司Java面试题汇总:http://www.xz577.com/javazixun/1867.html

2019最新Java常见面试题(附带答案):http://www.xz577.com/javazixun/891.html

常被问到的Java面试题(带全部答案):http://www.xz577.com/javazixun/886.html

展开问题

参考资料

  • JAVA核心技术卷2:高级特征(第8版)

    JAVA核心技术卷2:高级特征(第8版)

    中文名:JAVA核心技术卷2:高级特征(原书第8版) 作者: 发行时间:2008年12月01日 : 《JAVA核心技术卷2:高级特征》是Java技术权威指南,全面覆盖Java技术的高级主题,包括流与文件、XML、网络、数据库编程、高级Swing、高级AWT、JavaBean构件、安全、分布式对象、脚本、编译与注解处理等,同时涉及本地化、国际化以及JavaSE6的内容。《JAVA核心技术卷Ⅱ:高级特征》对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解

    大小:57.40MBJava

    立即下载
  • Java性能调优指南

    Java性能调优指南

    《Java性能调优指南》主要展示了如何在当今先进的多核硬件和复杂的操作系统环境下,系统且主动地提高Java性能,非常具有实用价值,需要的朋友可以参考下

    大小:42.6MBJava

    立即下载
  • Java网络编程(第四版)

    Java网络编程(第四版)

    内容简介 《Java网络编程(第四版)》实用指南全面介绍了如何使用Java开发网络程序。你将学习如何使用Java的网络类库既快速又轻松地完成常见的网络编程任务,如编写多线程服务器、加密通信、广播到本地网络,以及向服务器端程序提交数据。作者提供了真正可实用的程序来讲解他介绍的方法和类。第4版经过全面修订,已经涵盖REST、SPDY、异步I/O和很多其他高级技术。本书主要内容有:研究Internet底层协议,如TCP/IP和UDP/IP;了解Java的核心I/O API如何处

    大小:95 MBJava编程

    立即下载
  • 廖雪峰Java快速入门教程

    廖雪峰Java快速入门教程

    Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如Python、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。而Java是将代码编译成一种ldquo;字节码rdquo;,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了ldquo;一次编

    大小:12 MBJava

    立即下载
  • Java Web轻量级开发面试教程

    Java Web轻量级开发面试教程

    本书围绕软件公司对高级程序员的平均标准要求,构建了Java Web方面的高级程序员的进阶体系,以及在面试时如何高效地介绍自己项目经验的方法,适合想从事软件行业的在校学生、正在找工作

    大小:49.5 MBJava

    立即下载
  • 精通JavaScript

    精通JavaScript

    精通JavaScript(第2版) 是iQuery之父的经典之作,是深入学习JavaScript技术的绝佳教材,涵盖了可重用代码、文档对象模型、Ajax、Web生产工具、AngularJS等内容。作者讲解了JavaScript的发展现状、实用技

    大小:33.5 MBJavaScript

    立即下载
  • 软件设计:Java语言实践

    软件设计:Java语言实践

    《 软件设计:Java语言实践 》提供了关于软件设计深入的介绍,重点关注面向对象的设计,并使用Java编程语言。目的是通过发掘设计过程中的经验来帮助读者学习软件设计。使用这样一种叙述方式:在上下文中介绍设计知识的每一个元素,并探索不同的解决方案,同时辅以数百个代码片段和设计图。 目录 第1章 绪论1 1.1 定义软件设计3 1.2 软件开发过程中的设计5 1.3 获取设计知识6 1.4 共享设计技术8 1.4.1 设计模式8 1.4.2 设计反模式10 小结10 延伸阅读11 第

    大小:78 MBJava

    立即下载

更多回答

23小时18分钟前回答

Java数据库连接池之DBCP浅析_动力节点Java学院整理

一. 为何要使用数据库连接池 假设网站一天有很大的访问量,数据库服务器就需要为每次连接创建一次数据库连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正式针对这个问题提出来的. 数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中, 这……

40小时30分钟前回答

Java开发数据库教程,需要掌握的系统知识

1.主要针对SQL92标准。 2.现在使用存储过程、函数、触发器、视图的已经比较少,可稍作了解。 3.需要对索引详细了解,而每个数据库都会有些差别。编写SQL时需要注意使用索引。 4.开发人员需要对Mysql、Oracle、SqlServer这三个常用的熟悉了解。 5.在数据量比较大或者请求数比较高的情况下,需要了解一些特定数据库针对性优化。 SQL相关 入门 熟悉表、字段、记录、索引等概念。 熟悉SQL的约束,非空、默认值、唯一值等约束。熟悉主键、外键、检查约束等。 熟悉数据类型,文本,数字,日期/时间,二进制等。 熟练使用数据操作语言(DML),SELECT、UPDATE、DELETE、INSERTINTO等语句,这些数据操作语法,在多数功……

45小时13分钟前回答

Java的idea连接mongodb数据库的详细教程

最近有一个java实验,要求用java使用数据库,于是本人新手小白,在idea上卡了好半天 希望看到这个博客的人能解决问题,跳过一些坑 首先,我这里用的是 mongodb 数据库(ps:node.js下mongo太好用了,就没有mysql) 1,用idea创建一个maven工程 由于不牵扯太多功能,直接 next 就行了, 很无奈,创建完就直接报错了 找不到 maven 相关的插件 Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1stackoverflow 这里我查了好多博客,基本把下面三个路径设为一样就行了,然而我怎么试都没用 然后就看到一个大神的博客,附上大神的博客连接:https://www.jianshu.com/p/6eefbaa79c99 解决方案是这样的:在pom.xml 文件的project标签下……

17小时51分钟前回答

Java数据库视频教程下载, MySQL如何建立索引

众所周知,在MySQL数据库中,索引是存储引擎层实现的,它也是可以迅速找出记录的一种数据结构,以牺牲空间的方式来换取时间。那么MySQL数据库如何建立索引?有哪些技巧呢?本文将从创建索引的原因、原则和技巧三方面进行分析,为大家解决上述疑问。 一、为什么要创建索引呢? 1、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 2、可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 3、可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 4、在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 5、通过使……