![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL初级
文章平均质量分 72
Shinnosuck
这个作者很懒,什么都没留下…
展开
-
【SQL进阶】
SQL进阶SQL函数文本函数SQL函数文本函数1、LOCATE(substr , str ):返回子串 substr 在字符串 str 中第一次出现的位置,如果字符substr在字符串str中不存在,则返回0;2、POSITION(substr IN str ):返回子串 substr 在字符串 str 中第一次出现的位置,如果字符substr在字符串str中不存在,与LOCATE函数作用相同;3、LEFT(str, length):从左边开始截取str,length是截取的长度;4、RIGH原创 2022-03-02 15:50:37 · 219 阅读 · 0 评论 -
MySQL流程控制结构(分支函数以及循环结构在begin end中)
# 流程控制结构/*顺序结构:程序从上往下依次执行分支结构:程序从两条或多条路径中选择一条去执行循环结构:程序在满足一定条件的基础上,重复执行一行代码*/# 分支函数# 1.if函数/*功能:实现简单的双分支语法:if(表达式1,表达式2,表达式3)执行顺序:如果表达式1成立,则IF函数返回表达式2的值,否则返回表达式3的值应用:任何地方*/# 2.case结构/*######以下的语法都是基于begin end中的,普通语法见前面的情况1:类似于switch,原创 2020-05-30 17:40:08 · 576 阅读 · 0 评论 -
MySQL函数
# 函数/*与存储过程的区别:存储过程:可以有0个,也可以有多个返回,适合做批量插入、批量更新函数:有且只有一个返回,适合做处理数据后返回一个结果*/# 一、创建语法/*create function 函数名(参数列表) returns 返回值begin 函数体end注意:1.参数列表 包含两部分:参数名 参数类型2.函数体:肯定会有return语句,如果没有会报错如果return语句没有放在函数体的最后也不会报错,但不建议3.函数体仅有一句话时,则可以省略begi原创 2020-05-30 16:30:21 · 101 阅读 · 0 评论 -
MySQL存储过程和函数
# 存储过程和函数/*存储过程和函数好处:1.提高代码的重用性2.简化操作*/# 存储过程/*含义:一组预先编译好的SQL语句的集合,理解成批处理语句1.提高代码的重用性2.简化操作3.减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率*//*# 一、创建语法create procedure 存储过程名(参数列表)begin 存储过程体(一组合法的sql语句)end注意:1.参数列表包含三部分参数模式 参数名 参数类型举例:in st原创 2020-05-30 14:23:12 · 105 阅读 · 0 评论 -
MySQL变量
# 变量/*系统变量: 全局变量 会话变量自定义变量: 用户变量 局部变量*/#一、系统变量/*说明:变量由系统提供,不是用户定义,属于服务器层面使用语法:1、查看所有的系统变量SHOW GLOBAL|【SESSION】 VARIABLES;2、查看满足条件的部分系统变量SHOW GLOBAL|【SESSION】 VARIABLES like '%char%';3、查看指定的某个系统变量的值select @@global|【session】.系统变量名;4、原创 2020-05-30 10:57:36 · 169 阅读 · 0 评论 -
MySQL级联删除与级联置空
# 约束外键中,为了删除主表,级联删除与级联置空SHOW INDEX FROM major;SHOW INDEX FROM stuinfo;ALTER TABLE stuinfo DROP FOREIGN KEY fk_stu_major;# 传统的方式添加外键ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(major_id) REFERENCES major(id);SELECT * FROM major;IN原创 2020-05-29 22:39:20 · 460 阅读 · 0 评论 -
MySQL视图
# 视图/*含义:虚拟表,和普通表一样使用是通过表动态生成的数据重用sql语句简化复杂的sql操作,不必知道它的查询细节保护数据,提高安全性*/# 案例:查询姓张的学生名和专业名SELECT stuName,majorNameFROM stuinfo AS sINNER JOIN major AS mON s.`major_id`=m.`id`;WHERE s.`stuName` LIKE '张%';# 视图封装CREATE VIEW v1ASSELECT stu原创 2020-05-29 18:24:11 · 108 阅读 · 0 评论 -
MySQL_TCL事务
# TCL/*transaction control language 事务控制语言事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。事务由单独单元的一个或多个sql语句组成,在这个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果单元中的所有SQL语句均执行成功,则事物被顺利执行。案例:转账张三丰 10原创 2020-05-29 16:58:38 · 84 阅读 · 0 评论 -
MySQL标识列
# 标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值,从1开始特点:1.标识列必须和主键搭配吗?不一定,但要求是个key2.一个表中可以有几个标识列?至多一个3.标识列的类型只能是数值型4.标识列可以通过SET auto_increment_increment=3; 设置步长可以通过手动输入起始值,设置起始值*/# 一、创建表时设置标识列DROP TABLE IF EXISTS tab_identity;CREATE TABLE tab_identit原创 2020-05-28 22:09:32 · 166 阅读 · 0 评论 -
MySQL常见约束
# 常见约束/*引入:create table 表名( 字段名 字段类型 列级约束, 字段名 字段类型, 表级约束)含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类:六大约束 not null:非空,用于保证该字段的值不能为空 default:默认,用于保证该字段有默认值 primary key:主键,用于保证该字段的值具有唯一性,并且非空 unique:唯一,用于保证该字段的值具有唯一性,可以为空 check:检查约束【mysql中不支持】 fo原创 2020-05-28 14:51:36 · 142 阅读 · 0 评论 -
MySQL常见数据类型
# 常见数据类型/*数值型: 整型 小数: 定点数 浮点数字符型: 较短的文本:char、varchar 较长的文本:text、blob(较长的二进制数据)日期型: */# 一、整型/*整数类型 字节 范围tinyint 1 smallint 2mediumint 3int、integer 4bigint 8特 点:① 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字② 如果插入的数值超出了整型的范围,原创 2020-05-27 22:06:52 · 102 阅读 · 0 评论 -
MySQL_DDL语言(库与表的创建、修改、删除)
# DDL语言/*数据定义语言库和表的管理一、库的管理创建、修改、删除二、表的管理创建、修改、删除创建:create修改:alter删除:drop*/# 一、库的管理# 1.库的管理/*语法:create database 库名;*/# 案例:创建库BOOKs;CREATE DATABASE IF NOT EXISTS books; # IF NOT EXISTS 增加容错性# 2.库的修改# 更改库的字符集ALTER DATABASE books原创 2020-05-27 20:05:01 · 212 阅读 · 0 评论 -
MySQL_DML语言(数据的删、改、增)
# DML语言/*数据操作语言:插入:insert修改:update删除:delete*/# 一、插入语句(方式一)/*语法:insert into 表名 (列名1,列名2,...) values(值1,值2,,...);1.插入的值的类型要与列的类型一致或兼容*/# 1.插入的值的类型要与列的类型一致或兼容INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)VALUES(13,'唐艺昕'原创 2020-05-27 18:36:12 · 109 阅读 · 0 评论 -
MySQL进阶9:联合查询
# 进阶9:联合查询/*union 联合 合并:将多条查询语句的结果合并成一个结果语法: 查询语句1 union 查询语句2 union ... 应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时特点:1.要求多条查询语句的查询列数是一致的2.要求多条查询语句的查询的每一列的类型和顺序最好是一致的3.使用union关键字默认是去重了的,如果使用union all 可以包含重复项*/# 引入案例:查询部门编号>90或邮箱包含a的原创 2020-05-27 16:19:45 · 100 阅读 · 0 评论 -
MySQL进阶8:分页查询
# 进阶8:分页查询/*应用场景:当显示的数据,一页显示不全,需要分页提交sql请求语法: select 查询列表 from 表 【【join type】 join表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序字段】 limit 【offset ,】size; offset:要显示条目的起始索引(起始索引从0开始) size:要显示的条目个数特点: ①limit语句放在查询语句的最后(在语法和原创 2020-05-27 09:41:18 · 198 阅读 · 0 评论 -
MySQL进阶7:子查询
# 进阶7:子查询/*含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询示例:select frist_name from employees where department_id in( select department_id from departments where location+id=17000 ) 分类按子查询出现的位置: select 后面(只能放标量子查询) from 后面(只支持表子查询) wher原创 2020-05-26 22:29:39 · 95 阅读 · 0 评论 -
MySQL进阶6:连接查询(sql99语法)
# 二、sql99语法/*语法: select 查询列表 from 表1 as 别名 【连接类型】 join 表2 as 别名 on 连接条件 【where 筛选条件】 【group by 分组】 【having 筛选条件】 【order by 排序列表】分类: 连接类型内连接 inner外连接 左外 left 【outer】 右外 right 【outer】 全外 full 【outer】交叉连接 cross*/# 一、内连接/*语法:select原创 2020-05-26 18:58:26 · 183 阅读 · 0 评论 -
MySQL进阶6:连接查询(sql92标准)
# 进阶6:连接查询/*含义:又称多表查询,当我们查询的字段来自于多个表时,就会用到笛卡尔乘积现象: 表1有m行,表2有n行,结果为m*n行发生原因,没有有效的连接条件如何避免,添加有效的连接条件分类: 按年代分类: sql92标准:仅仅支持内连接 sql99标准【推荐】:支持内连接、外连接(左外和右外)、交叉连接 按功能分类: 内连接: 等值连接 非等值连接 自连接 外连接: 左外连接 右外连接 全外连接 交叉连接*/US原创 2020-05-26 12:04:46 · 196 阅读 · 0 评论 -
MySQL进阶5:分组查询
# 进阶5:分组查询/*语法: select 分组函数,列(要求出现在group by的后面) from 表 【where 筛选条件】 group by 分组的列表 【order by 子句】注意: 查询列表必须特殊,要求是分组函数和group by后出现的字段 特点: 1、分组查询中的筛选条件分为两类 数据源 位置 关键字 分组前的筛选 原始表 group by子句的前面 where 分组后的筛选 分组后的结果集 group by子句的后面 having原创 2020-05-25 21:59:08 · 108 阅读 · 0 评论 -
MySQL进阶4:常见函数(分组(统计)函数)
# 二、分组函数/*功能:用于统计使用,又称为聚合函数或统计函数或组函数分类:sum 求和avg 平均值max 最大值min 最小值count 计算个数特点:1、sum、avg一般用于处理数值型 max、min、count可以处理任何类型2、以上函数都忽略null值3、可以和distinct搭配实现去重的运算4、count的详细一般使用count(*)统计行数5、和分组函数一同*/# 1. 简单使用SELECT SUM(salary) FROM employ原创 2020-05-25 16:20:08 · 409 阅读 · 0 评论 -
MySQL
MySQL登陆和退出常用命令语法规范登陆和退出登陆:在cmd中以管理员身份进去,mysql [-h主机名 -P端口号] -u用户名 -p密码退出:exit常用命令1、查看当前所有数据库show databases;2、打开指定的库ues 库名;3、查看当前库的所有表show tables;4、查看其它库的所有表show tables from 库名;5、创建一个表create table 表名{ 列名 列类型, 列名 列类型, ......}6、查看表原创 2020-05-24 15:02:24 · 232 阅读 · 0 评论 -
MySQL进阶1:基础查询
# 进阶1:基础查询/*语法:select 查询列表 from 表名;类似于: System.out.println(打印东西);特点:1、查询列表可以是:表中给的字段、常量值、表达式、函数2、查询的结果是一个虚拟的表格*/USE myemployees;# 1.查询表中的单个字段SELECT last_name FROM employees ;# 2.查询表中的多个字段SELECT last_name, salary, email FROM原创 2020-05-24 17:19:34 · 75 阅读 · 0 评论 -
MySQL进阶2: 条件查询
# 进阶2: 条件查询/*语法 select 查询列表 from 表名 where 筛选条件; 分类: 一、按条件表达式筛选 条件运算符:> < = != <>(也是不等) <= >= 二、按逻辑表达式筛选 逻辑运算符: && || ! and or not 三、模糊查询 like between and in isnull */# 一、按条件表达式筛选# 案例1: 查询原创 2020-05-24 21:33:59 · 133 阅读 · 0 评论 -
MySQL进阶3: 排序查询
# 进阶3: 排序查询/*语法: select 查询列表 from 表 [where 筛选条件] order by 排序列表 [asc|desc]特点: 1、ASC代表的是升序,DESC代表的是降序 如果缺省,默认是升序 2、order by 子句中可以支持单个字段、多个字段、表达式、函数、别名 3、order by 子句中一般是放在查询语句的最后面,limit子句除外*/USE myemployees;# 案例1: 查询员工信息,要求工资从高到低排序SELECT *原创 2020-05-25 10:07:55 · 131 阅读 · 0 评论 -
MySQL进阶4: 常见函数(单行函数)
# 进阶4: 常见函数/*概念:将一组逻辑语句封装在方法体中,对外暴露方法名好处:1、隐藏了实现细节 2、提高代码的重用性调用: select 函数名(实参列表) 【from 表】;特点: ①叫什么(函数名) ②干什么(函数功能)分类: 1、单行函数(字符函数、数学函数、日期函数、其他函数、流程控制函数) 如 concat、length、ifnull等 2、分组函数 功能:做统计使用,又称为统计函数、聚合函数、组函数*/# 一、字符函数# 1.length 获取参数值的原创 2020-05-25 13:33:54 · 141 阅读 · 0 评论