0
点赞
收藏
分享

微信扫一扫

Mariadb 数据库


1,mysql是关系型数据库,常用安装包分为mysql和mariadb,因mysql可能存在闭源的风险,这里使用mariadb;

2,安装mariadb 

2.1 服务器配置本地yum仓库

2.2 安装启动mariadb服务

[root@localhost ~]# yum -y install mariadb-server mariadb

[root@localhost ~]# systemctl restart mariadb

2.3 确认服务启动成功

3.进入使用mariadb

3.1 默认没有密码 使用mysql命令进入数据库服务;

3.2 查看当前mariadb服务的默认数据库;

show databases;

3.3 创建并进入练习库 schooldb;

create database schooldb;

use  schooldb;

3.4 常用表字段类型

3.4.1 数字型 常用为

int 整数型

float 浮点型 float(5,2) 表示总长度5位,小数位2位;

3.4.2 字符串型

varchar (n)   使用最多,n表示长度

char(n)

3.4.3 日期型

year  格式 ‘‘2022’’

date 格式“2020-03-09”

datetime  格式 “2020-03-09 14:50:20”

4.建表语句

create table 表名(字段名  字段类型,。。。);

例:

4.1数据完整性

4.1.1 实体完整性:

指数据表中应该插入那些数值

约束体现:

primary key 主键约束 ;

unique 唯一约束;

例:设置单一主键

   : 

例: 设置多个联合主键

例:设置唯一约束

4.1.2 域完整性

考虑如何限制向表中输的数值的范围;

约束种类:

foreign key () 外键约束

default 默认值约束

not null  非空约束

例:外键约束 ;一个表中的外键值指向另一个表中的主键

例: 默认值约束:指定某列的默认值

4.1.3 引用完整性

保证主关键词(主键所在表)和外部关键词(外键所在表)之间的参照关系

4.1.4 自定义完整性

所涉及的数据需要满足语义要求;

4.1.5设置字段自动增长;

auto_increment 需满足以下条件:

 a,一个表中只能有一个auto_increment

 b,和主键配合使用,不能单独使用

 c,数据类型只能是整数类型

5.修改表结构语句

1.修改表名

alter table 旧表名 rename to 新表明  ;

例: 将表名studentinfo  改为 学生表

alter  table studentinfo  rename to 学生表;

2.修改数据类型

alter  table 表名  modify  字段名  数据类型;

例:将学生表 中 学生姓名字段类型改为 varchar(100)

alter  table 学生表 modify  studentname  varchar(200);  

3.修改列名

alter table 表名 change  旧列名  新列名  字段类型;

例: 修改学生表中学生姓名为sname;

alter  table 学生表  change studentname sname varchar(100);

4.删除列

alter table 表名 drop 列名;

例: 删除学生表email字段;

alter table 学生表 drop email;

5.添加列

alter  table 表名 add  新列名  字段类型;

例: 给学生表添加email字段;

alter table 学生表 add  email varchar(30);

6.修改列的排列位置

alter table 表名 modify 列名 字段类型  after 列名2

例:将学生表id字段放置city后面

alter table 学生表 modify  id int  after  city;

还可以将列放置为第一个位置

例: alter table 学生表  modify id int first ;

6.mysql内置函数

6.1字符串函数

拼接函数:concat(),  返回字符串长度: length()

例:

     去除字符串空格  ltrim()  ,rtrim()  , trim()

例: 

字符串小写转大写  upper()  字符串替换 replace()

例: 

字符串比较 strcmp()

例: 

字符串提取 substring()

例: 

6.2 日期函数

获取当前时间日期的函数 now()  curdate() curtime()

例: 

返回日期对应的月份,数字类型month()  字符类型 monthname()

例:

返回工作日函数 英文名称 dayname(), 1代表周日dayofweek() ,0代表周一weekday()

例:

返回当前时间的显示;当前是本年的第几周 week(); 是本年的第几天 dayofyear();是本月的第几天dayofmonth();

例:

返回当前时间:返回日期年份 year();返回对应季度quarter();返回对应分钟minute();返回对应描述second();

例:

6.3计算时间日期函数

定义变量,日期加一天,date_add(),adddate() ;减一天date_sub(),subdate() ;

例:

日期时间相减 datediff();

例:

6.4数学函数

6.4.1 格式化数字函数format(x,y),将x保留y位小数,并且将整数部分用,分割千分位,小数部分四舍五入;

例:

6.4.2 一个数的绝对值abs(),一个数的平方根sqrt(),向上取整ceil(),向下取整floor(),mod(x,y) x除于y的余数;

例:

6.4.3 随机数函数rand() ,返回x小数位的y位数(截取函数) truncate(x,y);

例:

6.4.4 返回当前结果的符号正数为1,负数为-1,0为0,幂运算power(x,y),返回x的y次方;

例:

6.5系统函数

返回当前数据名 database(),返回当前数据库版本号,返回当前登录用户user();

例:

7.模糊查询与分组查询

7.1模糊查询 : 提取的数据不一定是确切的,允许输入的查询条件也是模糊的,不确定的。

7.1.1 like运算符

模糊查询语法格式:使用like运算符,加通配字符串表达,常用通配字符串 "%"   "_" 两个;

% 表示匹配0-n 个任意字符;

_ 表示匹配单个任意字符;

例:

7.2 分组查询

7.2.1  关键词 group by

例:有以下成绩表

以exam列分组查看 ,看到可以分为4个组;

多列分组查询:

7.2.2  having 子句

作用: 对分组后的数据 增加条件;

例:对成绩分组后,查看成绩大于80 的有那些成绩组    

7.3 聚合函数

对数据进行查询时,经常需要获取某些数据的最大值,最小值,平均值等统计分析信息;

7.3.1 sum() 数据求和 会忽略掉null值

例:获取1号学生的总成绩

7.3.2 max()/min()/avg() 最大值,最小值,平均值

例:获取1号学生的最大成绩,最小成绩,平均成绩;

7.3.3  count() 统计查询结果中包含的函数,两种方式:

a。 count(*)  统计总行数,无论列中时候为空值;

b。count(字段名)  统计指定字段不为空的行数;

例:


举报

相关推荐

0 条评论