




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库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 mydb1ALTER 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 TABLE t_user DROP gender删除表DROP TABLE t_user2.2.2 DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)插入数据INSERT INTO t_user VALUES()INSERT INTO 表名 VALUES(值1,值2,)更新数据UPDATE t_user SET name=UPDATE 表名 SET 列名1=值1, 列名n=值n WHERE 条件删除数据虽然TRUNCATE和DELETE都可以删除表的所有记录,但有原理不同。DELETE的效率没有TRUNCATE高!TRUNCATE其实属性DDL语句,因为它是先DROP TABLE,再CREATE TABLE。而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的(回滚是事务的知识!)。 DELETE FROM t_user DELETE FROM 表名 WHERE 条件TRUNCATE TABLE stu; TRUNCATE TABLE 表名2.2.3 DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别创建用户CREATE USER 用户名地址 IDENTIFIED BY 密码;给用户授权GRANT 权限1, , 权限n ON 数据库.* TO 用户名查看用户权限SHOW GRANTS FOR 用户名撤销用户权限REVOKE权限1, , 权限n ON 数据库.* FORM 用户名删除用户DROP USER 用户名修改用户名密码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 /*行条件*/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.deptno左连接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 department d NATURAL RIGHT JOIN employee e2.3 完整性约束(主外键)2.3.1 主键特点非空唯一被引用语法CREATE TABLE stu( sid CHAR(6) PRIMARY KEY, sname VARCHAR(20), age INT, gender VARCHAR(10) );ALTER TABLE stu ADD PRIMARY KEY(sid);CREATE TABLE stu( sid CHAR(6), sname VARCHAR(20), PRIMARY KEY(sid) );2.3.2 外键外键必须引用另一张票的主键CREATE TABLE t_section( 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.1 合并结果集笛卡尔积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 可以省略外连接左外连接Select * from emp e LEFT OUTER JOIN dept d ON e.deptno = d.deptno OUTER可以省略右外连接Select * from emp e RIGHT OUTER JOIN dept d ON e.deptno = d.deptno OUTER可以省略自然连接SELECT * FROM emp NATURAL JOIN dept;SELECT * FROM emp NATURAL LEFT JOIN dept;SELECT * FROM emp NATURAL RIGHT JOIN dept;2.4.3 子查询子查询结果集的形式 单行单列(用于条件) 单行多列(用于条件) 多行单列(用于条件) 多行多列(用于表)2.5 关系模型(表)2.5.1 一对多/多对一2.5.2 多对多2.5.3 一对一3 数据库基础知识3.1 JDBC3.1.1 JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库3.1.2 JDBC核心类(接口)介绍DriverManagerConnectionStatement用于向数据库发送SQL语句l void executeUpdate(String sql):执行更新操作(insert、update、delete等);l ResultSet executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;批处理l void addBatch(String sql):添加一条语句到“批”中;l int executeBatch():执行“批”中所有语句。返回值表示每条语句所影响的行数据;l void clearBatch():清空“批”中的所有语句。PreparedStatementStatement接口的子接口优点 防SQL攻击; 提高代码的可读性、可维护性; 提高效率!API 给出SQL模板! 调用Connection的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的简单封装3.2.2 API构造方法QueryRunner qr = new 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为数据库连接池提供了公共的接口: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.u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025《合同附加协议》
- 2025工程设备租赁合同范文
- 2025超市物业管理合同范本
- 语言信息处理知到课后答案智慧树章节测试答案2025年春大连东软信息学院
- 2025健身设备采购合同书律师拟定版本
- 2025自然人向企业借款合同范本参考
- 四年级上册数学教案-1.5近似数 |北师大版
- 2025智能合同管理系统优化方案
- 2024年山东大学第二医院医师岗位招聘真题
- 2024年南平市市属事业单位考试真题
- 《火力发电建设工程机组调试技术规范》
- 深度强化学习理论及其应用综述
- 特种设备使用管理新版规则
- 腾讯社招测评题库
- 集中供热老旧管网改造工程施工方案及技术措施
- 河北青县村村合并方案
- 人教版数学五年级下册分数比较大小练习100题及答案
- DB21-T 3031-2018北方寒区闸坝混凝土病害诊断、修补与防护技术规程
- 国家职业技术技能标准 6-29-02-06 凿岩工(试行) 2024年版
- 《人类征服的故事》读后感
- 钢筋混凝土护坡工程施工
评论
0/150
提交评论