数据库基本知识自己整理初学者可以看一下基于MySql.docx
- 文档编号:5183390
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:8
- 大小:17.32KB
数据库基本知识自己整理初学者可以看一下基于MySql.docx
《数据库基本知识自己整理初学者可以看一下基于MySql.docx》由会员分享,可在线阅读,更多相关《数据库基本知识自己整理初学者可以看一下基于MySql.docx(8页珍藏版)》请在冰豆网上搜索。
数据库基本知识自己整理初学者可以看一下基于MySql
数据库
1常见数据库
1.1MySql:
甲骨文
1.2Oracle:
甲骨文
1.3SQLServer:
微软
1.4Sybase:
赛尔斯
1.5DB2:
IBM
2MySql基础知识
2.1关系结构数据模型数据库
2.2SQL(StructuredQueryLanguage)结构化查询语言
2.2.1DDL(DataDefinitionLanguage):
数据定义语言,用来定义数据库对象:
库、表、列等
操作数据库
CREATEDATABASE[IFNOTEXISTS]mydb1
USEmydb1
DROPDATABASE[IFNOTEXISTS]mydb1
ALTERDATABASEmydb1CHARACTERSETutf8
操作表
插入表
CREATETABLEstu(sidCHAR(6),snameVARCHAR(20),ageINT,genderVARCHAR(10));
更改表
ALTERTABLEt_userADD(studentvarcher(20))
ALTERTABLEt_userMODIFYgenderCHAR(20)
ALTERTABLEt_userCHANGEgenderVARCHER(20)
ALTERTABLEt_userREMANEgenderTOgenders
ALTERTABLEt_userDROPgender
删除表
DROPTABLEt_user
2.2.2DML(DataManipulationLanguage):
数据操作语言,用来定义数据库记录(数据)
插入数据
INSERTINTOt_userVALUES()
INSERTINTO表名VALUES(值1,值2,…)
更新数据
UPDATEt_userSETname=""
UPDATE表名SET列名1=值1,…列名n=值n[WHERE条件]
删除数据
虽然TRUNCATE和DELETE都可以删除表的所有记录,但有原理不同。
DELETE的效率没有TRUNCATE高!
TRUNCATE其实属性DDL语句,因为它是先DROPTABLE,再CREATETABLE。
而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的(回滚是事务的知识!
)。
DELETEFROMt_user
DELETEFROM表名[WHERE条件]
TRUNCATETABLEstu;
TRUNCATETABLE表名
2.2.3DCL(DataControlLanguage):
数据控制语言,用来定义访问权限和安全级别
创建用户
CREATEUSER用户名@地址IDENTIFIEDBY'密码';
给用户授权
GRANT权限1,…,权限nON数据库.*TO用户名
查看用户权限
SHOWGRANTSFOR用户名
撤销用户权限
REVOKE权限1,…,权限nON数据库.*FORM用户名
删除用户
DROPUSER用户名
修改用户名密码
UPDATEUSERSETPASSWORD=PASSWORD('1234')WHEREUser='user2'andHost=’localhost’;FLUSHPRIVILEGES;
2.2.4DQL(DataQueryLanguage):
数据查询语言,用来查询记录(数据)
基础查询
SELECTselection_list/*要查询的列名称*/
FROMtable_list/*要查询的表名称*/
WHEREcondition/*行条件*/
GROUPBYgrouping_columns/*对结果分组*/
HAVINGcondition/*分组后的行条件*/
ORDERBYsorting_columns/*对结果分组*/
LIMIToffset_start,row_count/*结果限定*/
模糊查询
SELECT*FROMt_userWHEREnameLIKE'____'
聚合函数
COUNT();MAX();MIN();AVG();SUM();
多表查询
连接查询
内连接
SELECT*FROMdepartmentdINNERJOINemployeeeONd.deptno=e.deptno
左连接
SELECT*FROMdepartmentdLEFTJOINemployeeeONd.deptno=e.deptno
右连接
SELECT*FROMdepartmentdRIGHTJOINemployeeeONd.deptno=e.deptno
自然连接查询
内连接
SELECT*FROMdepartmentdNATURALINNERJOINemployeee
左连接
SELECT*FROMdepartmentdNATURALLEFTJOINemployeee
右连接
SELECT*FROMdepartmentdNATURALRIGHTJOINemployeee
2.3完整性约束(主外键)
2.3.1主键
特点
非空
唯一
被引用
语法
CREATETABLEstu(sidCHAR(6)PRIMARYKEY,snameVARCHAR(20),ageINT,genderVARCHAR(10));
ALTERTABLEstuADDPRIMARYKEY(sid);
CREATETABLEstu(sidCHAR(6),snameVARCHAR(20),PRIMARYKEY(sid));
2.3.2外键
外键必须引用另一张票的主键
CREATETABLEt_section(sidINTPRIMARYKEYAUTO_INCREMENT,snameVARCHAR(30),u_idINT,CONSTRAINTfk_t_userFOREIGNKEY(u_id)REFERENCESt_user(uid));
2.4多表查询
2.4.1合并结果集
笛卡尔积
2.4.2连接查询
内连接
方言
Select*fromempASe,deptASdWHEREemp.deptno=dept.deptno
AS可以省略
标准
SELECT*FROMempeINNERJOINdeptdONe.deptno=d.deptno
INNER可以省略
外连接
左外连接
Select*fromempeLEFTOUTERJOINdeptdONe.deptno=d.deptno
OUTER可以省略
右外连接
Select*fromempeRIGHTOUTERJOINdeptdONe.deptno=d.deptno
OUTER可以省略
自然连接
SELECT*FROMempNATURALJOINdept;
SELECT*FROMempNATURALLEFTJOINdept;
SELECT*FROMempNATURALRIGHTJOINdept;
2.4.3子查询
子查询结果集的形式
Ø单行单列(用于条件)
Ø单行多列(用于条件)
Ø多行单列(用于条件)
Ø多行多列(用于表)
2.5关系模型(表)
2.5.1一对多/多对一
2.5.2多对多
2.5.3一对一
3数据库基础知识
3.1JDBC
3.1.1JDBC(JavaDataBaseConnectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库
3.1.2JDBC核心类(接口)介绍
DriverManager
Connection
Statement
用于向数据库发送SQL语句
lvoidexecuteUpdate(Stringsql):
执行更新操作(insert、update、delete等);
lResultSetexecuteQuery(Stringsql):
执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;
批处理
lvoidaddBatch(Stringsql):
添加一条语句到“批”中;
lint[]executeBatch():
执行“批”中所有语句。
返回值表示每条语句所影响的行数据;
lvoidclearBatch():
清空“批”中的所有语句。
PreparedStatement
Statement接口的子接口
优点
Ø防SQL攻击;
Ø提高代码的可读性、可维护性;
Ø提高效率!
API
¨给出SQL模板!
¨调用Connection的PreparedStatementprepareStatement(Stringsql模板);
¨调用pstmt的setXxx()系列方法sql模板中的?
赋值!
¨调用pstmt的executeUpdate()或executeQuery(),但它的方法都没有参数。
批处理
pstmt.addBatch()
ResultSet
rs.next();//光标移动到第一行
rs.getInt
(1);//获取第一行第一列的数据
3.2DBUtils
3.2.1DBUtils是ApacheCommons组件中的一员,开源免费,是对JDBC的简单封装
3.2.2API
构造方法
QueryRunnerqr=newQueryRunner();
QueryRunnerqr=newQueryRunner(dataSource)
增删改查
update():
执行insert、update、delete;
query():
执行select语句
public
public
batch():
执行批处理
3.3数据库连接池
3.3.1Java为数据库连接池提供了公共的接口:
javax.sql.DataSource,各个厂商可以让自己的连接池实现这个接口
3.3.2Tomcat配置连接池
JNDI(JavaNamingandDirectoryInterface),Java命名和目录接口。
JNDI的作用就是:
在服务器上配置资源,然后通过统一的方式来获取配置的资源。
3.3.3DBCP
DBCP是Apache提供的一款开源免费的数据库连接池
3.3.4C3P0
C3P0也是开源免费的连接池
3.4Java中的时间类型
3.4.1java.sql包下的三个时间类型的类都是java.util.Date的子类
3.4.2java.sql.Date---->java.util.Date不需要转换
3.4.3java.util.Date---->java.sql.Date需要转换
java.utl.Dated=newjava.util.Date();
java.sql.Datedate=newjava.sql.Date(d.getTime());//会丢失时分秒
Timetime=newTime(d.getTime());//会丢失年月日
Timestamptimestamp=newTimestamp(d.getTime());
感谢下载!
欢迎您的下载,资料仅供参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 基本知识 自己 整理 初学者 可以 一下 基于 MySql