web学习小结之sql语句与JDBC

web学习总结之sql语句与JDBC

一、mysql基本语句

这里主要是对sql基本语句的一个复习总结,不过还是首先比较一下几种常见的数据库:

SQL ServerDB2Oracle主要应用于大型应用系统,也就是企业级的应用开发,他们对于大数据量的存取、安全性等各方面有着独到的优势,但相对来说,这些数据库都属于中大型软件,对系统的要求比较高,费用方面也比较昂贵;AccessMySql这类数据库则属于轻量级,他们不需要很高的系统硬件配置,而且部署比较方便,但是他们的缺点是只能进行一些小数据量的存取,而且安全性不高。所以对于初学者的我们,目前多数选择方便快速的mysql数据库来学习, Sql语句主要可以分为以下三类,每一大类下列出了其中主要的sql语句。

1、  DMLData Manipulation Language,数据操作语言)——用于检索或者修改数据;

SELECT - 从数据库表中获取数据

UPDATE - 更新数据库表中的数据

DELETE - 从数据库表中删除数据

INSERT INTO - 向数据库表中插入数据

2DDLData Definition Language,数据定义语言)——用于定义数据的结构,如创建、修改或者删除数据库对象;

CREATE DATABASE - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

3、  DCLData Control Language,数据控制语言)——用于定义数据库用户的权限。

 

 

了解了sql语句的基本分类后就是掌握其基本的语法结构,以下是学习过程中应用到的一些增删查改以及查询数据的操作语句:

 

创建数据库

Create database lesson1;

创建表

create table userinfo(

 id int not null auto_increment,

 name varchar(20) not null,

 pwd varchar(20),

 age int ,

 primary key(id));

 

create table bloginfo(

 id int not null auto_increment primary key,

 id_user int not null,

title varchar(20));

指定数据库/表的编码

Create database mysql defaule character set utf8;

增加表字段

 alter table userinfo add city varchar(20);

删除表字段

alter table userinfo drop column city;

创建主键(主键的作用及意义,将字段设为主键会出现的问题)

alter table userinfo add primary key(id);

创建外键(外键的作用->业务实体中的一对多,一对一,多对多)

Alter table bloginfo add constraint fk_bloginfo_uid foreign key fk_bloginfo_uid(id_user)

References userinfo(id);

唯一性约束

Alter table userinfo add unique index index_unique using hash(name);

插入一行完整的数据

Insert into userinfo(name,pwd,age)values(‘a’,’123’,20);

插入一行中的部分数据

Insert into userinfo(name,pwd)values(‘b’,’123’);

插入一个查询结果

Insert into userinfo(name,pwd,age)select name,pwd,age from test;

按条件更新记录

Update userinfo set name=’abc’ where id=1;

删除记录

Delete from userinfo where id=1;

清空表(truncate table user)

Truncate table userinfo;

开启事务

start transaction;

提交事务

commit;

回滚事务

rollback;

简单查询

Select * from userinfo;

查询排序

Select * from userinfo order by id desc;

按条件查询

Select * from userinfo where age=20;

非空查询

Select * from userinfo where age is not null;

In查询

Select * from userinfo where age in(21,23);

模糊查询

Select * from userinfo where name like’%et_’;

and/or 查询

select * from userinfo where age>10 and age<21 or name = ‘a’;

别名

Select u.id,u.name as ‘别名’ from userinfo u;

聚集查询(count,sum,avg,max,min,distinct)

Select avg(age) from userinfo;

Select count(*) from userinfo;

Select sum(age) as num from userinfo;

Select max(age) from userinfo;

Select min(age) from userinfo;

Select count(distinct(age)) from userinfo;

分组查询

Select count(*) as ct,id_user from bloginfo group by ct desc;

子查询

Select * from bloginfo where id_user in (

Select id from userinfo where age=32);

外连结查询

Select u.id,u.name,b.title from bloginfo b rifht join userinfo u on u.id = b.id_user;

数据库的导入与导出

mysqldump -u root -p student_manager>c:\lesson1.sql

source c:lesson1.sql;

 

二、JDBC简介:

在数据库的学习之后,需要考虑的问题就出现了,如何在java程序中操作数据库,多种不同的数据库是否操作方式也不同呢,那又有没有简单的方式来帮我们解决这些问题呢?JDBC就帮我们解决这些问题,JDBCJava Database ConnectivityJava数据库连接),提供了一种与平台无关的,用于执行SQL语句的标准Java API,可以方便的实现多种数据库的统一操作,它由一组用Java语言编写的类和接口组成。

在实际开发中可以直接使用JDBC进行各个数据库的连接与操作,而且可以方便的向数据库中发送各种SQL命令。在JDBC中提供的是一套标准的接口,这样,各个支持JAVA的数据库生产商只要按照此接口提供相应的实现,则就都可以使用JDBC进行操作。极大的体现了JAVA的可移植性的设计思想。

    JDBC操作的基本步骤如下:

1、加载数据库驱动程序:各个数据库都会提供JDBC的驱动程序开发包,直接把JDBC操作所需要的开发包,直接配置到classpath路径即可。在程序中的加载语句以mysql为例:

// 装载对应数据库的驱动类

                 Class.forName("com.mysql.jdbc.Driver ");

2、连接数据库:根据各个数据库的不同,连接的地址也不同,这里使用的是mysql数据库,连结是先制定数据库的URL

//数据库连结串

 String dbURL=" jdbc:mysql://localhost:3306/lesson1";

其中lesson1是所要操作的库名,用户在取得连接之后才可以对数据库进行查询或更新的操作。

取得连结对象:

// 创建连结,传入连结串,帐号,密码

Connection conn =DriverManager.getConnection(dbURL, "root","netjava");

 

 

 

3、使用语句进行数据库操作:数据库操作分为更新和查询两种操作,除了可以使用标准的SQL语句之外,对于各个数据库也可以使用其自己提供的各种命令。

4、关闭数据库连接:数据库操作完毕之后需要关闭连接以释放资源。

 

连接好后对数据库的操作中就可以用到很多Connection 接口的方法如预编译PreparedStatement ,事务管理,批处理等等,也是之后有待熟悉的地方。