mysql之CRUD&常见函数&union查询

本文详细介绍了SQL中的基本操作,包括SELECT查询、INSERT插入数据、UPDATE更新数据、DELETE逻辑删除、DROP和TRUNCATE表的区别,以及函数如日期、字符串、数字处理和事务管理(BEGIN,COMMIT,ROLLBACK,FORUPDATE)。
摘要由CSDN通过智能技术生成

select

select * from c

insert

字段设置自增后,当我们指定增加一条数据后,往后增加的数据都会在该条数据后进行递增,但是可以认为的指定增加某条id不存在的数据
insert into c values(7,‘政治’)
insert into c(c2) values(‘历史1’),(‘地理1’);

update 修改必须带条件

update c set c2=‘我爱上学’ for update;(全表修改)

delete

面试题:请阐述drop,truncate,delete的区别

delete:逻辑删除,要携带条件
truncate:不允许携带条件,全表删除,删除后索引等还原为最初状态
drop:删整个表
删除能力:drop>truncate>delete

函数

  1. 日期函数:
  • 获取当前日期
    select NOW() from dual;
  • 获取年月日
    select YEAR(NOW()),MONTH(NOW()),DAY(NOW())from dual;
  • 查询给学生的年龄,只按年份算
    select *,year(NOW())-year(sage) from t_student
  • 按出生日期算,当前月日《出生年月的月日则,年龄减一
    select *,year(NOW())-year(sage)+if(convert(date_format(now(),‘%m%d’), unsigned)<convert(date_format(sage,‘%m%d’), unsigned),-1,0) as '年龄’from t_student
  • 查询本月过生日的学生
    select * from t_student where month(now())=month(sage);
  • 查询下月过生日的学生
    select * from t_student where month(adddate(now(),interval 1 month))=month(sage);
  1. 字符串
  • 获取长度
    select length(‘i love this game’)from dual;
  • 拼接
    select concat(‘zhangsan’ ‘like’ ‘you’)from dual;
  • 大小写转换
    select upper(‘i love’),lower(‘L LIKE’)FROM dual;
  • 替换
    select replace(‘i love this games’,‘i’,‘a’)from dual;
  • 去除前后空格
    select length(trim(’ i love ')),lenght(trim('i love '))from dual;
  • 反转
    select reverse(‘I love this game’) from dual;
  1. 数字函数
    select floor(3.14),floor(-3.14),ceil(3.14),ceil(-3.14),round(-3.14),round(3.14)from dual;

  2. if条件

  • if(表达式,满足的结果,不满足的结果)
    select iif(1>0,‘这个世界真疯狂’,‘有规律’)from dual;
  • ifnull
    select t_student set ssex=null where sid=‘02’;
    select sname,ifnull(ssex,‘bnbun’)from t_student;
  • case when
    select *,year(now())-year(sage)+(
    case when convert(date_format(now(),‘%m%d’),UNSIGNED
    )<convert(date_format(sage,‘%m%d’),UNSIGNED)then -1
    else 0 end)
    from t_student;
  1. 聚合函数(一般与group by 或having搭配使用)
    select count(sid),max(sage),min(sage)from dual;
    union和union all
    select ‘12’,12 from dual
    union
    select ‘12’,12 from dual
    union
    select ‘12’,13 from dual

陌生语法

  1. begin;开启事务
  2. rollback;回滚
  3. commit;提交;
  4. for update锁:它的作用是在查询过程中锁定数据行,防止其他事务对这些数据进行修改操作。使用"For Update"可以保证当前事务对被锁定的数据具有排他性,并且能够避免产生并发问题。
  5. start transaction;可以启动一个事务

代码运行sql语句

上述代码课与该表搭配运行

-- ----------------------------
-- Table structure for c
-- ----------------------------
DROP TABLE IF EXISTS `c`;
CREATE TABLE `c`  (
  `C1` int(0) NULL DEFAULT NULL COMMENT '课程编号',
  `C2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程名称'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of c
-- ----------------------------
INSERT INTO `c` VALUES (1, '税收基础');
INSERT INTO `c` VALUES (2, '税收进阶');
INSERT INTO `c` VALUES (3, '语文');
INSERT INTO `c` VALUES (4, '数学');
INSERT INTO `c` VALUES (5, '英语');

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值