首页 > 其他分享 >周总结9

周总结9

时间:2022-11-27 16:25:16浏览次数:35  
标签:总结 where 查询 表名 数据 主键 select

MySQL数据库

数据库的分类

为了统一路径,统一操作方式,统一数据格式

1.关系型数据库

MySQL 开源免费

mariaDB 与Mysql一个作者,免费

Sqlist 小型数据库用于本地测试

pstgreSQL 免费 支持二次开发DIY

Oracle 收费 安全性高

2.非关系型数据库

mongoDB 文档型数据库

redis 最火 使用频率高 缓存数据库

memcache

基本使用

给bin目录添加到环境变量里

打开电脑服务

打开cmd命令窗口 用管理员身份 安装mysql服务

mysqld --install

启动服务net start mysql

修改密码
mysqladmin -u用户名 -p旧密码 password 新密码
登录后修改当前登录密码
set password = password('新密码')

字符编码

mysql 5.6之前的版本是需要我们手动修改底层编码的。
utf8mb4 我们可以在配置文件中进行永久修改
此编码功能强大 并能保存表情

基本语句

库的增删改查
create database 库名;
show databases;  #  查询所有
show create database 库名; #查询单个
alter database 库名 charset='utf8' # 修改库的编码
drop database 库名; # 删除库

表的增删改查
use 库名;  # 进入库
1. 创建表
create table 表名(字段名1 字段类型,字段名2 字段类型)

2. 查询表
show tables;           # 查询所有表
show create table 表名;    #  查询指定表信息
desc 表名;            # 查询表结构
跨库查询表
dese 库名.表名;

3.编辑表
alter table 表名 rename 新表名; # 修改表名

4.删除表
drop table 表名;

记录的增删改查
1.插入数据
insert into 表名 values(数据值1,数据值2);
2.查询数据
select * from 表名;    # 查询表中所有数据
select name from 表名;  # 指定姓名
3.编辑数据
update 表名 set 字段名=新数据 where 筛选条件;
4.删除数据
delete from 表名;
delete from 表名 where id=1

数据库引擎

查看常见的存储引擎的代码: show engines;

innoDB 5.5版本之后默认的引擎

支持事物,行锁,外键

MyIASM 5.5之前版本的默认引擎

存取速度快

Memory 基于内存存取数据

Blackhole 黑洞

创建表的完整语法

create table 表名(
字段 字段类型(数字) 约束条件)

Mysql字段类型

整型

tinyint  1bytes 
smallint  2bytes
int     4bytes
bigint   8bytes

浮点

float	 (存储位数,小数点后位数)
double	 (存储位数,小数点后位数)
decimal  (存储位数,小数点后位数)
精度不同
decimal > double > float

字符类型

char 定长      # 超出报错,不够空格填充
varchar 变成	  # 超出报错 不够有几个存几个

枚举与集合

enum 多选一
set  多选多

日期类型

datetime  年月日时分秒
date     年月日
time     时分秒
year     年 

MySQL约束条件

无符号

取消正负符   unsigned

零填充

zerofill

非空

not null 输入的值不能为空

默认值

default 设置默认值
不传默认使用默认值

唯一值

unique 单列唯一
多列唯一 多个字段类型后+unique

主键

primary key 
 单从约束条件上说是 非空+唯一
innoDB 存储引擎默认一张表必须有一个主键
主键是组织数据的重要条件,并可以提高数据查询的速度
	如果没有指定主键  会采用一个隐藏字段设为主键,隐藏字段我们不能使用 降低了数据查询的速度
	如果有非空且唯一字段,会自动从上到下把第一个非空且唯一的字段升级成主键
                      

自增

auto_increment 
	我们指点的字段数值自增
	该约束条件配合主键一起使用,不能单独出现。一张表只能出现一次
    自增不会随着数据的删除而后退,只会从原来的地方开始自增。
     如果想重置某张表的主键值 可以使用
		truncate t1;  清空表数据并重置主键
		等于格式化了这个表数据全没了

外键

外键字段就是用来记录表与表之间的数据的关系
# 关系种类
 1、一对多
 2、多对多
 3、一对一
 4、没有关系
"""
  关系的判断四字口诀: 换位思考
"""
考虑:
    当我们在建立表时 关联表里有被关联表的主键编号,此时我们在创建的时候就会报错因为含有不存在的数据,因此我们在建立外键字段的时候要遵循:
    1.创建表的时候一定要先创建被关联表(没有外键字段的表)
    2.录入表数据时一定要先录录被关联表(没有外键字段的表)
# 创建外键的语法
就是 主键+自增
primary key auto_increment

MySQL查询关键字

select 与from

select 指定字段查询
from  指定表查询

where筛选

获取指定条件的数据
select * from 表名 where 条件;
可以模糊查询  like
    %: 匹配任意个数的任意字符
    _:匹配单个个数的任意字符

group by 分组

按照字段分组 方便我们查询数据
# 为什么需要分组
分组的好处在于可以快速统计出某些数据
  eg:最大薪资 平均年龄 最小年龄 总人数
聚合函数 进行分组后的数据处理
max 最大值
min 最小值
avg 平均值
sum 求和
count 计数
select * from 表名 group by 要分组的字段名;

having 过滤

 用来对数据筛查,与where本质是一样的。
where 使用在分组前 having 用在分组后

select * from 表名 where 条件 group by 分组的字段名 having 过滤条件;

distinct去重

数据必须一模一样才能进行去重,

多个字段针对 多个字段的数据组合结果
select distinct 去重的字段名 from 表名;

order by 排序

# 排序关键字 
order by...  asc  ---  升序(默认为升序,要升序就不用写)
order by...  desc --- 降序(从大到小)

limit分页

数据特别大的表 可以使用limit 分页进行限制数据展示
select * from 表名 limit 展示数据的条数;
select * from 表名 limit 从第几条数据开始,展示的条数;

regexp 正则表达式

我们可以不适用模糊查询,直接使用正则查询
使用正则查找名称为J开头 结尾是N或者Y
select * from emp where name regexp '^j.*(n|y)$';

多表查询思路

select * from emp,dep;
会将两张表数据对应一遍 拼在一起  称为'笛卡尔积'
但是 他把每一个人对应了所有的部门数据,不合理
应该将有关系的对应到一起才合理

如果我们需要查两张表联合在一起的数据但是两张表的字段可能会起冲突,那么我们只需在   字段名前面加上表名.来指定该字段。
select * from emp,dep where emp.dep_id = dep.id;
我们使用筛选 emp的字段dep_id的值与 dep表的id相同 展示。 

标签:总结,where,查询,表名,数据,主键,select
From: https://www.cnblogs.com/LiaJi/p/16929926.html

相关文章