初识SQL与JDBC编程
近期开始了web阶段的学习,首先要学习的就是关于数据库的知识。数据库对于我来说算是既熟悉又陌生。熟悉的是数据库应该是每一个程序员所必修的内容,陌生的是读了两年的大学还没有真正的全面的学过数据库。
数据库的基础与核心就是SQL语句,无论是何种数据库---oracle、MySQL、SQLServer或者是DB2,他们内在都是遵循着SQL的标准的,所以掌握SQL的标准然后再稍加学习基本就能掌握市面上所有的数据库。由于MySQL是个开源的数据库,有着强大的功能和免费的特性,所以我的学习是从MySQL开始的。
几乎所有已学完或正在学数据库的程序员都是从“增删改查”这四字箴言和命令行这个坑爹的环境开始学习的。经过了一天的学习,我也整理了一些平常十分常用的SQL语句。
创建数据库: create database 库名;
创建表: use 库名; create table 表名;
指定数据库/表的编码: create database 库名 default character set utf8/gbk/...(字符集名);
增加表字段: alter table 表名, add 元素名 varchar(20)/int;
删除表字段: alter table 表名, drop column 元素名;
创建主键: alter table 表名 add primary key(‘id’);
创建外键: alter table 表2名 add constraint 外键名 foreign key 外键名(表2元素名) references 表1名(表1元素名) on delete cascade on update cascade;
插入一行完整的数据: insert into 表名(元素1, 元素2, ... ,元素n) values(值1,值2, ... ,值n);
插入一行中的部分数据: insert into 表名(元素1, 元素2) values(值1, 值2);
插入一个查询结果: insert into 被插入的表名(元素1, 元素2) select 元素1, 元素2 from 插入的表名;
按条件更新记录: update 表名 set 更新的元素名=’新值’ where 条件;
删除记录: delete from 表名 where 条件;
清空表: truncate table 表名;
开启事务: start transaction;
提交事务: commit;
回滚事务: rollback;
简单查询: select 条件1, 条件2 from 表名;
查询排序: select 条件1, 条件2 from 表名 order by 条件 升/降;
按条件查询
非空查询: select * from 表名 where 元素 is not null;
In查询: select * from 表名 where 元素 in(值1, 值2, 值3);
模糊查询: select * from 表名 where 元素 like ‘%_<字符串>’;
and/or 查询: select * from 表名 where 条件1 and/or 条件2;
别名: select 元素 as 别名 from 表名
JDBC是Java的一种规范,它给用户提供了一个可以与数据库连接的接口。我们如果要使用JDBC连接数据库,第一步是要在工程中放入一个MySQL的驱动,这样就可以使用里面的API函数。然后则是要加载该驱动,并且建立连接。具体代码是:
/**
* 装载驱动并且获取数据库连接
* @return: 返回该连接
* @throws Exception
*/
public Connection getConn() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/wlf";
//用户名密码
String user = "root";
String pwd = "netjava";
Connection conn = DriverManager.getConnection(url , user , pwd);
System.out.println(conn);
return conn;
}
初始工作都做完后就可以开始使用Java代码来书写SQL语句了,书写的时候有一个很重要的类,那就是Statement类或者PreparedStatement类,这两个类可以执行SQL语句,其中PreparedStatement类可以对SQL语句进行预处理,可以用?来做占位符。使得录入数据更加的方便。