数据库SQL的基础知识及java连接数据库的基本操作过程

数据库SQL的基础知识

【补充数据库基本知识点】

数据库是按照一定的数据结构来组织、存储和管理数据的仓库

数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库

1、数据库表的完整性约束:域约束(表中字段取值范围)、主码约束(主键,唯一确定一条记录)、外码约束(表中一个字段,确实另外一张表的主码)

用SQL语句生成外键:

//为foods表的CategoryId字段生成外键fk_Foods_Category

alter table foods add constraint fk_Foods_Category  foreign key(CategoryId)  references Category(id);

####-----增加外键的方法------#####

#######alter table 需加外键的表 add constraint 外键名 foreign key(需加外键表的字段名) referencnes 关联表名(关联字段名);#####

2、SQL语句补充

在描述SQL有关语句格式时,常常用到一些符号

[ ] :表示可选项,即方括号中内容可以根据需要进行选择

{ } :表示必选项

<> :表示尖括号中的内容是用户必须要提供的参数

| : 表示有多个选项时只能选择一项,多个选项之间用 ‘ | ’隔开

[ , …n] : 表示前面的项可重复n次,相互之间用‘ ,’隔开

A、 创建数据库的SQL命令

CREATE DATABASE<数据库名>

Eg: CREATE DATABASE Student;//创建Student数据库

B、 表的操作

(1)sql语句创建表

CREATE TABLE<表名>(<字段名><数据类型>[<字段完整性约束>],<字段名><数据类型>[<字段完整性约束>]…,<字段名><数据类型>[<字段完整性约束>]);

 Eg:CREATE TABLE Students(sno CHAR(9) NOT NULL PRIMARY KEY,

sName CHAR(12) NOT NULL , sex CHAR(2) , age INT);

 (2) 删除表

          DROP TABLE<表名>

(3)修改表结构

         ALTER TABLE<表名>[ALTER COLUMN <字段名><数据类型>] |

ADD COLUMN 子句—增加新字段及相应的完整性约束条件

DROP COLUMN 子句 –删除表中字段

DROP CONSTRAINT 子句—删除完整性约束

Eg:

ALTER TABLE Student ADD COLUMN phone CHAR(11);

 

C、 表数据操作

(1)    插入数据:

INSERT INTO<表名>[(<字段名>[,<字段名>]…)] VALUES(<值>[,<值>]…)

Eg:

Insert into Student(sNO,sName,sex,age) values(‘201201009’,’隔壁老王’,‘男’,18);

 

(2)    修改数据

UPDATE <表名> SET <字段名>=<表达式>[,<字段名>==<表达式>[WHERE <条件>];

Eg:update Student set age=20 where sNO=‘201201009’;

 

(3)    删除数据

DELETE FROM <表名>[WHERE <条件>]

Eg:delete from Student where sNo=’201201009’;

 

(4)   查询数据

    

     SELECT [ALL | DISTICT][TOP n [PERCENT]]{ * | {<字段名>|<表达式>|}

[[AS <别名>]|<字段名>[[AS] <别名>]][ , …n]}

FROM <表名>[WHERE <查询条件表达式>]

[GROUP BY <字段名>[HAVING<分组条件>]]

[ORDER BY <次序表达式>[ASC | DESC]];

 

参数说明:

ALL—显示结果集中的所有数据,包括重复行,ALL是默认设置

DISTINCT—显示结果集中不重复的所有行

GROUP BY 子句—按照<字段名>进行分组,该字段值相同的分为一个组,分组后每组只显示一个结果;如果GROUP BY子句带HAVING 子句,则只有满足HAVING指定条件的组才会输出,有过GROUP BY 有多个字段名,则按照第一个字段分组,再按照第二个字段分组,以此类推

HAVING 子句---分组条件与WHERE 子句中的条件格式类似

ORDER By 子句---只有两个结果一个是ASC升序(系统默认),一个DESC降序;ORDER BY子句需要放到查询语句的最后

 

A、 简单查询

Eg:Select sNO as 学号,sName as 姓名 from Student where age betwwen 18 and 20 ;

将年龄在18到20及之间满足条件的结果返回

【注】v1 betwwen v2 and V3 相当于v1>=v2 and v1<=v3

      v1 not betwwen v2 and V3 相当于v1<v2 and v1>v3

 


Where 常用的运算符及功能


 运  算  符


功  能


=、>、<、>=、<=、!=、<>


比较范围


betwwen and、not betwwen and


在某个范围之间(包含两端)


In 、not in


数据在某一个集合


Like 、not like


字符模糊匹配


Is null、is not null


判断空值


and、or、not


逻辑运算(与或非)

 

B、 多重条件查询

Eg:select * from Student where dep=’计算机’ and sex=‘男’;

C、 模糊查询

<字段名>[not] like <匹配串>


模糊查询时<匹配串>中可以含有的通配符


通配符


功能


实例


%


代表0个或多个字符


‘ab%‘ 表示’ab’后可接任意字符串


_(下划线)


代表一个字符


‘a_b’表示‘a’与‘b‘之间可为任意单个字符


 [ ]


代表在某一范围的字符


[0-9]表示0~9之间的字符


[^ ]


表示不在某一范围的字符


[^0-9]表示不在0~9之间的字符

 

Eg:select * from student where sName Like ’李%’;

D、  常用的统计函数汇总查询


常用的统计函数及功能


函  数  名


功  能 


AVG(<字段名>)


求字段名所在列的平均值(必须是数值型)


SUM(<字段名>)


求字段名所在列的总和(必须是数值型)


MAX(<字段名>)


求字段名所在列的最大值


MIN(<字段名>)


求字段名所在列的最小值


COUNT(*)


统计个数


COUNT([DISTINCT])<字段名>


统计不重复列的个数

Eg:select AVG(grade) as 平均成绩 from score;

E、 OEDER BY 子句

Eg:select sNo,grade from Score where cNo=‘c001‘ ORDER BY grade DESC;

F、 分组数据

GROUP BY子句可以按照关键字段的值来组织数据,关键字段相同的为一组,一般情况之下可以根据表中的某一个字段进行分组,并且要求使用统计函数,这样每一个分组就只有一个记录

Eg:

Select cNO,COUNT(*) as 人数 from Score GROUP BY cNO;

java连接数据库的基本操作过程

1、 JDBC是java程序中访问数据库的标准API,jdbc给java程序员提供访问和操纵众多关系数据库的一个统一的接口。

2、 JDBC的分类:

SQL Server JDBC、MySQL JDBC、Oracle JDBC、JDBC-ODBC(连接ACCESS)

3、 JDBC中主要的类与接口(有颜色的代表接口)


JDBC中主要的类与接口


类与接口


功    能    说   明


DriverManager


负责加载各种不同的驱动程序,根据不同的请求返回相应的


SQLException


代表数据库连接的建立、关闭或SQL语句的执行过程中发生的异常


Connection


数据库连接,负责与数据库间通讯


Statement


用以执行不含参数的静态SQL查询和更新,并返回执行结果


PreparedStatement


用以执行包含参数的动态SQL查询和更新


CallableStatement


用以获得数据库的存储过程


ResultSet


获得SQL查询结果

【注】使用JDBC访问数据库的基本步骤为:加载驱动程序、建立与数据库的连接、创建执行方式语句、执行SQL语句、处理返回结果和关闭创建的各种对象。

4、 建立与数据库的连接

(1)     加载JDBC驱动程序:利用Class.forName(JDBCDriverClass);

forName()是Class的静态方法,参数JDBCDriverClass是要加载的JDBC驱动程序类的名称,它是以字符串形式表达的类长名。


数据库的常用驱动程序类


数据库


驱动程序类


Access


sun.jdbc.odbc.JdbcOdbcDriver


SQL Server


com.microsoft.sqlserver.jdbc.SQLServerDriver


MySQL


com.mysql.jdbc.Driver


Oracle


oracle.jdbc.driver.OracleDriver

Eg:

Class.froName(“com.mysql.jsbd.Driver”);//加载MySQL数据库驱动

【注】创建数据库连接时Driver Manager类的常用方法

Public static Connection getConnection(String url,String user,String password);

url为链接数据库的url连接,用户名和密码为登录数据库的用户名和密码

DriverManager类的getConnection()是实现建立JDBC驱动程序到数据库连接的方法一般格式如下:

Connection conn=DriverManager.getConnection(url,user,password);


JDBC的URL


数据库


URL模式


Access


jdbc:odbc:dataSource


SQL Server


jdbc:sqlserver://hostname:port#;DatabaseName=dbname


MySQL


jdbc:mysql://hostname:3306/dbname


Oracle


jdbc:oracle:thin:@hostname:port#:oracleDBSID

例如连接MySQL数据库的操作:

Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/Student”,”root”,”123456”);

简单操作数据库的实例代码

package com.database;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class dataBaseConnection {

//要加载的驱动类型

private static String driver="com.mysql.jdbc.Driver";

//连接数据库的URl

private static String url="jdbc:mysql://localhost:3306/foods";

//登录数据库的用户名

private static String user="root";

//登录数据库的密码

private static String password="root";

public static void main(String[] args) {

Connection conn=null;

Statement stm=null;

ResultSet  rs=null;

String selectsql ="select * from foods where CategoryId=1";

try {

//加载驱动,同时需要在项目中add libraries连接驱动程序mysql-connector-java-5.1.26-bin.jar

Class.forName(driver);

//创建数据库连接

//conn=DriverManager.getConnection(url);这是错误方式,数据库登录用户名和密码没有添加

conn=DriverManager.getConnection(url,user,password);

//利用连接对象conn创建Statement接口对象,类似于游标的作用

stm=conn.createStatement();

//将sql语句作为参数传递给Statement的查询方法

rs=stm.executeQuery(selectsql);

//遍历查询结果集中的元素

while(rs.next()){

//利用集合中的getXXX(Colum)方法获得数据库表中Colum的内容

int foodsId=rs.getInt("FoodsId");

int CategoryId=rs.getInt("CategoryId");

String ChineseName=rs.getString("ChineseName");

String English=rs.getString("English");

String Description=rs.getString("Discription");

System.out.println(foodsId+" "+CategoryId+" "+ChineseName+" "+English+" "+Description);

}

} catch (Exception e) {

e.printStackTrace();

}finally{

try {

//关闭结果集对象

if(rs!=null) rs.close();

//关闭Statement对象

if(stm!=null) stm.close();

//关闭JDBC与数据库的连接对象

if(conn!=null) conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

原文地址:https://www.cnblogs.com/xaio-lis/p/10745395.html

时间: 2024-08-08 09:42:11

数据库SQL的基础知识及java连接数据库的基本操作过程的相关文章

SQL Server基础知识

查看sql server版本 select @@VERSION 基本操作 use tty; 使用tty数据库 create table tt(name varchar(10)); 新建表tt insert into tt values('ftp'); 插入数据ftp select * from tt; 查看表tt delete from tt; 删除表表tt中的一条记录 运行命令的快捷方式: Alt+x 重启数据库服务 net restart mssqlserver 修改用户密码 企业管理器——

SQL server基础知识(表操作、数据约束、多表链接查询)

SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database 数据库名称 查询:select name from master..sysdatabases 修改:alter database 数据库名称(在 sql server 中修改与数据库关联的文件和文件组.在数据库中添加或删除文件和文件组.更改数据库或其文件和文件组的属性) (3).管理表 选择数据库:use 数

SQL Server2005基础知识(created by one friend)

1 -- 创建表book的Transact-SQL语句: 2 create database test01 3 create table test01.dbo.book( 4 book_id nchar(6) not null, 5 book_name nchar(30) null, 6 price numeric(10,2) null, 7 constraint PK_book primary key clustered(book_id asc)--建立主键 8 )on [primary] 9

java基础知识《JAVA 核心技术》学习笔记(一)

一:数据类型 (1)java整形: 类型                         存储要求 int                              4字节 short                          2字节 long                           8字节 byte                           1字节 (2)浮点类型 类型                         储存要求 float            

sql sever 基础知识及详细笔记

第六章:程序数据集散地:数据库 6.1:当今最常用的数据库 sql  server:是微软公司的产品 oracle:是甲骨文公司的产品 DB2:数据核心又称DB2通用服务器 Mysql:是一种开发源代码的关系型数据库管理系统 6.2:数据库的基本概念 6.2.1:实体和记录 实体:就是客观存在的事物 记录:每一行对应的实体,在数据库中,通常叫做记录 6.2.2:数据库和数据库表 数据表:不同类型组织在一起,形成了数据库表,也可以说表示实体的集合,用来存储数据. 数据库:并不是简单地存储这些实体的

SQL SERVER 基础知识及语法总结,从头说起,一点一滴 (一)

什么是SQL? SQL指结构化查询语言 SQL使我们有能力访问数据库 SQL是一种ANSI的标准计算机语言 在SQL的使用上,或多或少也有许多知识点,在这里总结一下关于SQL的基本语法以及一些基础知识点 前      言 首先来谈谈对数据库以及服务器的一些愚见吧! 项目按照类型分大致可以划分为C/S以及B/S方式,前者是客户端/服务器的方式,后者是网页浏览器/服务器的方式,无论哪一种方式都是由前端客户端发送请求数据包给服务器上的应用服务器对数据库进行处理再返回处理结果而实现的,在后台的数据库按照

Java并发(基础知识)—— Java中断机制

上文讲解了Java线程的创建.启动以及停止,在讲到停止线程时说到了Java中断,Java中断是停止线程的一种协作机制,本文打算对Java中断机制进行详细讲解. 在网上搜索Java中断机制,发现两篇好文章,分别如下:Java 理论与实践: 处理 InterruptedException 以及 详细分析Java中断机制,推荐大家仔细阅读. 中断是一种协作机制 必须记住,中断是一种协作机制.当一个线程中断另一个线程时,被中断的线程不一定要立即停止正在做的事情.相反,中断是礼貌地请求另一个线程在它愿意并

数据库的一些基础知识

四个基础语法   1. insert into 表名 (列名) values  (值列表)      insert into 表名 values (值列表) [扩展]插入多行: 1. insert into <表名> (列名) select 列名 from <源表名> 2. select 列名 into <表名> from <源表名>           [注]创建表,复制列名的结构及数据到新表中,但是,这个SQL语句只能使用一次 3. insert int

Java基础知识:Java知识简介

一.java基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等: 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以有很多方法.逻辑运算.数据修改以及所有动作都是在方法中完成的. 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定. 编写J