![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
Mikowoo007
这个作者很懒,什么都没留下…
展开
-
Mac_安装mysql_可视化工具Naivat Premium
Mysql官网配置环境变量:cd /usr/local/mysqlsudo vim .bash_profile在文本下方输入, wq 保持退出export PATH=${PATH}:/usr/local/mysql/bin激活环境变量source .bash_profile测试 连接 mysql 情况mysql -u root -p安装 mac版本 可视化 Navicat Premium安装汉化包复制中文包”zh-Hans.lpro原创 2020-05-10 15:38:33 · 505 阅读 · 0 评论 -
Mysql下载与安装
Mysql官网下载地址点击小海豚跳转下一个界面原创 2019-05-28 10:56:59 · 263 阅读 · 0 评论 -
(1)常用数据库命令
MySql数据库分两种系统数据库(数据库服务器自带的)information_schema存储数据库对象信息如用户表信息,列信息,根除,字符,分区里面的内容不能动performance_shema存储数据库服务器性能参数信息mysql存储数据库用户权限信息sys通过这个库我们可以快速的了解系统的元数据信息用户数据库用户自己创建的数据库,一个项目用一个数据库显示数据库...原创 2019-05-28 11:40:21 · 226 阅读 · 0 评论 -
(2)SQL数据类型
功能分类DDL 数据定义语言用来定义数据库对象:创建库,表,列等DML 数据操作语言用来操作数据库表中的记录DQL 数据查询语言用来查询数据DCL 数据控制语言用来定义访问权限和安全级别数据类型MySQL中定义数据字段的类型对数据库的优化是非常重要的数值类型类型大小用途TINYINT1字节小型数值SMALLINT1字节大型数值MED...原创 2019-05-28 14:23:17 · 190 阅读 · 0 评论 -
(3)SQL 表
表的相关数据 属于 DDL创建数据库create database 数据库名 character set utf8;修改数据库alter database 数据库名 character set gdk;创建表先进入数据库中CREATE TABLE 表名( 列名1 列的类型 [约束], 列名2 列的类型 [约束], ... 列名n 列的类型 [约束]); #注意分...原创 2019-05-29 09:55:55 · 487 阅读 · 0 评论 -
(4)数据查询
数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端结果集通过查询语句查询出来的数据以表的形式展示我们称为虚拟结果集,存放在内存中。查询返回的结果是一张虚拟表查询所有列SELECT * FROM 表名;查询指定列的数据SELECT 列名1,列名2... FROM 表名;SELECT id,stu_age FROM student;条件查询条件查询就是在查询时...原创 2019-05-29 18:13:36 · 596 阅读 · 0 评论 -
(5)数据完整性
什么是数据完整性: 保证用户输入的数据保存到数据库中是正确的如何添加数据完整性: 在创建表时给表中添加约束完整性分类实体完整性什么是实体完整性 表中的一行(一条记录)代表一个实体(entity)实体完整性作用 标识每一行数据不重复,行级约束约束类型:主键约束(primary key)每个表中要有一个主键,数据唯一,且不能为null写法1:CREATE TABLE...原创 2019-05-30 15:36:00 · 248 阅读 · 0 评论 -
(6)多表查询
表之间关系一对一一对多关系多对多关系一个学生有多个老师,一个老师也可以有多个学生创建老师表创建学生表== 创建关系表==添加外键为什么要拆分表,避免大量冗余数据的出现...原创 2019-05-31 15:20:05 · 219 阅读 · 0 评论 -
(7)子查询
一个 select 语句中包含另一个完整的 select 语句,或两个以上,那么就是子查询语句出现的位置where后,把select 查询出的结果作为另一个select的条件from后,把查询出的结果当作一个新表举例示例所用表在上一篇中提到过查询与项羽同一个部门人员工SELECT e.ename,e.deptno from emp e WHERE e.deptno= (SELECT...原创 2019-05-31 17:27:19 · 195 阅读 · 0 评论 -
(8)常用函数
字符串函数concat(s1,s2,...sn);将传入的字符连城一个字符串,任意字符串与null进行连接都是nullSELECT CONCAT('aaa','bbb','ccc');SELECT CONCAT('aaa',NULL,'ccc');insert(str,x,y,instr);将字符串str从x位置开始,y个字符长的子串替换为指定的字符SELECT INSERT...原创 2019-06-02 14:53:47 · 118 阅读 · 0 评论 -
(9)事务
什么是事务不可分割的操作,假设该操作有ABCD四个步骤 若ABCD四个步骤都成功完成了,则认为事务成功 若ABCD中任意一个步骤操作失败,则认为事务失败每条sql语句都可认为是一个事务事务只对DML语句有效(更新,插入,删除),对DQL无效(查询)事务的ACID 特性原子性(Atomicity) 是指事务包含的所有操作要么全部成功,要么全部失败回滚一致性(Consisten...原创 2019-06-02 17:48:39 · 135 阅读 · 0 评论 -
(10)权限管理
权限: 限制一个用户能做什么事情,在MySQL中,可以设置全局权限,指定数据库权限,指定表权限,指定字段权限创建用户create user '用户名'@'localhost' identified by '密码';删除用户drop user '用户名'@'localhost';分配权限GRANT 权限(columns) on 数据库对象 to 用户 IDENTIFIED BY ...原创 2019-06-02 18:55:19 · 149 阅读 · 0 评论 -
(11)视图
什么是视图: 视图是一个虚拟表,其内容由查询定义 同真实的表一样,视图包含一系列带有名称的列和行数据 行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成 简单的说视图是由select结果组成的表视图的特性: 视图是对若干张基本表的引用,一张虚表,查询语句执行的结果 不存储具体的数据(基本表数据发生了改变,视图也会跟着改变) 可以跟基本表一样,进行增删改查...原创 2019-06-02 20:24:16 · 142 阅读 · 0 评论 -
(12)存储过程
什么是Mysql存储过程 是一组和编程的函数,是为了完成特定功能SQL 语句集 存储过程就是具有名字的一段代码,用来完成一个特定的功能 创建的存储过程存在数据库的数据字典中为什么要用存储过程 将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用 批量处理 统一接口,确保数据的安全 相对于oracle数据库来说,MySQL的存储过程相对功能较弱,应用较...原创 2019-06-03 13:54:13 · 141 阅读 · 0 评论 -
(13)索引
什么是索引: 索引用于快速找出某个列中有一特定值的行 不使用索引,MYSQL必须从第一条记录开始读完整个表,直到找出相关的行, 表越大,查询数据所花费的时间就越多 如果表中查询的列有一个索引,MYSQL能够快速到达一个位置去搜索数据文件 而不必查看所有数据,那么将会节省大部分时间索引的优势和劣势:优势: 类似于大学图书建书目索引,提高数据检索效率,降低数据库的IO成本 ...原创 2019-06-03 17:03:25 · 99 阅读 · 0 评论 -
JDBC--概述、安装与连接MySQL
JDBC概述什么是JDBC是一种用于执行SQL语句的Java API它由一组用Java语言编写的类和接口组成JDBC提供了一种操作数据的标准JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统java.sql包装的就是JDBC的API.各大数据库厂商就会对JDBC的API提供实现类,驱动包注意不要引错包,不用引用这个不要引入com.mysql...原创 2019-06-13 19:16:42 · 230 阅读 · 0 评论 -
JDBC--(1)操作MySQL创建表、插入数据
JDBC 操作MySQL创建表创建要执行的sql语句Statement接口,用来执行静态SQL语句对象把SQL语句发送到数据库中去执行。并返回执行的结果对于DQL返回查询的结果集对于DML返回受影响的行数对于DDL返回0executeUpdate(String); 执行DML和DDL语句释放数据资源为什么要释放资源Connection连接就相当于Java和到Mysql之间建...原创 2019-06-14 10:37:57 · 5013 阅读 · 0 评论 -
JDBC--(2)操作MySQL查询数据
MySQL与JAVA 数据类型对照表执行语句executeQuery(); 返回结果集 ResultSet表示数据库查询的结果的集合,在执行查询语句时就会得到一个这样的结果常用方法boolean next():判断是否有下一行数据,若有,则向下移动一行指针.getXxx(int columnIndex):获取当前行中,第几列.(从1开始):不推荐getXxx(String colu...原创 2019-06-14 14:07:00 · 166 阅读 · 0 评论 -
JDBC--(3)DAO设计、ORM、domain
DAO设计没有使用DAO存在的问题:多个地方都要都同时做CRUD操作时,重复的代码就会很多什么是DAOData Access Object(数据存取对象)位于业务逻辑和持久化数据之间实现对持久化数据的访问ORM什么是ORM对象关系映射将关系数据库中表中的记录映射成为对象,以对象的形式展现因此ORM的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作对应关系d...原创 2019-06-17 11:14:50 · 178 阅读 · 0 评论 -
JDBC--单元测试
单元测试import org.junit.Test;运行出现问题时解决办法原创 2019-06-17 15:48:45 · 274 阅读 · 0 评论 -
JDBC--(4)DAO设计规范
DAO设计规范编写DAO组件1.定义DAO接口2.编写对应DAO实现类为什么要定义接口1.接口就是只给出了函数声明,但是是没有函数体类。函数体在实现类中给出2.面向接口编程根据客户提出的需求,定义接口,业务具体实现是通过实现类来完成。当客户提出新的需求,只需要编写该业务逻辑新的实现类。好处业务逻辑更加清晰增强代码的扩展性,可维护性接口和实现相分离,适合团队协作开发降低耦合...原创 2019-06-18 16:05:52 · 354 阅读 · 0 评论 -
JDBC--(5)Statement接口、预编译语言
Statement接口Statement接口作用用于进行Java程序和数据库之间的数据传输具体类有3个实现Statement用于对数据库进行通用访问,使用的是静态sqlPreparedStatementPreparedStatement 用于预编译模板SQL语句,在运行时接受sql输入参数CallableStatement要访问数据库存储过程时使用,也可以接受运行时输入参数。...原创 2019-06-18 16:06:21 · 298 阅读 · 0 评论 -
JDBC--(6)调用存储过程
JDBC调用存储过程调用单个参数存储过程存储过程语句delimiter $$create procedure getStu(in n VARCHAR(50))BEGINselect * from student where name = n;end$$delimiter ;call getStu('鲁班');JDBC 调用存储过程package com.iris.jd...原创 2019-06-18 16:06:53 · 148 阅读 · 0 评论 -
JDBC--(7)批处理、事务
JDBC批处理什么是批处理一次性执行多条Sql语句,允许多条语句一次性提交给数据库批量处理比单独提交处理要效率高批处理方法addBatch(String) 添加需要批处理的sql语句executeBatch() 执批处理支持情况mysql默认情况下是不支持批处理的从5.1.13开始,添加了一个rewriteBatchedStatements参数之前插入10条数据要17....原创 2019-06-18 16:07:27 · 229 阅读 · 0 评论 -
JDBC--(8)数据库存储图片、从数据库中获取图片
JDBC 存储图片数据库当中的BLOB存储图片、音频、视频等多媒体信息以二进制流的形式真正开发中不会把二进制的文件存放在数据库当中把文件存储的路径保存在数据库当中,以后再取出路径,到该路径下读取信息BLOB类型TINYBLOB 255个字节BLOB 65535字节MEDIUMBLOB 16MLONGBLOB 4G操纵:在表中添加一个字段,类型选择为blob类型通...原创 2019-06-18 16:07:55 · 1805 阅读 · 0 评论 -
JDBC--(9)获取自动生成的主键
JDBC 获取自动生成的主键在我们设置设计表时,会设置主键,自动增长的主键有时候我们插入数据时,要想知道我们生成的主键是多少需求场景用户注册时,添加用户名,密码后,插入到数据库当中跳转成完善个人信息页1. 完善信息更新到刚插入的那个记录当中,所以要获取刚插入的那个主键是多少2. 不能使用用户名来做条件,用户名有重名情况3. 所以插入完后,就应该获取刚插入的那个主键示例图传...原创 2019-06-18 17:24:47 · 408 阅读 · 0 评论 -
JDBC--(10)连接池(DBCP、Druid)
连接池没有使用连接池的情况每次CRUD操作都要使用数据库的时候,都要创建一个数据库连接对象普通的JDBC数据库连接使用 DriverManager 来获取每次向数据库建立连接的时候都要将 Connection 加载到内存中然后再验证用户名和密码花费时间0.05s~1s左右每次CRUD操作就向数据库要要一个连接,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。数据库的连接...原创 2019-06-19 13:55:01 · 177 阅读 · 0 评论 -
jDBC--(11)代码重构
JDBC–代码重构在DAO当中执行的保存方法,更新方法,删除这些DML操作有太多重复代码重构代码原则同一个类中1. 在一个类当中有多个方法当中有太多相同的代码2. 不同的地方通过参数传递进去3. 把它们抽到一个方法当中不同类中1. 不同类当中有共同的代码给抽取到一个新类当中。2. 大家同时共享该类中的内容抽取DML方法设计一个方法要求传入两个参数一个sql语句...原创 2019-06-19 16:23:59 · 185 阅读 · 0 评论 -
JDBC--(13)DBUtils
什么是DBUtilsDBUtils是Apache公司编写的数据库操作实用的工具,小巧,简单,实用封装了对JDBC的操作,简化了JDBC操作DBUtils官网下载地址QueryRunnerQueryRunner(DataSource ds)提供数据源连接池,会自动帮你创建连接Update(String sql,Object...obj)执行更新数据query(String sql,...原创 2019-06-20 11:35:52 · 122 阅读 · 0 评论 -
JDBC--(12)内省、Class类型
Class类型什么是Class类型字节码类型 /bin/*.class所有的字节码把他们当做一个群体类型通过字节码创建对象Student stu = Student.class.newInstance();package com.iris.jdbc.test;import com.iris.jdbc.domain.Student;class ClassTest{ publi...原创 2019-06-20 11:36:03 · 203 阅读 · 0 评论