四、Mysql练习题总结

这篇博客总结了MySQL的实战练习,包括利用%和Mod运算判断数字奇偶,LEFT JOIN的使用,以及通过子查询进行表连接。还介绍了如何在SQL中创建表、插入数据、添加注释、创建视图和索引,以及使用触发器、删除、更新和聚合函数等高级操作。此外,讨论了如何处理字符串、单引号输入、字符串长度计算和使用窗口函数等。
摘要由CSDN通过智能技术生成

做题小结:

1.判断奇偶(SQL15):

取余数:%

比如判断为奇数where emp_no % 2 = 1

Mod(a,b) 在sql中的意思是 a / b 的余数(即 a % b )

基础用法:如果id需要是偶数或者奇数时就可以使用mod。

mod(id,2)=1 是指id是奇数。

mod(id,2)=0 是指id是偶数。

用位运算:where e.emp_no & 1 = 1

计算机中奇数=XXXXXXX1,偶数位=XXXXXXX0

奇偶&运算

奇&1(00000001)=1

偶&1(00000001)=0

计算机中&运算的性能要高于四则运算

(运算规则:0&0=0;  0&1=0;   1&0=0;    1&1=1;

即:两位同时为“1”,结果才为“1”,否则为0)

"按位与"运算符 比如a&b;

表示把a和b进行二进制的按位与运算

与的计算规则是,如果两个数在相同的位置上都为真(或为1),其结果为真(输出1),如果两位数中在相同的位置上有一位为假(或为0)者结果为假。

2.两个(left)join连接:直接先写好前面一个后面加(left)join

select e.last_name,e.first_name,de.dept_name

from employees e left join

dept_emp em on e.emp_no=em.emp_no

left join departments de on de.dept_no=em.dept_no

同时还可以直接用and加上表连接限制条件而不需要再用where

select e.emp_no,(s1.salary-s2.salary) as growth

from employees e

inner join salaries s1 on s1.emp_no=e.emp_no and s1.to_date="9999-01-01"

inner join salaries s2 on s2.emp_no=e.emp_no and s2.from_date=e.hire_date

order by growth asc

3.from后面可以跟两个子查询,直接用逗号隔开就行

select n1.emp_no,n2.emp_no,n1.salary,n2.salary

from

(select e1.emp_no,e1.dept_no,s1.salary,e1.to_date

from dept_emp e1 left join salaries s1 on e1.emp_no=s1.emp_no) n1,

(select m2.emp_no,m2.dept_no,s2.salary

from dept_manager m2 left join salaries s2 on m2.emp_no=s2.emp_no) n2

where n1.dept_no=n2.dept_no and n1.salary>n2.salary

and n1.to_date='9999-01-01'

4.有时候不一定需要join 来连接表,直接from+逗号隔开也可以,后面where中和join一样加上点隔开。

SELECT f.title, f.description

FROM film f, film_category fc, category c

WHERE f.film_id = fc.film_id

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值