![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL学习记录
文章平均质量分 59
cigarrrr
这个作者很懒,什么都没留下…
展开
-
MySQL——流程控制结构
分支结构if函数可以实现简单的双分支语法:if(expr1,expr2,expr3)执行顺序:expr1成立则返回expr2的值,反之返回expr3的值case结构两种情况:类似于switch,一般用于实现等值判断语法:case 变量|表达式|字段when 判断的值 then 返回的值1或语句1when 判断的值 then 返回的值2或语句2...else 返回的值n或语句nend;类似于多重if,用于实现区间判断语法:casewhen 判断的条件1 then原创 2022-02-27 21:08:27 · 356 阅读 · 0 评论 -
MySQL——函数
函数与存储过程相同点:都是一组实现编译好的sql语句集合不同点:存储过程可以有0个返回,也可以有多个返回;函数有且仅有1个返回存储过程适合做批量插入,批量更新,函数适合处理数据后返回一个值函数的创建和调用创建语法:create function 函数名(参数列表) returns 返回类型begin 函数体end注意:参数列表包含两部分:参数名和参数类型函数体一定要有return语句,虽然不会报错,但是建议在最后加上return 值函数体中只有一句话时,可以省略begin原创 2022-02-27 11:14:57 · 135 阅读 · 0 评论 -
MySQL——存储过程
存储过程一组预先编译好的sql语句集合,理解成批处理语句创建语法create procedure 存储过程名(参数列表)begin 存储过程体(一组合法的SQL语句)end;注:参数列表包含三个部分:参数模式 参数名 参数类型举例:IN stuname VARCHAR(20)参数模式:IN:该参数可以作为输入,也就是需要调用方法传入值OUT:该参数可作为输出,也就是可作为返回值INOUT:该参数既可以做输出,也可以做输入若存储体只有一句话,那么begin和end可以省略原创 2022-02-25 15:44:45 · 332 阅读 · 0 评论 -
MySQL——变量
系统变量全局变量作用域:服务器每次启动为所有全局变量赋初值,针对所有会话有效,但不能跨重启查看所有全局变量show global variables;查看部分全局变量例:看包含char字符的变量show global variables like '%char%‘;查看指定全局变量的值例:两种方式select @@global.autocommit;select @@tx_isolation;为某个全局变量赋值set @@global.autocommit=0原创 2022-02-25 11:08:30 · 283 阅读 · 0 评论 -
MySQL——视图
视图虚拟表,和普通的表一样使用。行列数据来自定义视图的查询中使用的表,是使用时动态生成的,只保存sql逻辑,不保存查询结果,具有临时性。(类似一键查询,封装)创建视图语法:create view 视图名as查询语句;例:查询邮箱包含a的员工名,部门名,工种idCREATE VIEW v1AS SELECT last_name,department_name,job_idFROM employees eINNER JOIN departments d ON e.departm原创 2022-02-24 10:12:42 · 463 阅读 · 0 评论 -
MySQL——事务控制语言(TCL)
事务概念事务指的是一个或一组sql语句组成一个执行单元,在这个单元中,sql语句相互依赖。这个执行单元要么全部执行,要么全不执行。ACID属性原子性(atomicity):事务是一个不可分割的各种单位,要么都发生,要么都不发生。一致性(consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态隔离性(isolation):一个事务的执行不能被其它事务干扰。持久性(durability):一旦事务被提交,它对数据库中数据的改变是永久性的,接下来的操作和数据库故障都不应对其有原创 2022-02-19 11:03:42 · 293 阅读 · 0 评论 -
MySQL——标识列
标识列又称自增长列,可以不用手动插入值,系统提供默认的序列值创建表时设置例:CREATE TABLE tab_identity( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) );#插入值时,自增长列不用输入值INSERT INTO tab_identity VALUES(NULL,'john');auto_increment默认从1开始,步长为1,可以设置起始值和步长SET auto_increment_offset=起始原创 2022-02-19 11:03:18 · 2290 阅读 · 0 评论 -
MySQL——常见约束
六大约束:not null:必须非空default:默认,保证该字段有默认值primary key:用于设置主键,保证该字段值唯一且非空unique:保证该字段值唯一,可以为空check:(MySQL不支持)检查约束foreign key:外键,用于限制两个表的关系,保证该字段的值必须来自主表关联列的值(在从表添加限制,用于引用主表中某列的值)比如:学生表的专业编号,员工表的部门编号等约束的添加分类:列级约束:六大约束语法上均支持,但是外键没有效果表级约束:除了非空,默认均支持原创 2022-02-18 17:49:32 · 433 阅读 · 0 评论 -
MySQL——数据类型
整型| tinyint | smallint | mediumint| int/integer| bigint||–|--|–|-- |–|| 1 | 2 | 3 |4 | 8|如果不设置无符号还是有符号,默认有符号,若想设置无符号,在后面添加UNSIGNED若插入的数值超出了整型的范围,会报错out of range,并且插入临界值若不设置长度,会有默认长度INT后括号内的数字不代表插入数值的范围,代表的是宽度,如:INT(5),则代表应显示五个数字,若插入数值123,最后应显示001.原创 2022-02-15 22:12:06 · 729 阅读 · 0 评论 -
MySQL——库,表的管理(DDL)
库的管理库的创建(create)语法:create database [if not exists]库名;添加if not exists是为了增加容错率库的修改(alter)更改库的字符集alter database 库名 character set 字符集(如:utf-8,gbk等)库的删除(drop)drop database [if exists] 库名;表的管理要与上一节DML中的添加,修改,删除区分开来,上一节数据管理语言的操作是针对数据,此处是数据定义语言,针原创 2022-02-15 22:11:56 · 101 阅读 · 0 评论 -
MySQL——DML语言
插入语句(insert)方式一语法:insert into 表名(列名1,...)values(值1,...);插入的值类型要与列兼容列和值的个数必须一致可以省略列名,此时默认所有列方式二语法:insert into 表名set 列名1=值1, 列名2=值2, ...;两种方式比较:方式一支持插入多行,方式二不支持insert into 表名(列1,...)values(值1, ...),values(值2, ...),values(值3, ...);方式原创 2022-02-14 11:56:06 · 140 阅读 · 0 评论 -
MySQL——子查询,分页查询,联合查询
子查询出现再其它语句内部的select语句,称为子查询或内查询;内部嵌套其它select语句的查询,称为外查询或主查询;分类:出现位置:select后面:支持标量子查询from后面:支持表子查询where或having后面:支持标量,列子查询,但行子查询用的少exists后面(相关子查询):支持表子查询结果集行列数:标量子查询(一行一列)列子查询(一列多行)行子查询(一行多列)表子查询(多行多列)where或having后子查询均放在小括号内标量子查询一般搭配单行操作符原创 2022-02-14 10:31:45 · 306 阅读 · 0 评论 -
MySQL——SELECT(分组查询,连接查询)
分组查询(GROUP BY)语法SELECT column, group_function(column)FROM table[WHERE condition][GROUP BY group_by_expression][ORDER BY column];查询列表必须是分组函数和group by后面出现的字段(column)支持多个字段分组,即可以有多个column,用逗号分隔例1:查询每个工种的最高工资SELECT MAX(salary),job_idFROM employee原创 2022-02-12 22:02:46 · 1173 阅读 · 0 评论 -
MySQL——常用函数
单行函数例:concat,length等,最后会有一个返回值。字符函数length:获取参数字节个数(utf-8为一字节,CJK为3字节)concat:拼接字符串upper、lower:大写字母,小写字母substr、substring:提取对应索引的子字符串SELECT SUBSTR('阿珍爱上了阿强',6);#一个参数截取指定索引处后面所有字符SELECT SUBSTR('阿珍爱上了阿强',3,3);#两个参数截取指定索引处指定长度字符instr:返回子串第一次出现的索引,原创 2022-02-11 18:39:42 · 522 阅读 · 0 评论 -
MySQL——SELECT语句(基础查询,条件查询)
SELECT语句(检索数据)检索列SELECT 列名 FROM 表名;当检索多个列时,在SELECT关键字后给出多个列名,并将列名以逗号分隔。在列名处使用*则代表检索所有列检索行每次检索列时会自动返回该列所有行,如果想要得到不同值的行可以使用DISTINCT关键字:注意:如果给出SELECT DISTINCT后接多个列名,除非指定的几个列都不同,否则所有行都将被检索出来。SELECT DISTINCT 列名 FROM 表名为了返回第一行或前几行,可使用LIMIT子句。LIM原创 2022-02-10 21:40:10 · 3590 阅读 · 0 评论 -
MySQL——基础,数据库
概念主键(primary key)列(或一组列),其值能够唯一区分表中每个行。唯一标识表中每行的这个列(或这组列)便称为主键。(例如:一个顾客表可以使用顾客编号列,而订单表可以使用订单ID。)两个条件:任意两行都不具有相同的主键值;每个行都必须具有一个主键值(主键列不允许NULL值)。SQL(Structured Query Language)SQL是一种专门用来与数据库通信的语言。MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户机—服务器的数据库。原创 2022-02-08 16:20:49 · 392 阅读 · 0 评论