:SQL数据库
一、SQL概念
SQL(structure query language)语言,是数据库结构化查询语言,也是数据库的核心语言;自1974年开始,最后由美国的ANSI组织宣布了SQL作为数据库工业标准;sql优势:功能性强,高效性,简单易维护;
二、SQL的分类
SQL分为4大类:
- 数据查询语言:DQL
数据查询语言基本结构由select子句,
From字句,where子句组成的查询块;
SELECT<字段名表>
FROM<表或视图名>
WHERE<条件>
- 数据操纵语言:DML
数据操纵语言DML主要有三种形式:
- 插入:INSERT
- 更新:UPDATE
- 删除:DELETE
- 数据定义语言:DDL
数据库定义语言DDL用来创建数据库中的各种对象:
表或视图或同义词或聚簇
Create table/view/index/syn/cluster
- 数据控制语言:DCL
数据控制语言DCL用来授权或回收数据库的某种特权,并控制数据库操作事物事物发生的时间和效果,对数据库进行某种监控(监视).
1:GRANT:授权
2:ROOLBACK[WORK] TO [SAVEPOINT]:回退到某个点
回滚–ROOLBACK
回滚命令使数据库状态回到上次最后提交的状态,
其格式为:SQL>ROOLBACK
3:COMMIT[WORK]:提交
3.1:显示提交
SQL->COMMIT
3.2:隐式提交(了解)
部分SQL是自带隐式提交:
ALTER,EXIT,CREATE,QUIT…
3.3:自动提交
把数据库的AUTOCOMMIT设置为ON,
则数据库操纵(插入以及修改和删除语句执行后,系统
将自动进行提交,格式为:
SQL->SET AUTOCOMMIT->ON
三、JDBC的应用
实例:
public class Demo01 {
public static void main(String[] args) {
//1:加载JDBC(java数据库链接)驱动
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("jdbc加载成功");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
* 2:创建数据库的连接
*/
/*
* url:mysql的主机地址+端口号等信息
* 示例:jdbc:mysql://localhost:3306/db2
* jdbc:mysql是mysql的主机地址
* 3306是mysql的端口
* db2是数据库
* username:登录的用户名
* password:登录的密码
*/
String url = "jdbc:mysql://localhost:3306/db2?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
String user = "root";
String password = "root";
Connection con = null;
try {
con = DriverManager.getConnection(url,user,password);
System.out.println("连接数据库成功");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("连接数据库失败");
}
/*
* jdbc:mysql://localhost:3306/db2
* ?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
* serverTimezone=GMT%2B8是GMT时间+8
*
*/
/*
* 3:创建处理器
*/
Statement stat = null;//外面定义stat为null
try {
//里面重新给stat赋值
stat = con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
* 4:准备sql
*
*/
String sql = "insert into staff values("+"1"+",'甘赵辉'"+")";
String sql2 = "select * from testjdbc";
/*
* 5:执行sql
*/
try {
boolean flag = stat.execute(sql);
boolean flag2 = stat.execute(sql2);
System.out.println(flag);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
* 6:释放资源
*/
try {
stat.close();//关闭传输器
con.close();//关闭连接
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}