MySQL_Ch_1
数据库的核心操作 CRUD
create
创建 数据库创建语句 增
read
读取 查
update
更新 改
delete
删除 删
SQL语句分类
-
数据查询语句(重要)——
DQL
-
数据操作语句——
DML
增、删除、修改 ——针对数据
-
数据库定义语句 ——
DDL
增、删、改
针对的数据库对象
可以称为数据库对象:表、视图、序列、索引、列 (结构性)
-
数据库控制语句 ——
DCL
用于数据库系统的权限设置
-
事务处理语句 ——
TPL
(事务控制语句TCL
)
查询语句
-
环境中需要建立一个自己的数据库
关键词、列表、表名都不区分大小写
-
字符串拼接
MySQL中字符串是用单引号包含的’ABC’
显示员工编号,员工的姓名,职位是xxx 格式,工资
concat()
字符串拼接函数 -
数值计算
查询员工姓名和员工的全年工资
null如果参与运算避免方法
ifnull()函数
– 三要素:
– 1) 函数功能:当expr1
的结果是null
时,使用expr2
结果作为它的函数的整体结果
– 2)函数的参数 小括号里填什么:参数1:表达式 参数2: 表达式
– 3)函数的返回值实际操作中,尽量避免录入空值null
select ename,sal,(sal + ifnull(comm,0)) * 12 as 年收入 from emp
distinct()
去除重复的数据查询所有部门的编号
select distinct deptno from emp;
– 注意:
distinct
只能放在select
和列名之间的位置错误写法: select job,distinct deptno from emp;
– from emp select job 14条数据 14个部门编号
select distinct job ,deptno from emp;
-
条件查询
–
select...from...where
不等号建议使用
<>
-
查询条件中的关系
– 1) 与关系and
– 查询在10号部门工作,并且月薪高于2000,并且职位是MAMAGER的员工信息select * from emp where deptno = 10 and sal > 2000 and job = 'MANAGER';
– 注意:MySQL下对大小写不敏感
– 2) 或关系or
– 查询在10号部门工作或者工资高于2000的员工select * from emp where deptno = 10 or sal > 2000;
– 3) 如果and和or一起使用
–and的优先级比or高
– 查询在10号部门工作或工资高于2500并且职位是MAMAGER的员工信息 #句子有歧义则有如下两种写法select * from emp where deptno = 10 or sal > 2500 and job = 'MANAGER';
select * from emp where (deptno = 10 or sal > 2500) and job = 'MANAGER';
– 关于它们的漏洞 注入漏洞 ——早期的游戏盗号方法
– 例如:用户登录
– 后台数据库有一个判断标准:用户名和密码select * from user where username = 'haha' and password = '123';
– 利用and和or的优先级获取密码
select * from user where username = 'haha' and password = '' or 1 = 1;# False or True ==>True