MySQL
文章平均质量分 61
MySQL数据库学习笔记
糖心煎蛋
这个作者很懒,什么都没留下…
展开
-
MySQL——数据库设计三范式
建立在第二范式的基础之上,要求所有非主键字段直接依赖主键,不要产生传递依赖。设计范式是数据库表的设计依据,如何进行数据库表的设计。要求任何一张表必须有主键,每一个字段原子性不可再分。要求所有非主键字段完全依赖主键,不要产生部份依赖。原创 2022-08-19 23:35:04 · 406 阅读 · 0 评论 -
MySQL——索引
索引是在数据库表的字段上添加的,是为了缩小扫描范围,提高查询效率的机制。一张表的一个字段可以添加一个索引,多个字段联合起来也可以添加索引主键和UNIQUE字段会自动添加索引。如果没有索引,mysql将进行全表扫描。索引也需要排序,在mysql中索引是一个B-Tree数据结构,遵循左小右大原则存放,中序遍历取数据。原创 2022-08-19 17:59:02 · 1101 阅读 · 0 评论 -
MySQL——存储引擎
存储引擎是MySQL中特有的术语,是一个表存储/组织数据的方式。不同的存储引擎,表存储数据的方式不同。原创 2022-08-18 23:55:21 · 289 阅读 · 0 评论 -
MySQL——流程控制结构
顺序结构:程序从下往上依次执行分支结构:程序从两条或多条路径中选择一条去执行循环结构:程序在满足一定条件的基础上,重复执行一段代码一、分支结构1、if 函数功能:实现简单的双分支语法:SELECT IF(表达式1,表达式2,表达式3);执行顺序:如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值应用:任何地方2、case结构(1)情况一:类似于java中的switch语句,一般用于实现等值判断语法:CASE 变量 / 表达式 / 字原创 2021-11-12 21:57:14 · 342 阅读 · 0 评论 -
MySQL——函数
含义:一组预先编译好的SQL语句的集合,可以理解成批处理语句优点:(1)提高代码的重用性(2)简化操作(3)减少了编译次数并减少了和数据库服务器的连接次数,提高了效率与存储过程的区别:存储过程:可以有0个返回,也可以有多个返回。适合做批量插入、批量更新。函数:有且仅有一个返回。适合做处理数据后返回一个结果。一、创建语法语法:CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数体END<注>:(...原创 2021-11-12 20:00:00 · 79 阅读 · 0 评论 -
MySQL——存储过程
含义:一组预先编译好的SQL语句的集合,可以理解成批处理语句优点:(1)提高代码的重用性(2)简化操作(3)减少了编译次数并减少了和数据库服务器的连接次数,提高了效率一、创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的SQL语句)END<注>:1、参数列表包含三部分:参数模式、参数名、参数类型例:IN stuname VARCHAR(20)2、参数模式I...原创 2021-11-12 16:03:42 · 109 阅读 · 0 评论 -
MySQL——变量介绍
分类:(1)系统变量:全局变量、会话变量(2)自定义变量:用户变量、局部变量一、系统变量说明:变量由系统提供,不是用户定义,属于服务器层面使用语法:1、查看所有的系统变量SHOW GLOBAL(全局变量) / SESSION(会话变量) VARIABLES;2、查看满足条件的部分系统变量SHOW VARIABLES LIKE '%char%';3、查看指定的某个系统变量SELECT @@ GLOBAL / SESSION 系统变量名;4、为某个系统变...原创 2021-11-11 18:25:13 · 166 阅读 · 0 评论 -
MySQL——视图
含义:虚拟表,和普通表格一样使用mysql5.1版本出现的新特性,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。应用场景:多个地方用到同样的查询结果;该查询结果使用的sql语句较复杂。特点:(1)实现了sql语句的重用 (2)简化复杂的sql操作,不必知道他的查询细节(3)保护数据,提高安全性eg1.查询姓张的学生名和专业名CREATE VIEW vlASSEL...原创 2021-11-10 21:38:45 · 846 阅读 · 0 评论 -
MySQL-TCL——事务控制
TCL:Transaction Control Language 事务控制语言事务:一个或一组sql语言组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。在这个单元中,每个Mysql语句是相互以来的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事务开始以前的状态;如果单元中的所有SQL语句均执行成功,则事务被顺利进行。如:转账。存储引擎:在MySQL中数据用不同的技术存储在文件(或内存)中。查看存储引原创 2021-11-10 17:27:15 · 1049 阅读 · 0 评论 -
MySQL——标识列
标识列:又称为自增长列含义:可以不用手动插入值,系统提供默认的序列值特点:(1)标识列必须与一个key搭配,不一定是主键 (2)一个表至多有一个标识列 (3)标识列的类型只能是数值型 ,不一定是int (4)标识列可以通过SET auto_increment_increment设置步长,也可以通过手动插入值设置起始值一、创建表时设置标识列eg.USE test;CREATE TABLE tab_identi...原创 2021-11-09 16:32:43 · 179 阅读 · 0 评论 -
MySQL-DDL——常见约束
含义:一种限制,用于限制表中的数据,以保证表中的数据的准确性和可靠性CREATE TABLE 表名( 字段名 字段类型 约束);分类(六大约束): NOT NULL:非空,用于保证该字段的值不能为空。如姓名、学号等 DEFAULT:默认,用于保证该字段的值有默认值 PRIMARY KEY:主键,用于保证该字段的值具有唯一性且非空 UNIQUE:唯一,用于保证该字段的值具有唯一性,但可以为空 CHECK...原创 2021-11-09 16:11:06 · 226 阅读 · 0 评论 -
MySQL——常见数据类型
1、数值型 整型 小数:定点型、浮点型2、字符型 较短的文本:char、varchar 较长的文本:text、blob(较长的二进制数据)3、日期型<选择数据类型原则:越简单越好,能保存数值的类型越小越好>一、整型分类:tinyint、smallint、mediumint、int / integer、bigint特点: (1)如不设置有/无符号,默认为有符号。设置无符...原创 2021-11-07 20:28:18 · 1290 阅读 · 0 评论 -
MySQL-DDL——表的管理
一、表的创建语法:CREATE TABLE 表名( 列名 列的类型【(长度) 约束】, 列名 列的类型【(长度) 约束】, …… 列名 列的类型【(长度) 约束】,)eg1.创建表bookCREATE TABLE book( id INT,#编号 bName VARCHAR(20), #书名 prize DOUBLE, #价格 authorId INT, #作者 publishDate DATETIME #出版...原创 2021-11-07 16:42:33 · 85 阅读 · 0 评论 -
MySQL-DDL——库的管理
DDL:数据定义语言——库和表的管理库的管理:创建、修改、删除表的管理:创建、修改、删除创建:create ;修改:alter ;删除:drop一、库的管理1、库的创建语法:CREATE DATABASE 库名;eg1.创建库BooksCREATE DATABASE books;容错:CREATE DATABASE IF NOT EXISTS books;2、库的修改<一般不修改,会影响库的安全性>更改库的字符集:ALTER...原创 2021-11-07 15:33:25 · 101 阅读 · 0 评论 -
MySQL-DML——删除语句
一、方式一:delete1、单表的删除语法:delete from 表名 where 筛选条件;eg1.删除手机号最后一位为9的女生信息DELETE FROM beauty WHERE phone LIKE '%9';2、多表的删除语法(sql92):delete 要删除的表的别名from 表1 别名1,表2 别名2where 连接条件and 筛选条件;语法(sql92):delete要删除的表的别名from 表1 别名inner /.原创 2021-11-06 21:27:39 · 372 阅读 · 0 评论 -
MySQL-DML——修改语句
一、修改单表的记录语法:update 表名set 列1=新值1,列2=新值2,……where 筛选条件;eg1.修改beauty表中姓周的电话改为110UPDATE beautySET phone='110'WHERE NAME LIKE '周%';eg2.修改beauty表中id为2的人姓名改为‘李逵’,电话改为119UPDATE beautySET NAME='李逵',phone='110'WHERE id=2;二、修改多表的记录语法【sql92】原创 2021-11-06 20:59:34 · 105 阅读 · 0 评论 -
MySQL-DML——插入语句
DML:数据操控语言包含:数据插入(insert)、修改(update)、删除(delete)一、插入语句方式一语法:insert into 表名(列名1,……)values(值1,……);1、插入的值的类型要与列的类型一致或兼容INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)VALUES(13,'唐一','女','1990-4-23','18988889999',NULL,2);2、原创 2021-11-06 20:15:48 · 167 阅读 · 0 评论 -
MySQL-DQL——union联合查询
union 联合/合并:将多条查询语句的结果合并成一个结果应用场景:要查询的结果来自多个表,且多个表没有直接的连接关系,但查询的信息类型一致语法:查询语句1 UNION 查询语句2 UNION 查询语句3……特点:(1)要求多条查询语句的查询列数一致 (2)要求多条查询语句所查询的每一列的类型和顺序最好一致 (3)使用UNION关键字默认会去重,使用UNION ALL可以包含重复项eg1.查询部门编号>90或邮箱...原创 2021-11-06 19:40:42 · 109 阅读 · 0 评论 -
MySQL-DQL——分页查询
应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法:SELECT 查询列表FROM 表【JOIN 表2ON 连接条件WHERE 筛选条件GROUP BY 分组字段HAVING 分组后的筛选ORDER BY排序的字段】LIMIT OFFSET,size;offset:要显示条目的起始索引(起始索引从0开始)size:要...原创 2021-11-06 14:49:55 · 127 阅读 · 0 评论 -
MySQL-DQL——子查询
含义:出现在其他语句内部的select语句,称为子查询或内查询内部嵌套其他select语句的查询,称为主查询或外查询分类:(1)按子查询出现的位置: select后面:支持标量子查询 from后面:支持表子查询 where或having后面⭐:支持标量子查询√、列子查询√、行子查询 exists后面(相关子查询):支持表子查询(2)按结果集的行列数...原创 2021-11-05 21:09:50 · 128 阅读 · 0 评论 -
MySQL-DQL——连接查询(sql99标准)
sql99标准语法:select 查询列表from 表1 as 别名 【连接类型】 join 表2 别名 on 连接条件【where 筛选条件】【group by 分组条件】【having 筛选条件】【order by排序列表】支持:内连接:inner外连接:左外 left【outer】,右外right【outer】,全外full【outer】交叉连接:cross一、内连接语法:select 查询列表...原创 2021-11-05 15:36:16 · 115 阅读 · 0 评论 -
MySQL-DQL——连接查询(sql92标准)
连接查询:当查询的字段来自于多个表时,就需要用到连接查询笛卡尔乘积现象:select count(*) from 表1; #假设输出m行select count(*) from 表2; #假设输出n行最终结果:输出m*n行 实现了全连接发生原因:没有有效的连接条件如何避免:加上有效的连接条件连接查询分类:(1)按年代分类:sql92标准:仅仅支持...原创 2021-11-04 19:58:35 · 103 阅读 · 0 评论 -
MySQL-DQL——分组查询
分组数据:Group by子句语法:select 分组函数,列(要求出现在group by的后面)from 表【where 筛选条件】group by分组的列表【order by 子句】<注>where一定要放在from后面查询列别必须特殊,要求是分组函数和group by后出现的字段group by后的字段没有顺序要求,可以使用表达式,也可以添加排序eg1.查询每个工种的最高工资SELECT MAX(salary),job_idFROM原创 2021-11-04 16:08:40 · 284 阅读 · 0 评论 -
MySQL——分组函数
功能:用作统计使用,又称聚合函数或统计函数或组函数分类:sum求和、avg求平均、max最大值、min最小值、count计算个数1、简单使用语法:sum(1个参数)例:SELECT SUM(salary) FROM employees;SELECT ROUND(AVG(salary),2),MAX(salary),MIN(salary) FROM employees;2、特点(1)参数支持类型sum、avg:数值型min、max、count:任何类型.原创 2021-11-03 21:23:25 · 278 阅读 · 0 评论 -
MySQL常见函数5——流程控制函数
1、if 函数实现类似三目运算符的效果SELECT IF(10>5,'大','小');SELECT last_name,commission_pct, IF(commission_pct IS NULL,'无奖金','有奖金')FROM employees;2、case函数使用1:类似于switch-case 的效果格式:case 要判断的字段或表达式when 常量1 then 要显示的值1或语句1;when 常量2 then 要显示的值...原创 2021-11-03 20:19:27 · 120 阅读 · 0 评论 -
MySQL常见函数4——其他函数
1、version() 查看当前数据库版本SELECT VERSION();2、database() 查看当前的库SELECT DATABASE();3、user() 查看当前使用者SELECT USER();原创 2021-11-03 20:00:23 · 105 阅读 · 0 评论 -
MySQL常见函数3——日期函数
1、now() 用于返回当前系统日期+时间SELECT NOW();2、curdate() 返回当前系统日期 不包括时间SELECT CURDATE();3、cuitime()返回当前系统时间 不包括日期SELECT CURTIME();4、 或许指定的部分,年、月、日、小时、分钟、秒SELECT YEAR(NOW()) AS 年;SELECT YEAR('1998.1.1') AS 年;SELECT MONTH(NOW()) AS 月;...原创 2021-11-03 19:56:39 · 342 阅读 · 0 评论 -
MySQL常见函数2——数学函数
1、round() 四舍五入SELECT ROUND(4.50);select round(4.77531,2); #小数点后保留两位2、ceil() 向上取整,返回大于等于该参数的最小整数SELECT CEIL(1.56);3、 floor()向下取整,返回小于等于该参数的最小整数SELECT FLOOR(9.99);4、truncate() 截断指定位数SELECT TRUNCATE(1.69999,2);5、mod() 取余MOD(...原创 2021-11-03 17:01:48 · 186 阅读 · 0 评论 -
MySQL常见函数1——字符函数
功能:类似方法,将一组逻辑语句封装在方法体中,对外暴露方法名;优点:隐藏了实现细节,提高代码的重用性调用:select 函数名(实参列表) 【from 表】;分类: (1)单行函数 如:concat、length、ifnull等 (2)分组函数 功能:做统计使用,又称为统计函数、聚合函数、组函数单行函数分类:字符函数、数学函数、日期函数、其他函数、流程控制函数一、字符函数<注> utf8编码...原创 2021-11-03 16:53:00 · 298 阅读 · 0 评论 -
MySQL-DQL——排序查询
语法: Select 查询列表 From 表 【where 筛选条件】 Order by 排序列表 【asc|desc】(升序/降序)Eg1. 查询员工信息,要求工资从高到低排序SELECT * FROM employeesORDER BY salary DESC;特点:ASC升序,DESC降序,不写默认升序Eg1. 查询部门编号大于等于90的员工信息,按入职时间的先后进行排序SELECT * FROM employeesORDER B...原创 2021-11-03 15:34:41 · 163 阅读 · 0 评论 -
MySQL-DQL——基础查询
一、基础查询语法:select 查询列表 from 表名;特点: (1)查询列表可以是:表中的字段、常量值、表达式、函数 (2)查询的结果是一个虚拟的表格1、查询表中的单个字段select 列名from 表名;2、查询表中的多个字段select 列名1,列名2,列名2 from 表名;3、查询表中所有字段select * from 表名;使用某一个库 use 库名;4、查询常量值select 100;select 'j...原创 2021-11-02 21:26:52 · 109 阅读 · 0 评论 -
MySQL常见命令
常见命令1、展示数据仓库show databases;2、打开指定仓库use 库名;3、展示库的所有表格show tables;4、查看其他库的所有表show tables from 库名;5、创建表creat table 表名( 列名 列类型, 列名 列类型,);6、查看所在库的位置select database()7、查看表的结构desc 表名;8、查看表中数据select * from 表名;...原创 2021-11-01 21:06:40 · 48 阅读 · 0 评论 -
数据库基础
1、启动和停止net start mysqlner stop mysql2、登录(1)Mysql Command Line Client中直接输入密码;退出:exit(2)cmd中:mysql -h localhost -P3306 -u root -p登录本机可简写 mysql -u root -p退出 exit原创 2021-11-01 19:35:16 · 63 阅读 · 0 评论 -
数据库相关概念
一、数据库相关概念1.DB数据库database:存储数据的仓库,保存一系列有组织的数据2.DBMS数据库管理系统 database management system,数据库是用过DBMS创建和操作的容器 eg.MySQL、Oracle、DB2、SqlServer3.SQL结构化查询语言structure query language:专门用来和数据库通信的语言。几乎所有DBMS都支持SQL;可以进行非常复杂和高级的数据库操作。二、数据库特点1、将数据放到表中,表再放到库中原创 2021-11-01 18:25:28 · 142 阅读 · 0 评论