数据库入门学习
一、初识数据库
1.数据库的由来
怎么才能把数据永久保存下来,根据我们以前的所学,文件处理就可以将数据永久存储。
但是文件处理有很大的问题
1.管理不方便
2.文件操作效率问题
3.一个程序不太可能仅运行在同一台电脑上
那么为了解决这些问题,采取了提高计算机性能的方式
1.垂直扩展 指的是更换性能更好的硬件
2.水平扩展 指的就是添加更多的计算机 把任务分配给每一台 (分布式计算)
分布式计算 的好处
1.其中某一台挂了 不会导致整个系统瘫痪 稳定性高
2.理论上性能可以无限扩展
基于分布式计算,我们可以把数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现),即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理
根据以上描述,我们就需要编写一套程序,一个运行在客户端,一个运行在服务端,于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来
二、什么是数据库
1.数据库
本质上就是一套软件 由服务器端 和 客户端组成 C/S B/S
早些年 没有数据库的时候 程序员要想实现功能 得自己写一套socket 并解决上述问题
于是就有了数据库软件公司
2.目前常见的数据库
关系型数据库:数据与数据之间可以建立关联关系(用户数据和购买信息)
SQLServer :仅支持windows
MySQL:免费 开源 性能也不差 mysql 先后被sun 和 oracle收购
Oracle:目前最牛逼的数据库 收费很高
DB2:IMB 收费的 一般与计算机绑定销售
非关系型数据库:运行效率快,通过key value 存取
MongoDB
redis
memcache
3.数据库相关概念
数据:用于记录某事物状态的符号 或 别的形式 数字 音频
age = 20
记录:就是一个事物的典型特征的组合 在文件中体现为一行文本
yyh,20,man,180
表:就是一个一个的文件
库:就是一个文件夹
数据库管理系统(DBMS):就是一个软件用来管理库的 C/S程序
数据库服务器:运行着DBMS的计算机称为数据库服务器
三、mysql
1.安装
下载
从官网下载mysql,下载的时候根据电脑的版本下载32位或64位的
配置环境变量
变量名:MYSQL_HOME
变量值:C:\Program Files\MySQL\mysql-5.6.41-winx64(你的电脑的MySQL的存放位置)
path里添加:%MYSQL_HOME%\bin;
以管理员身份运行CMD
mysqld -install
MySQL服务器初始化
mysqld –initialize-insecure
启动MySQL服务
mysqld
启动MySQL客户端并连接MySQL服务
mysql -uroot -p #用mysql自带的客户端登录服务器
(-u 用户名 -p 密码 -h 服务器的ip -P端口号 在本机上执行客户端不需要指的 -h -P)
2.设置密码
mysqladmin -uroot -p旧密码 password 新密码(如果是密码为空,就不用-p)
3.忘记密码
三种方法:
1.删除存储密码的文件
2.重装mysql
3.可以在启动服务器时 告诉他 让他不要读取密码文件
1.在服务端mysqld -skip-grant-tables
2.无密码登录服务器
3.在客户端就可以跳过密码的阶段直接进入服务器,使用update 来更新你的密码 在msyql.user表中
在客户端 update mysql.user set password = password(修改后的密码) where user = “root” and host=”localhost”;
4.重启服务 验证新密码
4.基本操作
数据库服务器中存放的是 库(文件加) 表(文件) 表里面是记录(一行数据)
库相关
创建
create database 数据库名 charset 编码名称;
修改
alter database 数据库名 charset gbk; #修改指定库的编码
查
show databases; #查看所有数据
show create database 数据库名; #查看建库语句
删除
drop database 数据库名;
ues 库名 #进入库中,可以对该库中的表进行操作
表相关
创建
create table 表名(字段名 类型,字段名 类型。。。。);#create table t1(id int,name char);
修改
alter table 表名 add | drop | modify | change;
add 字段名 数据类型(长度); #添加新字段名与类型(char默认为1字节,int默认为11)
drop 字段名; #删除指定字段
modify 字段名 新类型; #修改指定字段的类型
change 旧字段名 新的字段名 新类型; #修改指定字段的字段名与类型
alter table t1 charset gbk; #修改t1表的字符编码
rename table 旧表名 to 新表名; #修改表名
查
show tables; #显示该库中的所有表
show create table 表名; # 查看建表语句
desc 表名; # 查看表结构(字段)
删除
drop table 表名; #删除表
truncate table 表名; #重建表(清空数据);
记录
添加
insert into 表名 values(值1…),(值1….)….; #插入时注意 值得顺序 和 类型必须与表结构一致
修改
update 表名 set 字段名=新的值 where 条件; #可以同时修改多行 用逗号来隔开,字段没有条件就全改
查
select *|字段名 from 表名 where 条件; #根据where的条件,在指定表里寻找指定字段,并显示信息(*表示所有字段)
删除
delete from 表名 where 条件; #没有条件就全删