mysql视频看谁的_mysql看视频笔记

1 CREATE TABLEtb_student (2 id INT PRIMARY KEY auto_increment, //主键约束,自动增长3 NAME VARCHAR (18) NOT NULL, //非空约束4 sex VARCHAR (2) check(sex = '男' or sex ='女'),5 age INT CHECK (age>18 AND age<60), //检查约束6 address VARCHAR (200),7 email VARCHAR (200) UNIQUE, //唯一约束8 tb_id int,9 //外键约束, 自己的表名(自己的外键) REFERENCES外部表名(字段)10 //CONSTRAINT FOREIGN KEY 外键名【表名+约束】(外键) REFERENCES主表(字段)11 CONSTRAINT foreign KEY tb_student_fk(tb_id) REFERENCEStb_demp(id)12 )13

14 //建表之后添加外键约束15 ALTER TABLEtb_student16 ADD CONSTRAINT foreign KEY tb_student_fk(tb_id) REFERENCEStb_temp(id)17

18 //设置自动增长19 alter tabletb_student20 modify column id intauto_increment21

22

23 SELECT * FROMtb_dept;24 1,指明字段25 2,全部字段26 INSERT INTO tb_dept(NAME,loc,description) VALUES('开发部','广州','辅助')27

28 INSERT INTO tb_dept VALUES(3,'财务部','广州','辅试试助')29 3,插入多条30 INSERT INTOtb_dept(NAME,loc,description)31 VALUES('财务部','广州','辅试试助'),32 ('财务部','广州','辅试试助'),33 ('财务部','广州','辅试试助') ,34 ('财务部','广州','辅试试助')35

36 创建一张表和tb_dept表的结构一样,这种方式建表,值复制表结构,不复制约束37 CREATE TABLEtb_dept238 SELECT * FROMtb_dept39

40 不复制数据41 CREATE TABLEtb_dept342 SELECT * FROM tb_dept WHERE id = 99

43

44 把tb_dept表中数据复制到tb_dept3中,只要这四个字段对应即可45 INSERT INTOtb_dept3(id,name,loc,description)46 SELECT id,name,loc,description FROMtb_dept47

48 更新语句49 UPDATE tb_student set age = 34

50 WHERE id = 3

51

52

53 delete fromtb_demp;删除所有数据54

55 删除有三种“:56 delete,可以回滚,保存记录,不删除表结构57 truncate,不回滚,不删除表结构,58 drop直接删除,所有内容删除59

60 select:61 重复62 SELECT DISTINCT deptno FROMtb_emp63

64 between and >=,<=,65

66 in、not in where mgr in(7902,222,12255) ,括号中包含的67

68 like 模糊查询, select ename from tb_demp where ename like '_克%';69 _表示一个字符70 %表示0或者多个字符71

72

73 order by排序,按照sal从高到低74

75 select * from tb_demp order by sal desc;76

77 函数:78

79 链接字符串 concat(str1,str2,...)80 SELECT CONCAT(id,name,sex) FROMtb_student;81

82

83 转换大小写: lower(小写),upper(大写)84 SELECT LOWER(NAME) FROMtb_student;85

86 SELECT upper(NAME) FROMtb_student;87

88 返回字符串的长度:89 SELECT LENGTH(NAME) FROMtb_student;90

91 日期函数,92 返回当前时间93 SELECTnow();94

95 SELECT * FROMtb_emp96 WHERE YEAR( hiredate) = 1981; 查询年=1981年97

98 ifnull函数,如果字段不为null,则取第二个值,如果为空,取第三个值99 select comm,ifnull(comm,comm+100,100) as comm2 fromtb_emp;100

101 ifnull函数,如果字段不为null,则直接返回该值,如果为空,取第二个102 select comm,ifnull (comm,100)as comm2 fromtb_demp;103

104 条件判断语句:105 select ename,job,sal,comm'原定奖金'

106 case

107 when comm is null then 1000

108 elsecomm109 end as'奖金'

110

111 fromtb_demp;112

113 聚合函数:114

115 AVG平均数116 SUM总数117 MAX最大数118 MIN最小数119 count统计120

121 group by分组,122 分组之后不能用where,换成having,123 having是分组之后再进行筛选 ,where和having都是用来做条件限定的,但having只能用在groupby之后124

125 order by排序,放在having之后126

127 select deptno ,avg(sal),max(sal),min(sal),sum(sal),count(1)128 fromtb_demp129 group bydeptno130 having avg(sal)>200

131 order by avg(sal) asc;132

133

134 limit,常常用来分页,135 selectlimit offset start ,row_count136 offset_start: 第一个返回记录行的偏移量,默认为0,137 row_count:要返回记录行的最大数目138

139 select * from tb_demp limit 5; 检索前五个记录140 select * from tb_demp limit 5,10; 检索记录行6-10的记录141

142

143 select基本语法:144 selectselection_list 选择哪些列145 fromtable_list 从何处选择行146 whereprimary_constarint 行必须满足什么条件147 group bygrouping_colimns 怎么样对结果分组148 havingsecondart_constraint 行必须满足的第二个条件149 order bysorting_columns 怎么样对结果排序150 limit offset_start row_count 结果限定151

152

153 多表连接查询:154 #交叉连接:155

156 select count(*) from tb_emp; #17

157

158 select count(*) from tb_demp; #4

159

160 select * from tb_emp,tb_dept #68 = 17*4

161

162 select * from tb_emp cross jointb_dept;163

164

165 内连接:连接条件就是主外键关联166 select * from tb_demp e,tb_demp d where e.deptno =d.deptno;167

168 select * from tb_dept inner jointb_emp169 on tb_dept.deptno =tb_emp.deptno;170

171 外连接:(不仅列出与连接条件相匹配的行,还列出左表,右表或者两个表中所有符合where过滤的数据行)172

173 在外连接中,某些不满足条件的列也会显示出来,也就是说,只限制其中的一个表的行,174 而不限制另一个表175

176 左外连接:177 tb_dept 做主表,左边的表为主表,左边的记录全部显示,如果没有找到记录则补null178

179 select * from tb_dept left jointb_emp180 on tb_dept.deptno =tb_emp.deptno;181

182 orcale :183 select * from tb_emp e,tb_dept d where e.deptno = d.deptno(+)184

185

186

187 自连接:188

189 select c.name '类别名',c2.name'父类别名'

190 from tb_course c left jointb_course c2191 on c.pid =c2.id;192

193 select c.name '类别名',c2.name'父类别名'

194 fromtb_course c , tb_course c2195 where c.pid =c2.id;196

197

198

199 索引:200 作用:在数据库中来加速对表的查询201 创建:自动在主键和唯一键上面创建索引202

203 手动创建:create indexindex_tb_student_name204 ontb_student(stu_name)205

206 使用索引,在where之后加上索引,提高查询效率207

208 视图:(使复杂查询变得简单)209

210 create view emp_v_10 as

211 select empno as部门编号,ename 员工姓名,sal 工资212 fromtb_emp213 where deptno = 10;214

215 select * fromemp_v_10;216

217

218

219

220

221 set @i=1;222

223

224 select @i;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
限时福利1:购课进答疑群专享柳峰(刘运强)老师答疑服务 为什么需要掌握高性能的MySQL实战? 由于互联网产品用户量大、高并发请求场景多,因此对MySQL的性能、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。 为了让大家快速系统了解高性能MySQL核心知识全貌,我为你总结了「高性能 MySQL 知识框架图」,帮你梳理学习重点,建议收藏! 【课程设计】 课程分为四大篇章,将为你建立完整的 MySQL 知识体系,同时将重点讲解 MySQL 底层运行原理、数据库的性能调优、高并发、海量业务处理、面试解析等。 一、性能优化篇: 主要包括经典 MySQL 问题剖析、索引底层原理和事务与锁机制。通过深入理解 MySQL 的索引结构 B+Tree ,学员能够从根本上弄懂为什么有些 SQL 走索引、有些不走索引,从而彻底掌握索引的使用和优化技巧,能够避开很多实战中遇到的“坑”。 二、MySQL 8.0新特性篇: 主要包括窗口函数和通用表表达式。企业中的许多报表统计需求,如果不采用窗口函数,用普通的 SQL 语句是很难实现的。 三、高性能架构篇: 主要包括主从复制和读写分离。在企业的生产环境中,很少采用单台MySQL节点的情况,因为一旦单个节点发生故障,整个系统都不可用,后果往往不堪设想,因此掌握高可用架构的实现是非常有必要的。 四、面试篇: 程序员获得工作的第一步,就是高效的准备面试,面试篇主要从知识点回顾总结的角度出发,结合程序员面试高频MySQL问题精讲精练,帮助程序员吊打面试官,获得心仪的工作机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值