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
函数
- 日期函数:
- 获取当前日期
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);
- 字符串
- 获取长度
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;
-
数字函数
select floor(3.14),floor(-3.14),ceil(3.14),ceil(-3.14),round(-3.14),round(3.14)from dual; -
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;
- 聚合函数(一般与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
陌生语法
- begin;开启事务
- rollback;回滚
- commit;提交;
- for update锁:它的作用是在查询过程中锁定数据行,防止其他事务对这些数据进行修改操作。使用"For Update"可以保证当前事务对被锁定的数据具有排他性,并且能够避免产生并发问题。
- 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, '英语');