MariaDB用法——增删改查
数据库四大护法——增insert、删delete、改update、查select
设置禁用mysql删除语句,防止操作者误删数据
mysql_secure_installation mysql基础安全设置,设置密码
create user '用户名'@'远程主机IP' identified by '密码'; 创建用户
flush privileges;刷新策略
mysql -u用户名 -h主机名或ip -p密码
修改密码1
修改密码2:mysqladmin -uroot -p旧密码 password '新密码'
**密码
配置文件添加一行授权跳过密码
直接登录后更改mysql库的user表更改后退出还原配置文件重启服务。
mysql < mysql脚本:导入mysql脚本
show databases;查看库
use 库名;进入数据库
show tables;查看表
show character set;查看字符集
select * from 表名;查看表内容 (*表示显示所有列,也可直接写列名显示指定的列)
desc 表名:查看表的状态
show table status like '表名'\G 查看表的详细状态信息
create database 库名:创建库
drop database 库名:删除库
create table 表名 (列名1 数据类型 unsigned不为负数 not null不能为空 primary key主键,列名2 相关属性,……); 创建表
alter table 表名 add 列名1 tinyint(type) after 列名2; 把列名1添加到列名2后
insert 表名 values(5,'zhang',12305,80,'f');在表里添加一条记录
update 表名 set 列名=更改内容 where id=1(条件,可以写该记录的其他列内容,但是一般都会写主键列,主键列内容不会重复防止改错记录);更改表中的信息
delete from 表名 where 主键列='';删除记录
select 列名 as 别名 from 表名
select * from 表名 where 条件;条件查询
select * from 表名 where 列名 like 'z%';模糊查询(%表示任意字符任意次数)
select * from 表名 where 条件1 and 条件2;查找符合条件1并且符合条件2的记录
select avg(列名) from class;求某列的平均值
select 条件(列名) from 表名 group by 列名;分组统计
通常会对性别、地区等有重复性的列分组,并取出改组的记录中成绩、年龄等数值类的列的最大、最小、平均值等操作。
平均值avg(),最大 max(),最小 min(),该列相同记录的和 count(),该列数据的和 sum()
count()和sum():一个对列的数据(数值型)做运算,一个对记录的个数做运算
avg(), max(), min(), count(), sum()为判断条件时where要换成having
多表查询
select s.name as 学生姓名,t.name as 老师姓名 from students as s inner join teachers as t on s.teacherid=t.tid;(内连接)
select s.name as 学生姓名,t.name as 老师姓名 from students as s left outer join teachers as t on s.teacherid=t.tid;(右外连接)
select s.name as 学生姓名,t.name as 老师姓名 from teachers as s right outer join students as t on s.teacherid=t.tid;(左外连接)
select s.name as 学生姓名,t.name as 老师姓名 from students as s left outer join teachers as t on s.teacherid=t.tid and t.name is null;(右内连接)
select s.name as 学生姓名,t.name as 老师姓名 from teachers as t right outer join students as s on s.teacherid=t.tid and t.name is null;(左内连接)
select stuid,name from students union select tid,name from teachers;(伪完全内连接)
select s.name as 学生姓名,t.name as 老师姓名 from teachers as t right outer join students as s on s.teacherid=t.tid union select s.name as studentname,t.name as teachername from teachers as t left outer join students as s on s.teacherid=t.tid;(完全外连接)