MySQL&&高级

MySQL高级

SQL经典50题——刷题必备

http://www.doc88.com/p-5741685193015.html

sql_tools库的django_cas_ng_sessionticket表session_key列添加索引

//查询表的索引
show index from table_name;
# 为status设置索引
CREATE INDEX index_name ON django_cas_ng_sessionticket(session_key); 
//添加索引
ALTER TABLE`sql_tools '.' django_cas_ng_sessionticket add index'idx_session_key'('session_key (191));

DML原则

  1. UPDATE/DELETE脚本必须有相应的回滚脚本和备份脚本
  2. INSERT脚本必须有相应的回滚脚本
上线脚本:
insert into table(id) values (1);
回滚脚本:
delete from table where id=1;

UPDATE操作

上线脚本:
update a set name=’abc’ where id=1;
备份脚本:
create  zxdba_bak.20181101_a_part like a;
insert into zxdba_bak.20181101_a_part select * from a where id=1;
回滚脚本:
通过备份表关联更新回滚:
update a inner join zxdba_bak.20181101_a_part b on a.id = b.id 
set a.name = b.name;

Oracle变更

  • CREATE操作
create脚本回滚实例:
上线脚本:create  a (int id primary key,name varchar2(30))  tablespace  表空间名;
回滚脚本:alter table a rename to zxdba_bak_a_01;

  • UPDATE
上线脚本:
update a set name=’修改值’ where id=1;
备份脚本:
create  zxdba_bak.a_20181101_part as select * from  a where 1=0;
insert into zxdba_bak.a_20181101_part select * from a where id=1;
回滚脚本:
update a set name=’原值’ where id=1;

//根据流水号查 t_202010表 并在第一列显示 t.name

SELECT t.name ,t.* FROM `t_202010’ t WHERE t.'PROV_SWFTNO`=
'108520201012153780817658';

敖丙 国庆肝了8天整整2W字的数据库知识点

在这里插入图片描述

规范

  • 字符集默认UTF8MB4。单行长度最大长度不能超过21845。
  • 说明:utf8不支持emoji表情,如果要使用emoji请使用utf8mb4。Utf8默认为3个字节,emoji以及特殊汉字需要4个字节标识,需要使用到utf8mn4。

建表时创建普通索引

CREATE TABLE `t_reg_pay_sign_data` (
 `DATA_ID` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
 `MOBNUM` VARCHAR (20) COMMENT '手机号',
 `IDDOC_NAME` VARCHAR (255) COMMENT '姓名',
 `IDNO` VARCHAR (200) COMMENT '身份证号',
 `SWFTNO` VARCHAR (64) COMMENT '在线流水号',
 `SIGN_CHAN_CODE` VARCHAR (100) COMMENT'签约渠道编码',
 `DATA_STATE` VARCHAR (10) COMMENT'签约信息有效标志',
 `SIGN_RESULT` VARCHAR (10) COMMENT'签约结果',
 `CRT_TIME` datetime NOT NULL COMMENT '创建时间',
 `CRT_USER_ID` VARCHAR (20) NOT NULL COMMENT '创建用户ID',
 `CRT_APP_SYS_ID` VARCHAR (20) NOT NULL COMMENT '创建应用系统ID',
 `MODF_TIME` datetime COMMENT '修改时间',
 `MODF_USER_ID` VARCHAR (20) COMMENT '修改用户ID',
 `MODF_APP_SYS_ID` VARCHAR (20) COMMENT '修改应用系统ID',
 PRIMARY KEY (`DATA_ID`),
 INDEX ‘IDX_REG_PAY_SIGN_DATA_MOBNUM’ (MOBNUM),
 INDEX ‘IDX_REG_PAY_SIGN_DATA_IN’ (IDDOC_NAME),
 INDEX ‘IDX_REG_PAY_SIGN_DATA_IDNO’ (IDNO)

) COMMENT = '刷脸支付签约信息表';

SQL中Group By的使用

在这里插入图片描述

查询平均成绩大于60分的学生的信息

SELECT * from student s,
(SELECT s_id ,s_score AS 成绩
FROM score GROUP BY s_id HAVING AVG(s_score)>60) a 
WHERE s.s_id = a.s_id;

查询所有学生的信息、选课数、总成绩

SELECT *,COUNT(score.s_id),SUM(score.s_score) from student s
JOIN score ON s.s_id = score.s_id
GROUP BY s.s_id

左外连接 left join table_name on

在这里插入图片描述

# 左表全部保留,右表关联不上的用null表示 (左表建议 小表)
SELECT *from student s
LEFT JOIN score on score.s_id = s.s_id

在这里插入图片描述

右外连接

在这里插入图片描述

#右表全部保留,左表关联不上的用null表示。
SELECT *from student s
RIGHT JOIN score on score.s_id = s.s_id

内连接

在这里插入图片描述

#公共部分
SELECT *from student s
INNER JOIN score on score.s_id = s.s_id

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值