初始数据库(Mysql)

一、数据库管理软件的由来

1、程序所有的组件就不可能运行在一台机器上

因为这台程序一旦挂掉,这个软件就崩掉了。

2、数据安全问题

由于第一个问题的存在,我们把程序的各个组件分布不同机器上,但数据还是需要共享的,共享就意味着竞争,会发生数据不安全,需要加锁处理。

3、并发

由于问题2的存在,我们需要写一个socket服务器来管理这台机器上的数据,然后再写一个socket客户端,完成功能如下:

  1. 远程连接(支持并发)

  2. 打开文件

  3. 读写(加锁)

  4. 关闭文件

总结

有人专门写了将此类程序写成了一个软件,这就是mysql等数据管理软件的由来

二、Mysql安装与基本管理

mysql是关系型数据库,是基于socket编写的C/S架构的软件。

数据库管理软件分类

分两大类:
  关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用
  非关系型:mongodb,redis,memcache

可以简单的理解为:
    关系型数据库需要有表结构
    非关系型数据库是key-value存储的,没有表结构

mysql密码设置与破解

1.官网下载 mysql安装

2.启动mysql  

3.设置环境编程
 
vim ~/.zshrc
PATH=/usr/local/mysql/bin:$PATH
export PATH 
 

暴力破解密码

1.停止mysql服务

2.通过命令打开

sudo mysqld_safe __skip-grant-tables (一会要杀死)

3.这样不用密码也能登陆进来,然后设置密码

update mysql.user set authentication_string=password('') where user='root' and host=‘localhost’;

flush privileges;  刷新权限表

4.杀死mysqld_safe __skip-grant-tables
ps aux | grep mysql    
 
kill -9 pid  
 

统一字符编码

1.切换到管路员身份

sudo su

2.先设置密码,设置了密码才让看字符编码

sh-3.2# mysqladmin -uroot -p password ‘112233'

3.进入mysql按 \s

4.在/etc目录下创建my.cnf文件

vim /etc/my.cnf

5.复制以下配置到文件里

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

6.重启mysql在打开看,编码已经变了

三、初识mysql语句

sql语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,可以分为3类

1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER

2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT

3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

 

简单的sql语句

操作文件夹(库)

# 增
create database db1 charset utf8; (就是在本地创建了一个文件夹)

# 查
show create database db1; 查看刚刚建立的数据库
show databases; 查看所有的数据库

# 改
alter database db1 charset gbk;

#删
drop database db1;

操作文件(表)

# 切换文件夹:use db1 ;

# 查看当前所在文件夹:select database();

# 增

create table t1(id int, name char);
# t1.frm是表结构,t1.ibd是表里面存放的数据

# 查
show create table t1; # 查看单个
show tables; # 查看所有
desc t1; # 显示更友好

# 改
alter table t1 modify name char(6);
alter table t1 change name NAME char(7);

#删
drop table t1 ;

操作文件内容(记录)

# 增
insert t1(id,name) values(1,'edward1'),(2,'edward2'),(3,'edward3')
insert t1(named) values('edward1',1),('edward2',2),('edward3',3)
insert t1 values(1,'edward1'),(2,'edward2'),(3,'edward3') # 不写就按照默认的顺序

# 查
select id ,name from db1.t1; # 没在db1这个库下,这样在任何库下都能查看
select id,name from t1 ; # 在db1这个库下
select * from db1.t1; # 查看所有,不推荐用这个,效率低

# 改
update db1.t1 set name='NB'; # 改所有的
update db1.t1 set name='ALEX' where id=2;

# 删
delete from db1.t1; # 删除所有的
delete from db1.t1 where id=2;

猜你喜欢

转载自www.cnblogs.com/lshedward/p/10253583.html
今日推荐