数据库基本知识(自己整理-初学者可以看一下-基于MySql)

上传人:日度 文档编号:136128592 上传时间:2020-06-24 格式:DOCX 页数:15 大小:18.38KB
返回 下载 相关 举报
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第1页
第1页 / 共15页
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第2页
第2页 / 共15页
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第3页
第3页 / 共15页
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第4页
第4页 / 共15页
数据库基本知识(自己整理-初学者可以看一下-基于MySql)_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据库基本知识(自己整理-初学者可以看一下-基于MySql)》由会员分享,可在线阅读,更多相关《数据库基本知识(自己整理-初学者可以看一下-基于MySql)(15页珍藏版)》请在金锄头文库上搜索。

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 mydb1ALTER DA

2、TABASE 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 TABL

3、E 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语句

4、,因为它是先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 用户名查看用户权限SH

5、OW 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 conditi

6、on /*行条件*/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.d

7、eptno左连接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

8、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_se

9、ction( 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.d

10、eptnoINNER 可以省略外连接左外连接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;

11、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、u

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

13、ion的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 =

14、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为数据库连接池提供了公

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 中学学案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号