计划是:
- 早上查题,背一遍然后检查自己一遍以上
- 中午有时间就背一遍以复习昨天的为主
- 晚上背一遍,第二天中午再看一眼:day+1
- 第四天课间看一遍:day+3
- 第七天课间看一遍:day+6
- 第十五天课间看一遍:day+14
mysql和Oracle的基本逻辑结构
基本逻辑结构
Mysql
1.通过(用户)建立连接
2.选择数据库
3.数据库内部由一些表和其他数据库对象组成
用户->数据库->表
Oracle
1.选择数据库
2.数据库里包含很多个用户,选择某个用户进行连接
3.用户有一些表和其他数据库对象组成
数据库->用户->表
mysql服务命令:
net stop mysql 停服务
net start mysql 起服务
sc delete mysql 删除服务
SQL语句: 结构化查询语言
DQL:数据查询语言:mysql数据库本身对多表友好,对子查询支持不太好
DML: 数据操作语言(增加数据,修改数据,删除数据)
DDL: 数据定义语言
DCL: 数据控制语言(数据使用的权限)
TPL: 事务处理语言
存储引擎:
MyISAM | InnorDB | |
---|---|---|
优点 | 性能快 | 全面 |
缺点 | 不支持事务 | 性能不快 |
缺点 | 不支持外键 |
like :模糊查询
通配符:
" __":一个长度的任意字符
" %":任意长度的任意字符
escape:
声明转义字符@
select * from emp where ename like '%@%%' ESCAPE '@'
自定义排序:
Order by FIELD(job,'PRESIDENT','ANALYST','MANAGER','CLERK','SALESMAN')
自然连接 ,字段名和数据类型都相等
单行函数,多行函数的区别。常用函数?
系统自带函数,单行函数,多行函数(又叫:聚合函数,分组函数)
单行函数和多行函数的区别:单行函数数据源几行,结果有几行;多行函数的数据源无论多少行结果永远只有一行。
单行函数
字符 | |
---|---|
concat | 多个字符串拼接 |
substring | select SUBSTRING(‘abcdefg’,3,4); |
instr | select instr(‘abcdef’,‘c’) 返回一个字符串在另一个字符串中的位置 |
length | 字节数 |
format | 数字格式化 : select format(1234567.9876,2); |
lower | |
upper | |
trim | 去两头空格 |
reverse | reverse(‘abc’); 反转 |
数字 | |
---|---|
sign | 判断俩数大小 |
floor | |
ceil | |
round | 默认保留到个位,可以指定 |
truncate | 截取,截到哪位,其他的都不要,没有进位 |
power | 求数字的次幂 |
rand | 求随机数 ,也有种子 |
日期 | |
---|---|
now | |
date_add | select DATE_ADD(‘2018-1-1’,INTERVAL 1 hour); |
timestampdiff | 求两个时间点中间差多长时间select timestampdiff(month,‘2018-1-2’,‘2019-1-1’); |
date_format | elect DATE_FORMAT(‘1981-4-5 1:2:3’,’%Y@%m@%d %h@%i@%s’) |
unix_timestamp | 1970到现在的毫秒数 |
FROM_DAYS | 通过天数差额算年月日 |
通用型 | |
---|---|
if | select IF(1=3,1,2) |
ifnull | select sal+ifnull(comm,0) |
case | …case when sal < 1000 then…when…else…end from |
其他函数 | |
---|---|
Inet_aton() | select Inet_aton(‘192.168.0.1’); |
Inet_ntoa() | select Inet_ntoa(3232235521); |
多行(聚合)函数:进行统计分析
多行 | |
---|---|
sum | 求和 |
avg | 平均数 |
max | 最大 |
min | 最小 |
count | 计数 |
多行函数的计算:自动忽略空值
DML:增删改
set global autocommit = 0
删除delete
delete emp,dept from emp join dept on emp.deptno = dept.deptno;
插入数据insert
insert into tabname (cloumname[,...] ) values (value[,...])
insert into testa (haha) select haha from testb;
修改update
update tablename set columnName = value [,...] [where] [...]
update dept set loc =”未知地点“,dname = "神秘部门'' where deptno = 1
&和&&的区别
相同点:&和&&都可以用作逻辑与的运算符,表示逻辑与(and)。
不同点:
(1)&&具有短路的功能,而&不具备短路功能。
- 当&运算符两边的表达式的结果都为true时,整个运算结果才为true。而&&运算符第一个表达式为false时,则结果为false,不再计算第二个表达式。
(2)&还可以用作位运算符。
- 当&操作符两边的表达式不是boolean类型时,&表示按位与操作。
我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如:0x31 & 0x0f的结果为0x01
TPL:事务处理语言 (处理事务)
- 什么叫事务?
commit:事务提交
rollback:事务回滚
事务用来解决数据操作过程中的数据一致性问题
事务通过当前会话的第一个dml语句开始,到第一个tpl语句结束
- 事务特点:
原子性:一个事务不可被分割
一致性:事务要不然全部成功,要不然全部失败
隔离性:事务之间互相不影响
持久性:事务提交永远改变,事务回滚永远失效