
mysql
江夬
这个作者很懒,什么都没留下…
展开
-
mysql基础
##本单元目标一、为什么要学习数据库二、数据库的相关概念DBMS、DB、SQL三、数据库存储数据的特点四、初始MySQLMySQL产品的介绍MySQL产品的安装 ★MySQL服务的启动和停止 ★MySQL服务的登录和退出 ★MySQL的常见命令和语法规范五、DQL语言的学习 ★基础查询 ★条件查询 ★ 排序查询 ★ 常见函数 ★分组函数 ★分组查询 ★原创 2021-09-17 16:49:43 · 180 阅读 · 0 评论 -
流程控制结构
顺序、分支、循环一、分支结构1.if函数语法:if(条件,值1,值2)功能:实现双分支应用在begin end中或外面2.case结构情况1:类似于java中的switch语句,一般用于实现等值判断语法:case 变量|表达式|字段when 值1 then 语句1;when 值2 then 语句2;…else 语句n;end case情况2:类似于java中的多重if语句,一般用于实现区间判断casewhen 条件1 then 语句1;when 条件2 th.原创 2021-09-17 16:30:40 · 77 阅读 · 0 评论 -
mysql 函数
含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率区别:存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新函数:有且仅有1 个返回,适合做处理数据后返回一个结果一、创建语法CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数体END注意:1.参数列表 包含两部分:参数名 参数类型2.函数体:肯定会有retur.原创 2021-09-17 15:13:24 · 82 阅读 · 0 评论 -
存储过程和函数
存储过程和函数:类似于java中的方法好处:1、提高代码的重用性2、简化操作存储过程含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率一、创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的SQL语句)END注意:1、参数列表包含三部分参数模式 参数名 参数类型举例:in stuname varchar(20).原创 2021-09-17 11:32:05 · 77 阅读 · 0 评论 -
mysql 变量
系统变量: 全局变量 会话变量自定义变量: 用户变量 局部变量一、系统变量说明:变量由系统定义,不是用户定义,属于服务器层面注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别使用步骤:1、查看所有系统变量show global|【session】variables;2、查看满足条件的部分系统变量show global|【session】 variables like '%char%';3、查看指定的系统变量的原创 2021-09-17 11:00:43 · 86 阅读 · 0 评论 -
mysql 视图
含义:虚拟表,和普通表一样使用mysql 5.1版本出现的新特性,是通过表动态生成的数据比如:舞蹈班和普通班级的对比 创建语法的关键字 是否实际占用物理空间 使用视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改表 create table 保存了数据 增删改查#案例:查询姓张的学生名和专业名SELECT stuname,majornameFROM stuinfo sINNER JOIN major m ON s.`majorid`= m.`id`原创 2021-09-16 20:29:32 · 86 阅读 · 0 评论 -
事务控制语言TCL
Transaction Control Language 事务控制语言事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。案例:转账张三丰 1000郭襄 1000update 表 set 张三丰的余额=500 where name=‘张三丰’意外update 表 set 郭襄的余额=1500 where name=‘郭襄’事务的(A C I D)属性或特点:ACID原子性:一个事务不可再分割,要么都执行要么都不执行一致性:一个事务执行会使数原创 2021-09-16 17:37:30 · 94 阅读 · 0 评论 -
标识列 (自增长列)
标识列 又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值特点:1、标识列必须和主键搭配吗?不一定,但要求是一个key2、一个表可以有几个标识列?至多一个!3、标识列的类型只能是数值型4、标识列可以通过 SET auto_increment_increment=3;设置步长可以通过 手动插入值,设置起始值一、创建表时设置标识列DROP TABLE IF EXISTS tab_identity;CREATE TABLE tab_identity( id INT P..原创 2021-09-16 16:56:53 · 185 阅读 · 0 评论 -
mysql 常见约束
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类:五大约束NOT NULL:非空,用于保证该字段的值不能为空比如姓名、学号等DEFAULT:默认,用于保证该字段有默认值比如性别PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空比如学号、员工编号等UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空比如座位号FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值在从表添加外键约束,用于引用主表.原创 2021-09-16 16:27:56 · 83 阅读 · 0 评论 -
sql 常见的数据类型
数值型: 整型 小数: 定点数 浮点数字符型: 较短的文本:char、varchar 较长的文本:text、blob(较长的二进制数据)日期型:一、整型无符号:0~255分类: 有符号:-128~127整数类型 tinyint、 smallint、mediumint、int/integer、bigint字节 1 2 3 4 8特点:① 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字② 如果插入的数值超出了整型的范原创 2021-09-15 19:57:59 · 4590 阅读 · 0 评论 -
DDL数据定义语言
库和表的管理 一、库的管理 创建、修改、删除 二、表的管理 创建、修改、删除创建: create修改: alter删除: drop一、库的管理1、库的创建语法: 提高容错性create database [if not exists]库名; #案例:创建库BooksCREATE DATABASE books;CREATE DATABASE IF NOT EXISTS books ;2、库的修改(现在不能修改,只能在服务原创 2021-09-15 17:29:40 · 61 阅读 · 0 评论 -
数据操纵语言DML 插改删
数据操作语言:插入:insert修改:update删除:delete一、插入语句方式一:经典的插入语法:insert into 表名(列名,...) values(值1,...);SELECT * FROM beauty;#1.插入的值的类型要与列的类型一致或兼容INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)VALUES(13,'唐艺昕','女','1990-4-23','1898888888',N原创 2021-09-15 16:34:51 · 77 阅读 · 0 评论 -
进阶6:连接查询
含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类: 按年代分类: sql92标准:仅仅支持内连接 sql99标准【推荐】:支持内连接+外连接(左外和右外)+交叉连接 按功能分类: 内连接: 等值连接 非等值连接 自连接 外连接: 左外连接 右外连接 全外连接 交叉连接SELECT * FROM b原创 2021-09-14 20:18:24 · 53 阅读 · 0 评论 -
进阶5:分组查询
语法:select 查询列表from 表【where 筛选条件】group by 分组的字段【order by 排序的字段】;特点:1、和分组函数一同查询的字段必须是group by后出现的字段2、筛选分为两类:分组前筛选和分组后筛选 针对的表 位置 连接的关键字分组前筛选 原始表 group by前 where 分组后筛选 group by后的结果集 group by后 having①分组函数做条件肯定是放在having字句中②能用分组前筛选的,就优先考虑使用分组原创 2021-09-14 20:13:48 · 62 阅读 · 0 评论 -
分组函数
功能:用作统计使用,又称为聚合函数或统计函数或组函数分类:sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数特点:1、sum、avg一般用于处理数值型 max、min、count可以处理任何类型2、以上分组函数都忽略null值3、可以和distinct搭配实现去重的运算4、count函数的单独介绍一般使用count(*)用作统计行数5、和分组函数一同查询的字段要求是group by后的字段#1、简单 的使用SELECT SUM(sala原创 2021-09-14 20:11:09 · 73 阅读 · 0 评论 -
进阶4:常见函数
概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处:1、隐藏了实现细节 2、提高代码的重用性调用:select 函数名(实参列表) 【from 表】;特点: ①叫什么(函数名) ②干什么(函数功能)分类: 1、单行函数 如 concat、length、ifnull等 2、分组函数功能:做统计使用,又称为统计函数、聚合函数、组函数常见函数: 一、单行函数 字符函数: length:获取字节个数(utf-8一个汉字代表3个字节,gbk为2个字节) con原创 2021-09-14 20:07:19 · 61 阅读 · 0 评论 -
进阶3:排序查询
语法:select 查询列表from 表名【where 筛选条件】order by 排序的字段或表达式;特点:1、asc代表的是升序,可以省略 desc代表的是降序2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段3、order by子句在查询语句的最后面,除了limit子句#1、按单个字段排序SELECT * FROM employees ORDER BY salary DESC;#2、添加筛选条件再排序#案例:查询部门编号>=90原创 2021-09-14 20:04:32 · 51 阅读 · 0 评论 -
进阶2:条件查询
语法: select 查询列表 from 表名 where 筛选条件;分类: 一、按条件表达式筛选 简单条件运算符:> < = != <> >= <= <> 不等于 二、按逻辑表达式筛选 逻辑运算符: 作用:用于连接条件表达式 && || ! and or not &&和and:两个条件都为true,结果为true,反之为false ||或or: 只要有一个条件为true,结果原创 2021-09-14 20:03:03 · 57 阅读 · 0 评论 -
进阶1:基础查询
ctrl f12 格式化选中的部分语法:select 查询列表 from 表名;类似于:System.out.println(打印东西);特点:1、查询列表可以是:表中的字段、常量值、表达式、函数2、查询的结果是一个虚拟的表格USE myemployees;#0. 显示表departments的结构DESC departments;#1.查询表中的单个字段SELECT last_name FROM employees;#2.查询表中的多个字段SELECT last_name原创 2021-09-14 19:56:24 · 52 阅读 · 0 评论 -
进阶9:联合查询
union 联合 合并:将多条查询语句的结果合并成一个结果语法:查询语句1union查询语句2union...应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时特点:★1、要求多条查询语句的查询列数是一致的!2、要求多条查询语句的查询的每一列的类型和顺序最好一致3、union关键字默认去重,如果使用union all 可以包含重复项#引入的案例:查询部门编号>90或邮箱包含a的员工信息SELECT * FROM employees WHER原创 2021-09-14 19:53:59 · 72 阅读 · 0 评论 -
进阶8:分页查询 ★
应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序的字段】 limit 【offset,】size; offset要显示条目的起始索引(起始索引从0开始) size 要显示的条目个数特点: ①limit语句放在查询语句的最后 ②公式 要显示的页数 page,每页的原创 2021-09-14 19:14:57 · 78 阅读 · 0 评论 -
进阶7:子查询
含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询分类:按子查询出现的位置: select后面: 仅仅支持标量子查询 from后面: 支持表子查询 where或having后面:★ 标量子查询(单行) √ 列子查询 (多行) √ 行子查询 exists后面(相关子查询) 表子查询按结果集的行列数不同: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列)(使用较少原创 2021-09-14 16:57:02 · 61 阅读 · 0 评论 -
mysql 199 连接查询
左连接 ,右连接,内连接和全外连接的4者区别 A表 id name 1 小王 2 小李 3 小刘 B表 id A_id job 1 2 老师 2 4 程序员内连接:(只有2张表匹配的行才能显示)select a.name,b.job from A a inner join B b on a.id=b.A_id 只能得到一条记录 小李 老师左连接:(左边的表不加限制)select a.name,b.原创 2021-09-14 11:34:54 · 134 阅读 · 0 评论