详细的mysql基础知识

mysql服务器端、客户端安装

服务器端安装

在ubantu里,保证能联网
在命令行里直接输入

sudo apt-get intall mysql-server

该操作会直接到网络上下载,在此期间会提醒你设置密码,根据提示设置Mysql密码即可

在这里插入图片描述
如果显示没有找到显示的包,是软件包源的问题,
我们将源替换为阿里的源
(1)终端执行命令:sudo chmod 777 /etc/apt/sources.list 更改文件权限使其可编辑;

(2)执行命令: vi /etc/apt/sources.list 打开文件进行编辑;
在这里插入图片描述
(3) 将里面的内容替换为

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

(4) 保存退出
(5) 在终端中输入sudo apt update更新源

查看是否安装成功

通过查看进程中是否存在mysql服务

ps ajx |  grep mysql

在这里插入图片描述开启服务:sudo service mysql start
停止服务:sudo service musql stop
重启服务:sudo service mysql restart

配置

配置文件目录为/etc/mysql/mysql.cnf
在这里插入图片描述
进入mysql.conf.d目录
在这里插入图片描述
打开mysqld.cof文件
主配置如下:
在这里插入图片描述可以设置服务器相关的端口号、ip等

客户端安装

sudo apt-get install mysql-client

直接安装即可

数据库的使用

mysql -u用户名 -p密码

数据类型和约束

常用数据类型

  • 整形:int
  • 小数:decimal
  • 无符号约束:unsigned
  • 日期时间:
    date:4字节,“2000-01-01”
    time:3字节,“15:00:00”
    datetime:8字节,“2000-01-01 15:00:00”
    year:1字节:‘2000’
  • 枚举类型:enum:该类型用于对某一种进行多个列举,在使用时只能使用列举的数据
  • 字符类型
    char:该类型如果指定了长度,不管数据的使用是否到达了该长度,系统会默认你为设置的那个长度
    varcahr:不管你设置了多长,系统会默认你数据长度为多长该空间就是多长
    text:用于存储大文本数据

常用约束

约束用于对该字段进行限制

  • primary key:主键约束,用将该字段设置为主键
  • mot null:非空约束,用限制该字段不能为空
  • unique:唯一约束:用于限制该字段内容不允许重复
  • 默认值约束:default 默认值
  • 自动生长约束:auto_increment
  • foreign key:外键约束,用于对关系字段进行约束,一般用于与其他表建立联系,该字段存储的内容为其他表的主键,该约束限定了该表中的数据,都可以在其他表中找到
    用法foreign 本表名(外键字段) references 外表名(外表主键字段))

数据库操作

  • 链接数据库
    mysql -u用户名 -p密码
    mysql -u用户名 -p

  • 查看所有数据库
    show databases;

  • 创建数据库
    create database 数据库名;

  • 查看创建当前数据库的语句
    show create database 数据库名
    在这里插入图片描述

  • 使用数据库
    use 数据库名;

  • 查看当前使用数据库
    select database();

  • 删除数据库
    drop database 数据库名;

数据表操作

  • 查看数据库中所有表
    show tables;

  • 创建表
    create table 表名(字段 类型 约束, [字段, 类型,约束]);

  • 查看创建表语句
    show create table 表名;
    在这里插入图片描述

  • 查看表结构
    desc 表名;

  • 删除表
    drop table 表名;

修改表

  • 添加字段
    alter table 表名 add 字段名 类型;

  • 修改字段不,添加约束或修改类型
    alter table 表名 modify 字段名 类型或约束;

  • 修改字段,重命名
    alter table 表名 change 原字段名 新字段名 类型 约束;

  • 删除字段
    alter table 表名 drop 字段名;

数据的增删改查

添加

  • 全列添加
    insert into 表名 values(值);

  • 部分添加
    insert into 表名(字段) values(值)

  • 多行添加
    insert into 表名(字段) values
    (值),
    (值);

  • 将使用select查询到的数据添加
    insert into 表名 (select * from );

修改

update 表名 set 字段=值,字段=值 where 条件

删除

  • 物理删除
    delect from 表名 where 条件;
    该删除是将该数据直接从数据表中删除

  • 逻辑删除
    该删除是在逻辑上将该表删除,实际上该数据还存在表中
    使用两个bit类型的字段表示数据是否显示,
    要删除某一条数据是只需要将该数据的显示字段设置为0,不显示字段设置为1;
    就可以表示该数据已经被删除
    在这里插入图片描述

查询

普通查询

select * from 表名;查询该表全部数据
select 字段 from 表名;查询指定字段数据
select 字段 as 别名 from 表名;为字段起别名
select 字段 from 表名 as 别名;为表起别名
select distinct 字段 from 表名;去除字段的重复行

条件查询

  • select * from 表名 where 条件;

  • 可以使用的条件判断符
    <、>、<=、>=、<> !=

  • 逻辑运算符
    and :当两边条件都满足是为真
    or :当两边有一边满足时为真
    not:取反,将条件结果取反

模糊查询

like
用法 : name like “王%”:查询姓王的学生
%:替换一个或多个
_:替换一个
rlike 正则:用于匹配正则

范围查询

  • in(范围)
    用于匹配字段是否在该范围内,在则匹配
    例:name in (“张三”,”李四“,”王五“);

  • not in
    不在则匹配

  • 空判断
    is null
    字段为空的满足

排序查询

将查询到的结果按照升序或者降序进行排序
select * from 表名 order by asc/desc;
order by 排序字段
asc:升序
desc:降序

聚合函数

  • count:用于将查询到的结果进行统计计数
  • max:查询结果中最大值
  • min:查询结果中最小值
  • avg:求结果中的平均值
  • sum:用于将查询到的结果进行求和

分组查询

用于将不同类的数据进行分组,将同一类的数据放在同一个组内,方便进行操作
group by 分组字段
通常配合聚合函数使用
例:统计男女生的数量分别多少人
SELECT gender,COUNT(*) AS 数量 FROM student GROUP BY gender;

分页查询

用于表示在该页显示多少条数据,从哪条开始显示
limit 开始位置,数量;
例:查询前五个数据
select * from student limit 0,5;
表示从第一条数据开始查询五个

链接查询

当查询的需求要用到两张或多张表时则需要用到链接查询,
链接顾名思义就是将两张或

  • 左链接
    关键字:left join on
    语句:select * from 表名a left join 表名b on 建立关系的字段;
    左连接,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
    左右表根据left关键字的位置定义
  • 右链接
    关键字:right join on
    语句:select * from 表名a right join 表名b on 建立关系的字段;
    右连接,右表的记录将会全部表示出来,而左表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
    我们一般不使用该关键字,当需要使用右连接时我们一般使用左连接将数据比表的位置交换
  • 内链接
    关键字:inner join on
    语句:select * from 表名a inner join 表名b on 建立关系的字段;
    说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。

自链接

顾名思义自己链接自己
通常用在一张表中存在关系的时候
例如:一张表中存在,级别_id,上一级字段_id
要想查找每个级别的上一级
select * from 表名 as 别名a inner join 表名 as 别名b on 别名a.级别_id = 别名b.上一级字段_id;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值