一、数据库介绍
数据库:
sql server : 微软
oracle :甲骨文 收费 闭源
mysql :甲骨文 免费
SUN公司 小型机unix java mysql marrydb
其中MariaDB是MySQL的分支,也是它的进阶产品,未来很有可能替代MySQL。
Fackbook 阿里 : 去IOE产品(IBM ORACLE EMC2(存储柜))拿自己的钱给别人交学费,不必过度依赖传统的IOE架构
阿里:定制系统 服务器 数据库 定制
二、MYRIADB介绍
mysql:
简单易用、免费、查询速度快、安全可靠
独立的服务器,跟linux本身没有关联(包括命令、管理、远程管理等)
数据库结构: 数据库、表、字段、值
(表格、列/字段、1条记录/1行)
MariaDB有许多的新选项、扩展,存储引擎和bug修复,而MySQL是没有的
安装myriadb服务器:(在光盘上有rpm包)
yum install mariadb-server mariadb
数据库配置文件:
设置客户端:
vim /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
设置服务端:
vim /etc/my.cnf.d/server.cnf
[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
开启mariadb:
Systemctl start mariadb
查看服务状态:
Systemctl status mariadb
netstat -antpl | grep 3306
=============================
mysql安装后,默认没有密码
mysql命令直接进入管理
为mysql账户设置密码:
mysqladmin -u 用户名 -p password 密码
再回车即可,若有原密码,输入原密码回车实现改密码
mysqladmin -uroot -p password 123123
以后进入mysql,通过
mysql -uroot -p123123
进入mysql数据库配置模式:
mysql -u 用户名
mysql -u root //root是mysql自己的管理员账户,默认没有密码
进入mysql数据库配置模式(有密码情况):
mysql -u 用户名 -p密码
或
mysql -u 用户名 -p
输入密码再回车
如:mysql -u root -p123456
mysql -u root -p
退出mysql配置模式:
quit;
忘记root密码:
vim /etc/my.cnf.d/server.cnf
在[mysqld]下方添加一行信息:skip-grant-tables
保存退出
Systemctl restart mariadb
mysql -u root
update mysql.user set password=PASSWORD('新密码') where user='root';
quit;
vim /etc/my.cnf.d/server.cnf
注释掉skip-grant-tables
保存退出
Systemctl restart mariadb
生效!
=================================
查看/列出所有数据库:
show databases;
进入数据库:
use 数据库名;
查看/列出所有表
show tables;
查看表的内容:
select 字段名 from student;
select * from 表名;
select user,password from 表名
查看/列出表的所有字段:
desc 表名;
建立新数据库:
create database 数据库名;
创建表: 主键
create table 库名.表名 (字段名 类型,字段名 类型,字段名 类型, primary key(字段名));
注释:
int 整数类型 xxxxxxxxxx 10位 4字节
bit 比特类型 0/1
float 单精度浮点类型
char(n) 字符串 固定长度
varchar(n) 字符串 可变长度
text 字符串 可变长度
date xxxx-xx-xx
time hh:mm:ss
添加一条记录/值:
insert into 库名.表名 [(字段名,字段名.....)] values (值,值.....);
------------------------------------------
更改表的字段及类型:(更改表的结构)
help alter; //查看alter命令的帮助信息
修改表的字段:
alter table 库名.表名 add 字段名 类型 [first/after 字段名];
alter table 库名.表名 drop 字段名;
alter table 库名.表名 modify 字段名 类型;
alter table chengji add banji varchar (2);
修改一条记录/值:
update 库名.表名 set 字段=值 [where 条件];
update cj set sex=NULL where 条件;
update cj set shuxue=60,yuwen=60 where name='lsy';
条件语法格式:字段=值
注意:当值为数字时不需要加单引号,如是字符串必须加单引号。
==============================
删除记录:
delete from 库名.表名 where 条件;
删除表:
drop table 库名.表名;
删除数据库:
drop database 数据库名;
如何备份数据库下的指定表,以及绕过数据库用户验证登录
mysqldump -u root -p 库名 表名 > 路径文件
如何备份一个数据库
mysqldump --databases -u用户名root -p db1 >aa.dmp
如何备份所有库
mysqldump --all-databases -u用户名root -p >bb.dmp
进入mysql后
进入数据库
source chengji.dmp;
可以恢复数据
如何授权远程用户登录数据库管理表格
grant all privileges on *.* to lanadmin@'172.18.11.%' identified by '123123';
status;
查看数据库状态
条件查询记录:
select 字段名列表 from 表名;
select 字段名列表 from 表名 [where 条件表达式];
select * from t1 where age > 10;
注释:
字段名列表的表示方式:
- 所有字段
字段名1
字段名1,字段名2, 字段名N
条件的表示方式:
结构: 字段 运算符 值
表的关联查询
MariaDB [cc]> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | char(3) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| sex | char(2) | YES | | NULL | |
| age | char(3) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
desc t2
-> ;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | char(3) | YES | | NULL | |
| score | int(11) | YES | | NULL | |
| class | char(4) | YES | | NULL | |
| note | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
MariaDB [cc]> select *from t1;
+------+--------+------+------+
| id | name | sex | age |
+------+--------+------+------+
| 101 | 张三 | 男 | 25 |
| 102 | 李四 | 女 | 23 |
| 103 | 王五 | 男 | 24 |
+------+--------+------+------+
MariaDB [cc]> select * from t2;
+------+-------+-------+------+
| id | score | class | note |
+------+-------+-------+------+
| 101 | 80 | 2 | sd |
| 102 | 90 | 3 | gd |
| 103 | 85 | 2 | bj |
+------+-------+-------+------+
MariaDB [cc]> select t1.name,t1.sex,t2.score,t2.class from t1,t2 where t1.id=t2.id;
+--------+------+-------+-------+
| name | sex | score | class |
+--------+------+-------+-------+
| 张三 | 男 | 80 | 2 |
| 李四 | 女 | 90 | 3 |
| 王五 | 男 | 85 | 2 |
+--------+------+-------+-------+
===============================================
Mysql作业
1、MYSQL更改root密码和添加一个用户的用户密码(忘记密码的情况下)
2、MYSQL建立学籍表与成绩表,进行关联查询,从两个表取出:姓名,性别,分数,班级。
3、MYSQL建立学籍表与成绩表,进行关联查询,从两个表取出:姓名,性别,班级,成绩+10。
4、MYSQL数据备份,模拟库删除后的数据恢复。
*
转载于:https://blog.51cto.com/jxwpx/2318419