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

上传人:b****2 文档编号:17738043 上传时间:2023-08-03 格式:DOCX 页数:9 大小:17.48KB
下载 相关 举报
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第1页
第1页 / 共9页
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第2页
第2页 / 共9页
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第3页
第3页 / 共9页
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第4页
第4页 / 共9页
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第5页
第5页 / 共9页
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第6页
第6页 / 共9页
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第7页
第7页 / 共9页
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第8页
第8页 / 共9页
数据库基本知识自己整理初学者可以看一下基于MySql.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

数据库基本知识自己整理初学者可以看一下基于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语句

publicTquery(Stringsql,ResultSetHandlerrh,Object…params)

publicTquery(Connectioncon,Stringsql,ResultSetHandlerrh,Object…params)

batch():

执行批处理

3.3数据库连接池

3.3.1Java为数据库连接池提供了公共的接口:

javax、sql、DataSource,各个厂商可以让自己的连接池实现这个接口

3.3.2Tomcat配置连接池

JNDI(JavaNamingandDirectoryInterface),Java命名与目录接口。

JNDI的作用就就是:

在服务器上配置资源,然后通过统一的方式来获取配置的资源。

3.3.3DBCP

DBCP就是Apache提供的一款开源免费的数据库连接池

BasicDataSource

3.3.4C3P0

ComboPooledDataSource

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());

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2