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 mariadb2.3 确认服务启动成功3.进入使用mariadb3.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(字段名) 统计指定字段不为空的行数;例: