数据库基础

数据库的介绍

数据库是用来存储数据的在这个过程中借助sql语言对数据精选操作管理查询

数据库按照:库表数据三个层级进行组织

SQL的概述和ddl语法

SQL语言的概述

操作数据库的标准语言

分类:数据定义:DDL

数据操作:DML

数据控制:DCL

数据查询:DQL

SQL语法的特性

1、大小写不敏感

2、SQL语句是以分号结尾的语句

3、SQL是支持注释的:

DDL-库管理

表中常用操作:

mysql 中的数据类型

定长字符串的性能较好

DDL中表操作-修改

1、添加字段

ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称';

2、修改字段

修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);

修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

3、删除字段

TRUNCATE TABLE 表名;

删除整张表:drop table 表名;

DDL小结

DML

DML是对数据进行增删改的三个操作;

添加数据 (insert)

修改数据(update)

删除数据(delete)

添加数据

1、给指定的字段添加数据

INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);

2、给全部字段添加数据

insert into表名 values(值1,值2.......)

3、批量添加数据

insert into表名(字段1,字段2,.......)values(值1,值2,......),(值1,值2,......),(值1,值2,......);

指定字段名即给指定的字段修改数值,未指定代表给所有的值添加数据

insert into 表名values(值1,值2,......),(值1,值2,......),(值1,值2,......);

注意事项: 插入数据时指定的字段顺序需要与值的顺序是一一对应的;

字符串和日期型的数据应该包含在引导值中;

插入的数据大写哦应该在字段的规定范围之内;

更新和删除

1、修改数据

update 表名 set 字段名1-值1,字段名2-值2,........[where 条件];

没有where即更新所有的表

2、删除数据

delete from 表名 [where 条件]

没有where即删除整张表

DQL

数据查询语言,用来查询数据

查询关键字:

基本查询

1、查询多个字段

select 字段1,字段2,....from 表名;

select *from 表名;(实际开发中尽量罗列所有的字段而不是写*)

2、设置别名

select 字段1[as 别名1],字段2[as 别名2]....from 表名;

3、去除重复记录

select distinct 字段列表 from 表名;

实例:

条件查询(where)

1、语法

select 字段列表 from 表名 where 条件列表;

2、条件

实例:

聚合查询(count、max、min、avg、sum)

1、介绍

将一列数据作为一个整体进行纵向操作;

2、常见的聚合函数

3、语法

select 聚合函数 (字段列表)from 表名;

使用聚合函数所有的null值不参加运算

实例:

分组查询(group by)

1、语法

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组过滤条件]

2、where和having之间的区别

执行的时机不同:where是对分组之前的数据进行过滤,不满足where的数据不参加分组;having是对分组之后的数据进行过滤;

判断的条件不同:where不能对聚合函数进行判断而having可以;

实例:

排序查询(order by)

1、语法

select 字段列表 from 表名 order by 字段1,排列方式1,字段2,排列方式2;

2、排序方式

asc:升序(默认值),在编写的过程中可以省略

desc:降序

实例:

分页查询(limit)

1、语法

select 字段列表 from 表名 limit 起始索引,查询记录数;

注意: 起始索引从零开始,起始索引=(查询页码-1)*每页显示记录数;

分页查询是数据库的方言,不同数据库的实现有所不同;

如果查询的是第一页数据,起始索引可以直接省略,直接简写为limit 10;

实例:

大综合实例

DCL

介绍

DCL数据控制语言,用来管理数据库 用户、控制数据库的访问权限;

DCL用户管理

1、查询用户

2、创建用户

3、修改用户密码

4、删除用户

注意: 主机名可以使用%通配;

这类sql开发操作比较少,主要是管理员使用

DCL控制权限

常用权限

1、查询权限

show GRANTS FOR '用户名'@'主机名';

2、授予权限

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

3、撤销权限

revoke 权限列表 on数据库名.表名 from '用户名'@'主机名';

注意:多个权限之间使用逗号进行分割;

授权时数据库名和表名可以使用*进行替代;

DCL总结

函数

函数是指一段可以被另一段程序调用的程序或代码

字符串函数

常用函数

A. concat : 字符串拼接 select concat('Hello' , ' MySQL');

B. lower : 全部转小写 select lower('Hello');

C. upper : 全部转大写 select upper('Hello');

D. lpad : 左填充 select lpad('01', 5, '-');

E. rpad : 右填充 select rpad('01', 5, '-');

F. trim : 去除空格 select trim(' Hello MySQL ');

G. substring : 截取子字符串 select substring('Hello MySQL',1,5);

案例:

数值函数

常见函数

A. ceil:向上取整 select ceil(1.1);

B. floor:向下取整 select floor(1.9);

C. mod:取模 select mod(7,4);

D. rand:获取随机数 select rand();

E. round:四舍五入 select round(2.344,2);

日期函数

常见函数

A. curdate:当前日期 select curdate();

B. curtime:当前时间 select curtime();

C. now:当前日期和时间 select now();

D. YEAR , MONTH , DAY:当前年、月、日

select YEAR(now());

select MONTH(now());

select DAY(now());

E. date_add:增加指定的时间间隔 select date_add(now(), INTERVAL 70 YEAR );

F. datediff:获取两个日期相差的天数 select datediff('2021-10-01', '2021-12-01');

流程控制函数

常见函数

A. if select if(false, 'Ok', 'Error');

B. ifnull

select ifnull('Ok','Default');

select ifnull('','Default');

select ifnull(null,'Default');

C. case when then else end

math等三个数值不是具体数字是一个范围,所以不可以使用默认的,需要去掉math等数值,直接比较(反例见上面C部分)

函数总结、

约束

1、概念

约束时作用于表中字段上的规则。用于限制存储在表中的数据

2、目的

保证数据库中的数据的正确、有效性和完整性

3、分类

约束时作用于表中字段上的,可以在创建表/修改表的时候添加约束

实例:

外键约束

语法

添加外键

案例:

为emp表的dept_id字段添加外键约束,关联dept表的主键id。

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references

dept(id);

更多实时更新

https://www.yuque.com/docs/share/7c9ea0f6-cdce-49e6-9d3b-52afe1ad415d?# 《数据库》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值