数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第1页
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第2页
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第3页
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第4页
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库1 常见数据库1.1 MySql : 甲骨文1.2 Oracle: 甲骨文1.3 SQL Server: 微软1.4 Sybase: 赛尔斯1.5 DB2: IBM2 MySql 基础知识2.1 关系结构数据模型数据库2.2 SQL( Structured Query Language )结构化查询语言2.2.1 DDL(Data Definition Language): 数据定义语言,用 来定义数据库对象:库、表、列等操作数据库CREATE DATABASE IF NOT EXISTSmydb1USE mydb1DROP DATABASE IF NOT EXISTS mydb1ALT

2、ER DATABASE mydb1 CHARACTER SET utf8操作表插入表CREATE TABLE stu( sid CHAR(6), sname VARCHAR(20), age INT, gender VARCHAR(10) );更改表ALTER TABLE t_user ADD (student varcher(20)ALTER TABLE t_user MODIFY gender CHAR(20)ALTER TABLE t_user CHANGE gender VARCHER(20)ALTER TABLE t_user REMANE genderTO gendersALTER

3、 TABLE t_user DROP gender删除表DROP TABLE t_user222 DML( Data Manipulation Language):数据操作语言, 用来定义数据库记录(数据)插入数据INSERT INTO t_user VALUES()INSERT INTO 表名 VALUES值 1,值 2,)更新数据UPDATE t_user SET name=UPDATE表名SET列名仁值1,列名门=值n WHERE条件删除数据虽然TRUNCAT和 DELETE都可以删除表的所有记录, 但有原理不同。DELETE的效率没有 TRUNCATE 高!TRUNCAT其实属性 DD

4、L语句,因为它是先 DROP TABLE再 CREATE TABLE而且 TRUNCAT删除 的记录是无法回滚的,但DELETE删除的记录是可以回滚的(回滚是事务的知识!)。DELETE FROM t_userDELETE FRO表名WHERE 条件TRUNCATE TABLE stu;TRUNCATE TABL表 名2.2.3 DCL( Data Control Language ):数据控制语言,用来 定义访问权限和安全级别创建用户CREATE USE用户名 地址 IDENTIFIED BY 密码;给用户授权GRANT权限1,权限n ON数据库.* TO用户名查看用户权限SHOW GRAN

5、TS F户名撤销用户权限REVOK权限1,,权限n ON数据库.* FORM用户名删除用户DROP USE用 户名修改用户名密码UPDATE USER SET PASSWORD=PASSWORD(1234) WHERE User=user2 and Host= localhost ; FLUSH PRIVILEGES;2.2.4 DQL( Data Query Language ):数据查询语言,用来查 询记录(数据)基础查询SELECT selection_list /*要查询的列名称 */FROM table_list /* 要查询的表名称 */WHERE condition /* 行条件

6、 */GROUP BY grouping_columns /* 对结果分组 */HAVING condition /* 分组后的行条件 */ORDER BY sorting_columns /* 对结果分组 */LIMIT offset_start, row_count /*结果限定 */模糊查询SELECT * FROM t_user WHERE name LIKE聚合函数COUNT(); MAX();MIN();AVG();SUM();多表查询连接查询内连接SELECT * FROM department d INNER JOIN employee e ON d.deptno = e.de

7、ptno 左连接SELECT * FROM department d LEFT JOIN employee e ON d.deptno = e.deptno 右连接SELECT * FROM department d RIGHT JOIN employee e ON d.deptno = e.deptno自然连接查询内连接SELECT* FROM department d NATURAL INNER JOIN employee e 左连接SELECT* FROM department d NATURAL LEFT JOIN employee e 右连接SELECT* FROM departme

8、nt d NATURAL RIGHT JOIN employee e2.3 完整性约束 (主外键 )特点非空 唯一被引用语法CREATETABLE stu( sid CHAR(6) PRIMARYKEY, sname VARCHAR(20), age INT, gender VARCHAR(10) );ALTER TABLE stu ADD PRIMARY KEY(sid);CREATETABLEstu( sid CHAR(6), sname VARCHAR(20), PRIMARY KEY(sid) );2.3.2 外键外键必须引用另一张票的主键CREATE TABLE t_section(

9、 sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(30), u_id INT, CONSTRAINT fk_t_user FOREIGN KEY(u_id) REFERENCES t_user(uid) );2.4 多表查询笛卡尔积2.4.2 连接查询内连接、 、 亠方言Select * from emp AS e, dept AS d WHERE emp.deptno= dept.deptnoAS可以省略标准SELECT * FROM emp e INNER JOIN dept d ON e.deptno = d.deptnoINNER 可

10、以省略外连接 左外连接Select * from emp e LEFT OUTER JOIN dept d ON e.deptno = d.deptnoOUTE可以省略右外连接Select * from emp e RIGHT OUTER JOIN dept d ON e.deptno = d.deptnoOUTEI可以省略自然连接SELECT * FIOM emp NATUIAL JOIN dept;SELECT * FROM emp NATURAL LEFT JOIN dept;SELECT * FROM emp NATURAL RIGHT JOIN dept;2.4.3 子查询子查询结果

11、集的形式? 单行单列(用于条件)? 单行多列(用于条件)? 多行单列(用于条件)? 多行多列(用于表)2.5 关系模型 ( 表)2.5.1 一对多 / 多对一2.5.2 多对多2.5.3 一对一3 数据库基础知识3.1.1 JDBC( Java DataBase Connectivity)就是 Java 数据库连接,说白了就是用 Java 语言来操作数据库3.1.2 JDBC核心类(接口)介绍DriverManagerConnectionStatement用于向数据库发送SQL语句l void executeUpdate(String sql) :执行更新操作( insert 、update

12、、 delete 等);l ResultSet executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是 ResultSet ;批处理l void addBatch(String sql):添加一条语句到“批”中;l int executeBatch():执行“批”中所有语句。返回值表示每条语句所影响的行数据;l void clearBatch():清空“批”中的所有语句。PreparedStatementStatement 接口的子接口 优点?防SQL攻击;? 提高代码的可读性、可维护性;? 提高效率!API-给出SQL模板! 调用 Con

13、nection 的 PreparedStatement prepareStatement(String sql模板);调用pstmt的setXxx()系列方法sql模板中的?赋值!调用pstmt的executeUpdate()或executeQuery(),但它的方法都没有参数。批处理pstmt.addBatch()ResultSetrs.next();/ 光标移动到第一行rs.getInt(1);/ 获取第一行第一列的数据3.2 DBUtils3.2.1 DBUtils 是Apache Commons组件中的一员,开源免费,是对JDBC的简单封装构造方法QueryRunner qr = ne

14、w QueryRunner();QueryRunner qr = new QueryRunner(dataSource)增删改查update() :执行 insert 、 update 、 delete ;query() :执行 select 语句public T query(String sql, ResultSetHandler rh, Object params)public T query(Connection con, String sql, ResultSetHandler rh,Object params)batch() :执行批处理3.3 数据库连接池3.3.1 Java 为数

15、据库连接池提供了公共的接口: javax.sql.DataSource ,各个厂商可以让自己的连接池实现 这个接口3.3.2 Tomcat 配置连接池JNDI(Java Naming and Directory Interface),Java 命名和目录接口。 JNDI 的作用就是:在服务器上配置资源,然后通过统一的方 式来获取配置的资源。3.3.3 DBCPDBCP是 Apache提供的一款开源免费的数据库连接池 BasicDataSource3.3.4 C3P0ComboPooledDataSourceC3P0也是开源免费的连接池3.4 Java 中的时间类型3.4.1 java.sql 包 下 的 三 个 时 间 类 型 的 类 都 是 java.util.Date 的子类3.4.2 java.sql.Date java.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论