当前位置:   article > 正文

mysql的知识点_myspl

myspl

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.查询AB/并且:

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.使⽤分组注意事项

  1. 如果分组列中含有NULL 值,那么NULL 也会作为⼀个独⽴的分组存在

  1. 如果存在多个分组列,也就是嵌套分组,聚集函数将作⽤在最后的那个分组列上。

  1. 如果查询语句中存在WHERE ⼦句和ORDER BY ⼦句,那么GROUP BY ⼦句必须出现在WHERE ⼦句之后, ORDER BY ⼦句之前。

  1. ⾮分组列不能单独出现在检索列表中(可以被放到聚集函数中)。

  1. GROUP BY ⼦句后也可以跟随表达式 (但不能是聚集函数)。

  1. WHERE ⼦句和 HAVING ⼦句的区别。 WHERE ⼦句在分组前进⾏过滤,作⽤于每⼀条记录,WHERE ⼦句过滤掉的记录将不包括在分 组中。⽽ HAVING ⼦句在数据分组后进⾏过滤,作⽤于整个分组。

6.列⼦查询:

Number后面加in

select * from student_score

where number in (select number from student_info

where name = '李二');

7.相关子查询:

EXISTSNOT EXISTS⼦查询

8.连接查询:

  1. 先创建三个表为t1、t2、t3

  1. 将三个表连接起来:

笛卡尔积:select * from t1,t2,t3;

  1. 左外连接:

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 触发器和事件

  1. 创建触发器

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 事件名;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/490657
推荐阅读
相关标签
  

闽ICP备14008679号