1.Mariadb(mysql)基本操作
2018-06-17 22:53:33来源:未知 阅读 ()
1.:安装与初始化
1)安装
yum install -y mariadb\*
2)初始化
systemctl restart mariadb
systemctl enable mariadb
mysql_secure_installation
查看数据库版本:select 'version' ;
除设置密码外,一直摁"y"。
2.对数据库的操作
1)查库:show databases;
2)创库:create database 库名;
自定义数据库字符集创建数据库:GBK:create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: create database test2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
3)删库:drop database 库名;
4)进库:use 库名;
3.创建表
(1)了解常见数据类型
日期和时间数据类型
MySQL数据类型 |
含义 |
date |
3字节,日期,格式:2014-09-18 |
time |
3字节,时间,格式:08:42:30 |
datetime |
8字节,日期时间,格式:2014-09-18 08:42:30 |
timestamp |
4字节,自动存储记录修改的时间 |
year |
1字节,年份 |
整数型
MySQL数据类型 |
含义(有符号) |
tinyint |
1字节,范围(-128~127) |
smallint |
2字节,范围(-32768~32767) |
mediumint |
3字节,范围(-8388608~8388607) |
int |
4字节,范围(-2147483648~2147483647) |
bigint |
8字节,范围(+-9.22*10的18次方) |
bigint |
8字节,范围(+-9.22*10的18次方) |
浮点型
MySQL数据类型 |
含义 |
float(m, d) |
4字节,单精度浮点型,m总个数,d小数位 |
double(m, d) |
8字节,双精度浮点型,m总个数,d小数位 |
decimal(m, d) |
decimal是存储为字符串的浮点数 |
字符串数据类型
MySQL数据类型 |
含义 |
char(n) |
固定长度,最多255个字符 |
varchar(n) |
可变长度,最多65535个字符 |
tinytext |
可变长度,最多255个字符 |
text |
可变长度,最多65535个字符 |
mediumtext |
可变长度,最多2的24次方-1个字符 |
longtext |
可变长度,最多2的32次方-1个字符 |
(2) create table 表名
(
列名1 数据类型,
列名2 数据类型,
列名3 数据类型
);
实例:create table list
(
id int,
name varchar(50),
passwd varchar(100)
);
4 .查看表数据结构:desc 表名;
5.查询数据库内表详情;show tables ; !!!(查之前,要进入相应的库use 库名;)
6.删除一个表:drop table 表名;
7.修改表
(1)重命名表:
alter table 旧表名 rename 新表名;
(2)向表中添加一列:
alter table 表名 add 要添加的列名 数据类型;
(3)删除表中的一列:
alert table 表名 drop column 被删的列名;
(4)修改一个列的数据类型:
alter table 表名 modify column 列名 数据类型;
(5)重命名一个列:
alter table 表名 change column 旧列名 新列名 数据类型;
8.向表中插入语句
(1)向表中全部列都插入一条记录:
insert into 表名称 values (值1,值2,值3);
例:insert into name values (99,'zhangsan','zhangsan-passwd');
(2)指定列插入一条记录:
insert into 表名称(列1,列3) values (值1,值3);
例:insert into name(username,password) values (lisi,lisi-passwd);
9.查询数据
(1)从表格中查询数据记录:
查询表中全部列的数据记录:select * from 表名称;
例: select * from name;
(2)查询表中指定列的数据记录:select 列名1,列名2,列名3 from 表名称;
例: select username,password from name;
10.按条件查询数据
select 列名称 from 表名 where 指定列 运算符 值; (满足条件则列出指定表的一行!"*"代表所有!)
例:select * from name where id=3 ;
select username,password from name where id=3 ;
select username,password from name where id>3;
select username,password from name where id<3;
select username,password from name where id<>3; 不等于
select username,password from name where id>=3;
select username,password from name where id<=3;
11.删除一条记录:
(1)删除表中全部记录:delete * from 表名称:
例:delete * from name;
(2)删除表中指定的记录:delete from 表名称 where 列名 运算符 值:
例:delete from name where id=3; !注意字符串需要单引号!
12.更新一条记录
(1)从表中更新一条记录:update 表名称 set 列名称=新值 where 列=值;
(2)mysql管理员密码丢失找回:
1.关闭数据库:systemctl stop mariadb
2.mysqld_safe --skip-grant-tables --user=mysql &
3.进入数据库 mysql 直接进去 ,在数据库内更改用户密码:update mysql.user set password=password("新密码") where user='root' and host='localhost' ; 注!更新完毕,要使用 flush privileges ;刷新数据库,并推出 \q 。
4.mysqladmin -u root -p shutdown 注意!!在此处输入更新了的密码,然后 重启数据库: systemctl restart mariadb
公式: update name set 变量名='值' where 判断条件 and 判断条件;
13.返回结果去除重复项:
select distinct 列名称 from 表名称;
例:select distinct username from name;
14.where条件中使用逻辑组合:
select * from 表名称 where 列名1='值1' and 列名2='值2'; 必须满足and前后两个条件 ==》为真
select * from 表名称 where 列名1='值1' or 列名2='值2'; 必须满足or前后的某一个条件 ==》为真
例:select * from name where username=zhangsan and id=1 ;
select * from name where username=zhangsan or id=0 ;
15.对查询结果进行排序:
(1)从小到大排序:select * from 表名称 order by 列名称;
例:select * from name order by id;
(2)从大到小排列:select * form 表名称 order by 列名称; desc; 注意desc在这里是”倒序”的意思!
例:select * from name order by id desc;
16.mariadb用户管理
(1)创建一个mariadb数据库用户:
create user 用户名 identified by '密码' ;
例:create user Luigi identified by 'redhat-passwd';
!使用 flush privileges ;刷新!
(2)删除一个用户:drop user '用户名'@'主机名';
例:drop user 'Luigi'@'localhost';
!使用 flush privileges ;刷新!
(3)重命名用户:rename user 原用户名 to 新用户名;
例: rename user Luigi to Natasha;
!使用 flush privileges ;刷新!
(4)修改用户密码:
①修改当前用户密码:set PASSWORD=PASSWORD('新密码');
例 : set PASSWORD=PASSWORD('redhat-passwd');
!使用 flush privileges ;刷新!
②修改指定用户密码:set PASSWORD for 用户名=PASSWORD('新密码');
例:set PASSWORD for zhangsan=PASSWORD('zhangsan-passwd');
!使用 flush privileges ;刷新!
17.权限管理
(1)权限分类:1.检查用户是否能连接主机。
2.是否有操作数据库的权限。
(2)授权层级:1.全局层级
2.数据库层级
3.表层级
4.列层级
5.子程序层级
(3)使用grant指令授予用户权限,使用revoke撤销用户权限
权限分类;
select 查询权限
all 所有权限
usage (受限制!)登入权限
查看MySQL用户权限:
show grants for 用户名;
比如:
show grants for root@'localhost'; ### !!root用户例外!!
①授予一个用户权限grant 权限 on 层级 to '用户名'@'主机名' identified by '密码';
例:授予Luigi对全部数据库的全部管理权限:grant all on *.* to 'Luigi'@'%' identified by 'redhat';
!使用 flush privileges ;刷新!
授予Luigi对centos数据库的本地查询权限:grant select on centos.* to 'Luigi'@'localhost' identified by 'redhat';
!使用 flush privileges ;刷新!
②撤销一个用户的权限:revoke all privileges from 用户名;
例:revoke all on *.* from Luigi;
!使用 flush privileges ;刷新!
(4)主机连接认证:grant all privileges on *.* to '用户'@'主机名' identified by '用户密码';
例:grant all privileges on *.* to 'Luigi'@'*.example.com' identified by 'redhat';
!使用 flush privileges ;刷新!
18.简单备份与恢复:
(1)备份一个指定的数据库:mysqldump -u root -p 数据库名称 > /备份的路径/备份文件
例:mysqldump -u root -p rhce > /root/rhce.sql
(2)恢复一个数据库:mysql -u root -p 数据库的名称 < /备份的路径/数据库名称
例 : mysql -u root -p rhce < /root/rhce.sql
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash