
MySQL
2401w
不要让你的脑袋成为别人思想的跑马场
展开
-
MySQL - 数据库报错:Parameter index out of range (1 > number of parameters, which is 0).
原创 2020-12-06 14:32:59 · 189 阅读 · 0 评论 -
数据库设计三大范式
数据库第一二三范式到底在说什么?转载 2020-08-29 14:15:32 · 97 阅读 · 0 评论 -
MySQL - 物理删除和逻辑删除
物理删除:真实删除文件储存所用到的磁存储区域被真正的清零,不可恢复在数据库中直接使用delete、drop删除表数据就属于物理删除逻辑删除:假删除逻辑删除就是在想要被删除的数据上打一个删除标记,只要修改状态标识字段就行使用 is_deleted 字段,设置其数据类型为 bit ,只有两个值 0、1,1表示没有被删除,0表示已经被删除逻辑上数据被删除,但数据本身依然存在...原创 2020-08-28 16:23:50 · 2160 阅读 · 0 评论 -
MySQL - 枚举enum
枚举类型是字符串类型,其值从事先指定的一系列值中选出,适用于列的取值范围固定的情况语法:enum(可能出现的元素列表)例如:enum(‘男’,‘女’)优点:限定值的可能性比普通字符串速度快MySQL存储枚举类型的数据时,直接转化成数字存储而不是字符串,每一个值都是一个整数标识,可以节省空间。在表的 .frm 文件中会存储“数字 - 字符串”之间的对应关系。最多能有65535个选项可供选择原理:枚举在定义的时候,系统会自动建立一个数字与枚举元素的对应关系,放在 .frm 文件中,然后原创 2020-08-26 21:05:57 · 765 阅读 · 0 评论 -
MySQL - 查看存储引擎类型、常用的4种存储引擎
查看mysql中所有存储引擎类型:SHOW ENGINES;查看数据库默认使用的存储引擎类型SHOW VARIABLES LIKE 'storage_engine';查看表的存储引擎类型show table status from 数据库库名 where name='表名'SHOW TABLE STATUS FROM library WHERE NAME='books';...原创 2020-08-25 11:02:52 · 1611 阅读 · 0 评论 -
JDBC - 相关API
DriverManager驱动管理类registDriver(Driver对象):注册驱动,不推荐使用getConnection(url,user,pwd):获取连接Connection连接对象接口createStatement():生成命令对象prepareStatement(sql):生成预编译命令对象Statement命令对象接口executeUpdate(sql):执行增删改语句,返回受影响的行数executeQuery(sql):执行查询语句,返回结果集execute(原创 2020-08-18 09:29:15 · 113 阅读 · 0 评论 -
JDBC - PreparedStatement和Statement的区别
使用PreparedStatement的好处:不再使用 + 拼接sql语句,减少语法错误,语义性强将模板sql(固定的部分)和参数部分进行了分离,提高维护性有效的解决了sql注入问题注入问题:比如下面的例子,使用Statement,用户输入username时,可能会输入一些特殊符号,尤其是双引号、单引号,系统将这些符号拼接到sql语句中,可能会导致sql语句出错,进而导致程序报错。大大减少了编译次数,效率高比如下面例子中的登录验证。使用Statement,如果有10个人进行登录验证,程序就需原创 2020-08-18 08:33:08 · 167 阅读 · 0 评论 -
MySQL - JDBC的简单介绍
在java中,数据库存取技术可分为如下几类:JDBC直接访问数据库JDO技术(Java Data Object)第三方O/R工具,如Hibernate、Mybatis等JDBC是JAVA访问数据库的基石,JDO、Hibernate等知识更好的封装了JDBCJDBC(Java Database Connectivity) Java和数据库的连接技术JDBC是一个独立于特定数据库管理系统(DBMS)、通用的SQL数据库存取和操作的公共接口(一组API)作用:定义了用来访问数据库的标准Jav原创 2020-08-17 14:48:11 · 207 阅读 · 0 评论 -
MySQL - 事务的基本知识
事务概念:一个事务是由一条或者多条SQL语句构成,这一条或者多条SQL语句要么全部执行成功,要么全部执行失败。默认情况下,每条单独的SQL语句就是一个单独的事务事务的四大特性(ACID):原子性(Atomicity):事务中所有操作是不可再分割的原子单位。事务中所有操作要么全部执行成功,要么全部执行失败一致性(consistency):事务执行后,数据库状态与其它业务规则保持一致,如转账业务,五路事务执行成功与否,参与转账的两个账号余额之和应该是不变的隔离性(Lsolation):隔离性是指原创 2020-08-13 11:14:31 · 242 阅读 · 0 评论 -
MySQL - DML语言 - 插入数据、自增长列、修改数据、删除数据
DML语言DML(Data Manipulation language)数据操纵语言关键字:insert update delete作用:对表中数据的增删改数据的插入语法:插入单行:INSERT INTO 表名(字段名1,字段名2,……) VALUE (值1,值2,……);插入多行:INSERT INTO 表名(字段名1,字段名2,……) VALUE (值1,值2,……),(值1,值2,……),(值1,值2,……);特点:字段和值列表一一对应,包含类型、约束等必须匹配数值型的值原创 2020-08-12 20:27:39 · 227 阅读 · 0 评论 -
MySQL - DDL语言 - 表的创建、修改、删除、复制
一、创建表(重点)语法:create table [if not exists] 表名( 字段名 字段类型 [字段约束], 字段名 字段类型 [字段约束], 字段名 字段类型 [字段约束], 字段名 字段类型 [字段约束], 字段名 字段类型 [字段约束])案例:#创建学生信息表CREATE TABLE IF NOT EXISTS stuinfo( stuid INT, stuname VARCHAR(20), stugender CHAR, email VARCHAR(20原创 2020-08-11 16:48:03 · 295 阅读 · 0 评论 -
MySQL - 常见的数据类型、常见的约束
常见的数据类型一、整型:tinyintsmallintint(常用)bigint二、浮点型:double(m,n)float(m,n)decimal(m,n):精度最高,在表示钱方面使用该类型,因为不会出现精度确实问题m和n可选浮点型中(m,n)指,最多m位,其中小数点后必须有n位比如:double(5,2)表示最多5位,其中小数点后必须有2位,即最大值为999.99三、字符型:char(n):n可选,固定长度字符串类型:char长度可选范围是0-255固定长度是指,比如cha原创 2020-08-11 11:02:31 · 651 阅读 · 0 评论 -
MySQL - DDL语言 - 库的管理
DDL语言说明:Data Define Language(数据定义语言)用于对数据库和表的管理和操作库的管理一、创建数据库create database 库名;CREATE DATABASE stuDB;当第二次运行,因为已经存在该库,所以会报错为了提高代码的容错性CREATE DATABASE IF NOT EXISTS stuDB;二、删除数据库drop database 库名;DROP DATABASE stuDB;与上同理,为了提高代码容错性DROP DATABA原创 2020-08-10 11:40:26 · 125 阅读 · 0 评论 -
MySQL - DQL语言 - 联合查询
联合查询说明:当查询结果来自于多张表,但多表之前没有关联,这个时候往往需要使用联合查询,也称为union查询语法:select 查询列表 from 表1 where 筛选条件unionselect 查询列表 from 表2 where 筛选条件特点:哪个表先写,哪个表的数据在前面多条查询语句的查询列数必须一致如果在多条查询语句中列的顺序不一样,效果可以显示,但是不存在意义union自动去重,union all支持重复项案例一:那个表先写,那个表的数据在前面#查询所有国家的年龄&原创 2020-08-10 10:57:04 · 144 阅读 · 0 评论 -
MySQL - DQL语言 - 分页查询
分页查询应用场景:当页面上的数据,一页显示不全,则需要分页显示分页查询的sql命令请求数据库服务器 —> 服务器响应查询到的多条数据 —> 前台页面语法:select 查询列表from 表1 别名join 表2 别名on 连接条件where 筛选条件group by 分组having 分组后筛选order by 排序列表limit 起始条目索引,显示的条目数执行顺序:1> from 子句2> join 子句3> on 子句4> wher原创 2020-08-10 09:10:45 · 239 阅读 · 0 评论 -
MySQL - DQL语言 - 子查询
子查询说明:当一个查询语句中又嵌套了另一个完整的select语句,则被嵌套的select语句称为子查询或内查询,外面的select语句被称为主查询或外查询分类:按子查询出现的位置进行分类:select后面(标量子查询)要求:子查询的结果为单行单列from后面要求:子查询的结果可以为多行多列where或having后面(重点)(单行子查询、多行子查询)要求:子查询的结果必须为单列特点:1. 子查询放在条件中,要求必须放在条件的右侧2. 子查询一般放在小括号中3. 子查询的执行优先原创 2020-08-09 22:11:08 · 136 阅读 · 0 评论 -
MySQL - DQL语言 - 连接查询
#连接查询/*含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询笛卡尔乘积现象:表1 有m行,表2 有n行,结果 = m*n 行发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类:按年代分类sql92标准:在mysql中仅仅支持内连接,不推荐使用sql99标准[推荐]:在mysql中支持内连接+外连接(只支持左外连接、右外连接,不支持全外连接)+交叉连接按功能分类内连接:等值连接非等值连接自连接外连接:左外连接右外连接全外连接交叉连接*/SE原创 2020-08-07 14:32:54 · 175 阅读 · 1 评论 -
MySQL - DQL语言 - 分组查询
#分组查询/*语法: select 分组函数,列(要求出现在group by的后面) from 表 [where 筛选条件] group by 分组的列表 [order by 子句]注意:查询列表比较特殊,要求是分组函数和group by后出现在字段特点: 1. 分组查询中的筛选条件分为两类 数据源 位置 关键字 分组前筛选 原始表 group by子句的前面 where 分组后筛选 分组后的结果集 group by子句的后面 having 2. 分组函数做条件肯原创 2020-07-28 09:10:12 · 164 阅读 · 0 评论 -
MySQL - DQL语言 - 函数 - 单行函数、分组函数
常见函数介绍概念:类似于java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处:隐藏了实现细节提高代码的重用性调用:select 函数名(实参列表) [from 表]特点:叫什么?(函数名)做什么?(函数功能)分类:单行函数如:concat、length、ifnull等分组函数功能:做统计使用,又称为:统计函数、聚合函数、组函数...原创 2020-07-24 09:19:21 · 225 阅读 · 0 评论 -
MySQL - DQL语言 - 排序查询
排序查询介绍语法:select 查询列表from 表[where 筛选条件]order by 排序列表 [asc/desc]特点:asc代表的是升序,desc代表的是降序,如果不写,默认是升序案例:查询员工信息,要求工资从高到低排序SELECT *FROM employeesORDER BY salary ASC;order by子句可以支持单个字段、多个字段、表达式、函数、别名order by子句一般是放在查询语句的最后面,limit子句除外#查询员工的姓名原创 2020-07-13 14:07:19 · 142 阅读 · 0 评论 -
MySQL - DQL语言 - 条件查询
条件查询介绍语法:SELECT 查询列表FROM 表名WHERE 筛选条件;分类:按条件表达式筛选简单条件运算符:> 、< 、= 、<>(不等于,!=也可以起作用,但最好不要使用 !=) 、>= 、<=按逻辑表达式筛选逻辑运算符:and(&&) 、or(||) 、not(!)建议使用:and、or、notand(&&):两个条件都为true,结果为true,反之为falseor(||):只要有一个条件为t原创 2020-07-11 16:33:23 · 154 阅读 · 0 评论 -
MySQL - DQL语言 - 基础查询
DQL(data select language 数据查询语言)主要用于进行数据表中数据的查询基础查询基础查询介绍语法:select 查询列表 from 表名特点:查询列表可以是表中的字段、常量值、表达式、函数查询的结果是一个虚拟的表格查询表中的字段1. 查询表中单个字段select last_name from employees;2. 查询表中多个字段selset last_name,salary,email from employees;3. 查询表中所有字段方法一:原创 2020-07-08 16:05:46 · 171 阅读 · 0 评论 -
MySQL - 常见命令及语法规范
查看当前所有数据库show database;打开指定的库ues 库名;查看当前库的所有表show tables;查看其它库的所有表show tables from 库名;创建表create table 表名( 列名1 列类型, 列名2 列类型, …… 列名n 列类型)查看表结构desc 表名;查看服务器的版本方式一:登录到mysql服务端select version();方式二:没有登录到mysql服务端mysql --ve.原创 2020-07-05 16:08:51 · 137 阅读 · 0 评论 -
MySQL -使用数据库的好处、数据库相关概念、数据库存储数据的特点
使用数据库的好处持久化数据到本地可以实现结构化查询,方便管理数据库相关概念DB:数据库,保存一组有组织的数据的容器DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据SQL:结构化查询语言,用于和DBMS通信的语言数据库存储数据的特点将数据放到表中,再将表放到库中一个数据库中可以存在多个表,每一个表都有一个表名,用来标识自己,表名具有唯一性表具有一些特性,这些特性定义了数据在表中如何存储,类似于java中“类”的设计表由列组成,我们也称为字段。所有表都是由原创 2020-07-05 14:47:48 · 969 阅读 · 0 评论