赞
踩
MySQL
2022.8.4 数据库
1.Myspl是一个关系型数据管理系统(RDBMS)
2.Myspl中的对象:
Database数据库:
Table:表
View:视图
Function:函数
Procedure:存储过程
3.数据库对象的操作:
Create:创建对象
Drop:删除对象
Alter:修改对象
4.Trigger:触发器
Index:索引:提高查询的性能,创建了索引不一定会提高查询速度
Trigger、index只有creat、drop操作
5.Ascii
大写A:65开始
小写a:97开始
数字0:48开始
6.myspl的端口号:3306
2022.8.5 查询、数值类型
1.查询当前系统的日期时间
select now() from dual;
2.查询hospital_set表的所有列
(1)Use buba1
(2)select * from buba1.hospital_set;
(3)点中buba1的文件,查询-新建查询
3.查询:
select
4.字符集:
character set
5.排序集:
collate
4.表中一行数据代表一条记录
5.ORM对象关系映射
O(Java中的类或对象)
R(数据库中的表)
M(映射:表中的列和类中成员变量的对应)
6.数值类型:
整数:tinyint smallint mediumint integer bigint
浮点数:float double(m,d)
定点数:decimal m表示总位数 ,d在表示小数位数
无符号数:数值类型+ unsigned
2022.8.8 增、删、改
1.增加一行
add column major varchar(20);
2.增加的第一列:
后面加first
3.增加到某一列后面:
after+某一列的名字
4.修改表的类型:
modify+列的名字+改掉的类型
5.修改名字:
名字1 +rename to +要修改的名字:
6.删除多个操作:
列名字1+drop column +列名字2
7.添加内容:
insert into 表名(列1, 列2, ...) values(列1的值,列2的值, ...);
8.给表加注释:
在最后加comment(‘…’);
2022.8.9 默认值、外键、主键、不能为空、自增、查询单个列或多个列、去重、分页、分组查询
1.default 默认值
not null 不能为空
primary key 主键
unique 唯一允许为空
auto_increment 自增
zerofill 大于数据显示数据本身,
constraint[外键名称] foreign key(列1,列2……) references 父表名(列1,列2……)
2.查询单个列或多个列:select列名1 as 身份证号, 列名1 as 姓名, from 表的名字;
3.删除表的语句:delete from student_score;
4. 查询单列结果去重:select distinct department from student_info;
5.分页:select * from student_info limit 3,3;
6. 分页计算:limit((页码 - 1) * 每页数据),每页数据
7. 对查询结果排序:order by 列名asc / desc
升序:asc
降序:desc
2022.8.10
1.数据库默认的搜索引擎:
innodb
2.条件:
Where
3.在什么和什么之间:
between and
4.不在什么和什么之间:
not between and
5.执行在括号里面:
In(…)
6.执行不在括号里面:
Not in(…)
7.查询值为空的:
is null
8.查询值不为空的:
is not null
9.查询A和B/并且:
And
10.查询A或者B:
Or
11.通配符:
%:0 个、一个、或多个 _:一个 \_% \%
12.跟什么一样/跟什么不一样:
like/not like
13.逻辑操作符:
Or
Xor
14.小写转大写:
Upper
大写传小写:
Lower
15.提取月份:
select month(‘1980-12-12’)
16.文本处理函数:
select left ('abc123',3)
select right ('abc123',3)
17.提取长度(计算字节数):
select length('abc');
select char_length('0812');
18.去掉两端的字符:
tirm
去掉左边的字符:
Ltrim
去掉右边的字符
Rtrim
19.字符串截取:
substring
把字符串连接起来:
Concat
20.日期
Cordate:返回当前⽇期
Cortime:返回当前时间
Date:将给定⽇期和时间值的⽇期提取 出来
date_add:interval:
datediff
date_format时间字符串格式化
21. 聚集函数:
Count:统计多少行
Max:最大的行
Min:最小的行
Avg:平均数
Sum:求和
2022.8.11 分组查询、列子查询、子查询、连接查询
1.分组查询:
group by
2.创建分组:
针对某个列,将该列的值相同的记录分到⼀个组中
3.作⽤于分组的过滤条件:
having
4.例子:
select subject,avg(score)
from student_score
where score > 60
group by subject
having avg(score)>90;
5.使⽤分组注意事项:
如果分组列中含有NULL 值,那么NULL 也会作为⼀个独⽴的分组存在。
如果存在多个分组列,也就是嵌套分组,聚集函数将作⽤在最后的那个分组列上。
如果查询语句中存在WHERE ⼦句和ORDER BY ⼦句,那么GROUP BY ⼦句必须出现在WHERE ⼦句之后, ORDER BY ⼦句之前。
⾮分组列不能单独出现在检索列表中(可以被放到聚集函数中)。
GROUP BY ⼦句后也可以跟随表达式 (但不能是聚集函数)。
WHERE ⼦句和 HAVING ⼦句的区别。 WHERE ⼦句在分组前进⾏过滤,作⽤于每⼀条记录,WHERE ⼦句过滤掉的记录将不包括在分 组中。⽽ HAVING ⼦句在数据分组后进⾏过滤,作⽤于整个分组。
6.列⼦查询:
Number后面加in
select * from student_score
where number in (select number from student_info
where name = '李二');
7.相关子查询:
EXISTS和NOT EXISTS⼦查询
8.连接查询:
先创建三个表为t1、t2、t3
将三个表连接起来:
笛卡尔积:select * from t1,t2,t3;
左外连接:
left join………on
2.右外连接
right join………on
3.内连接:
(inner)join
4.自连接:
select t . number , t. name , t .major
from student_info s inner join student_info t
on s . major = t . major and s. name = '李二';
5.组合查询(去重)
union
6.组合查询(不去重)
union all
1.Ingnore
2.更改数据:
Update………set(一定加where条件)
3.视图就是一条select语句
4.删除视图用
drop
5.创建视图:
create view v-student_info as select namber,name,deparmenr
from student_info;
6.from后面可以跟:
视图名、表名、select语句
7.内嵌视图:
select s.* from(select number,name from student_info) as s ;
8.定义变量
set @a = 1;
select @a;
9.select count(*) from student_score into @b;
select @b;
1.定义函数
create function 函数名([参数列表])
returns 返回值类型
begin
declare 局部变量 类型 默认值;
函数体
return 返回值;
end
2.定义函数的调用:
select avg_score('数学') from dual;
3.存储过程
create procedure 存储过程([参数列表])
begin
语句列表
end;
4.存储过程的调用:
Call insert_student_score (2,'语文',33);
5.循环
Loop
End loop
6.游标使用的4个步骤:(游标不能单独使用,一般和unction和procedure 一起使用)
1.创建游标
注:如果function和procedure中有局部变量,则创建游标要放到局部变量的后面
declare 游标名称 cursor for 查询语句
declare continue handler for not found set no_data = 0;
2.打开游标
opon 游标名称;
3.使用游标访问记录
循环语句
fatch 游标名称 into 变量1,变量2;
循环语句结束;
4.关闭游标
close 游标名称;
7.行转列:
select number,
sum(case subject when '语文' then score end) as chinese,
sum(case subject when '数学' then score end) as Maths
from student_score group by number;
2022.8.17 触发器和事件
创建触发器
create trigger 触发器名
{before|after}
{insert|delete|update}
on 表名
for each row
begin
内容
end;
2.查看所有的触发器:
show triggles;
3.查看某个具体的触发器:
show create triggle 触发器名;
4.删除触发器:
drop trigger 触发器名;
5.创建事件
create event 事件名
on schedule
{
at 某个确定的时间点
every 期望的时间间隔[start datetime][end datatime]
}
Do
6.查看所有事件:
show events;
7.查看具体的事件:
show create event 事件名;
8.删除事件:
drop event 事件名;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。