数据库的介绍以及基本的操作
1.随意存放在一个文件中的数据,数据的格式千差万别
2.软件开发目录中的db文件夹,存放一个个的文件
一和二都是在本地读取数据
3.将所有的数据存放到一个第三方的公共位置,同一个软件凡是需要操作数据的,就必须去这个共享的位置操作
第三方的公共位置(数据库)
数据库集群:将同一个数据库中的数据,复制到不同的服务器中
4.mysql数据:cs架构软件
1)mysql数据库本质上就是一个基于网络通信的软件
2)所有基于网络通信的软件,底层都是socket
服务端:
基于网络通信
收发消息
客户端:
基于网络通信
收发消息
所有的语言,若想要去操作数据库,拿到服务器ip和port,都必须遵守一套标准的解析指令sql语句
DBSM:数据库管理系统
关系型数据库:
mysql,oracle,db2,sqlserver。。。
表结构:
需要哪些字段
字段是什么类型
字段与字段类型:
name --》 字符串
age ---》整型
非关系数据库:
redis, mongodb。。。
非关系数据库一般以key:value的形式存储
安装数据库
1.下载mysql安装包
2.解压安装包放到D:中
3.添加环境变量
4.以管理员身份去打开cmd,输入mysqld启动服务端,此时会卡主
bin目录下的mysql。exe是启动文件
5.在创建一个cmd时,mysql客户端连接服务端,输入mysql -h 127.0.0.1 -P 密码
mysql初始化时无密码,可以进入游客模式,功能会很少
无密码直接进入 不需要密码
进入mysql服务端:
全写 mysql -h 127.0.0.1 -P 3306 -p 密码
简写 mysql -uroot -p
密码
6.退出数据库客户端
exit;
quit;
这里注意所有的sql语句末尾都要加上;
- 查看操作系统中是否已经启动mysqld 服务端
tasklist | findstr "mysqld"
- 杀死mysqld进程
- taskkill /F /PID pid号
*****做服务端操作时,必须先以管理员身份打开
- 数据库的命令:
- 查看所有数据库:
- show databases;
- 查看所有数据库:
- 制作系统服务
- 1.必须将已启动的服务端mysqld关掉
- 2.删掉已经启动过的mysqld的进程
- 3.输入 mysqld --install ----> 安装mysqld系统服务
- 4.输入 net start mysqld
- mysql -u 登录mysql用户名(root) -p 密码
- 默认自带 root 超级用户, 没有密码
- 管理员登录
- mysql -uroot 回车进入
- 游客登录
- mysql 回车
- 修改密码:
- 默认没有密码的情况下,设置密码
- cmd>>>: mysqladmin -uroot password 123
- 有密码的情况下,修改密码
- cmd>>>: mysqladmin -uroot -p原密码 password修改的密码
- cmd>>>: mysqladmin -uroot -p123456 password 123
- 默认没有密码的情况下,设置密码
- 破解密码: 当密码忘记时采用
- 1.关闭服务端
- 2.跳过权限启动服务端
- cmd>>>: mysqld --skip-grant-tables
- 3.客户端进入游客模式:
cmd>>>: mysql
- update mysql库.user表名 set 字段password=字段password('字段值') where 条件(若条件成立,则修改)user="root";
cmd>>>: update mysql.user set password=password('123456') where user="root";
- 4.重新启动服务端,不要跳过权限认证
- 先kill掉跳过权限认证启动的服务端进程
- 再手动去开服服务中的mysql服务即可
- 设置配置文件:
1.先在mysql目录下 --》 D:\mysql-5.6.40-winx64
- 2.创建一个名为 “my.ini” 的文件,这个是mysql的配置文件
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci这个是用python软件连接的客户端
[client]
default-character-set=utf8mysql软件的客户端
[mysql]
可写,可不写这样可以不需要用户名 与密码直接登录mysql
user='root'
password=123
设置默认的字符编码
default-character-set=utf8
3.重启mysql服务,即修改成功!
- 数据库基本操作:
- 库的操作 ---> 类似于文件夹
增:
语法: create database 库名;
- create database db1;查
语法: show databases; # 查看所有库
show create database db1; # 查看db1库中的信息改
语法: alter database 库名 charset="字符编码类型";
- alter database db1 charset="utf8";删
语法: drop database db1;
- 表的操作 ---> 类似于文件
操作表前,需要先切换到指定库
语法: use 库名;
- use db1;查看当前所在的库: select database()
增
varchar与char 都是字符串类型;
varchar(20)
语法: create table 表名(字段名 字段类型);
create table user_info(name varchar(20), age int);查
show tables; # 查看当前库中所有的表
desc user_info; # 查看表结构改
语法: alter table 表名 modify name varchar(28);
- alter table user_info modify name varchar(28);删
语法: drop table 表名;
- create table test(id int);
- drop table test;
- 记录 的操作 ---> 类似于文件中的一行行数据
增:
语法: insert into 表名 values('字段类型的数据1', 字段类型的数据1);
# 插入一条
- insert into user_info values('tank', 17);# 插入多条 - insert into user_info values('jason', 71), ('sean', 78);
查:
: 指的是所有
语法: select from 表名; # 查看表中所有的数据
- select * from user_info;# 查看name 字段为 tank 的记录 - select * from 表名 where 条件; # 条件成立则查看成功! - select * from user_info where name="tank"; # 查看name 字段为 tank 的age字段 - select age from user_info where name="tank"; # 查看所有的名字: - select name from user_info;
改
语法: update 表名 set 字段名=字段值 where 条件判断; # 若条件成立,则修改成功!# 修改age为17的记录中name属性为 handsome - update user_info set name='handsome' where age=17; # 修改age>16的记录 中name属性为 d_sb - update user_info set name='d_sb' where age>16;
删
语法: delete from 表名;
# 清空表记录,不提交,可恢复。
- delete from user_info;语法: truncate table 表名;
# 删除,不可恢复
- truncate table user_info;
- 库的操作 ---> 类似于文件夹