数据库基础

数据库:

就是存储数据的仓库(容器)

存储数据的方式

1.变量 无法永久存储

2.文件处理,可以永久存储

文件处理存在的弊端:

1.文件的处理速度非常慢

2.文件只能在自己的电脑上读写,无法被共享(局域网除外)

单台计算机的性能终归是有限的:

1.升级你的硬件设备 提升幅度有限 垂直扩展

2.服务器集群,分布式,横向扩展

就是在一个服务器的后面增加更多的服务器,如果某一台并发达到最大了,就把请求交给其他的服务器 可插拔设计

 

一旦把服务器拆分开后,数据就必须能够被不同计算机共享,必须通过网络,也就是socket

 

数据库软件的本质,也就是一个基于socket(TCP)的C/S结构的程序

 

如果自己实现一个数据软件,需要解决的几个问题

1.一旦数据共享,就存在竞争问题,需要处理锁

2.不是所有的TCP连接请求都要接受,得加上安全验证

3.文件处理带来的效率问题,需要想办法来提高处理速度(索引)

 

有很多现成的数据库软件可以直接使用,分为两类:

关系型数据库:

该类型的数据库提供了某种机制,可以帮你维护数据与数据之间的关系

例如:学员数据和班级数据,可以通过其中一方,找到另外一方

一般都是基于文件实现的

优点:容量大,可以永久存储

mysql 免费开源,开源支持中小型企业并发

oracle 商业收费,学习免费,功能比mysql强大,用户管理和集群

SQLServer 属于微软生态圈

mariaDB ·

DB2

sqlite 非常轻量级的数据库·

 

非关系型数据库:

数据与数据之间是独立的,不存在任何关联关系,以key:value的关系来存储数据

一般基于内存

优点:速度快

问题:断电丢失

redis,MobgoDB,memcache

 

两类数据库的共同特征:

都支持SQL(结构化,查询语言)

 

数据库相关的概念:

数据本质是一堆带着含义的符号

数据记录

name=jack age=38 sex=man

表:本质就是一个文件

里面存储一堆数据记录

库:本质就是一个文件夹

里面放了一堆表文件

DBMS:

data base manager system

数据库管理系统(TCP)

负责一堆文件夹(即数据库)

数据库服务器:

指的是运行有数据库TCP服务器的程序的计算机

DBMS和服务器 一般运维管:

到公司之后会分给你一个账号密码,以及服务器的地址

 

该使用哪一类呢?

应该搭配使用,把数据量大的,存到关系型中,把经常访问的放到非关系型中,提高访问速度

 

mysqld是服务器主程序

mysqld警告说,创建文件失败,由于权限不足,用管理员权限运行即可

mysql是无界面的客户端需要在CMD运行

mysql连接服务器,需要指定以下参数

-h 主机地址(ip)

-p端口号

-u 用户名

-p 密码

服务器和客户端在同一台电脑,可以省略主机地址,可以省略

如果不指定用户名和密码,以游客模式登录,什么都看不到

 

修改管理员密码

1.如果知道原始密码,mysqladmin-uroot  -p旧密码 password 新密码

2.不知道原密码 可以在启动服务器时,跳过授权表 mysqld--skip-grant-tables

用户密码信息,存储在mysql数据库中的user表中

update mysql.user set password=password('新密码') where user='root' and host='localhost'

 

关于库的语句:

创建库

create database 库名称

删除库

drop database 库名称

修改库的属性

alter database 库名称  charset ='新的编码'

使用数据库

use 库名称

查看创建库详细信息

show create database 库名称

查看使用数据库

show databases

列==字段

关于表:

增:

create table t1(name char,age int);

改:

alter table t1 charset="gbk"

必须为双引号

alter table t1 add sex char;

alter table t1 drop sex;

alter table t1 modify age  chart

modify 是用来修改类型的; 

desc t1 详细信息

alter table t1 change 旧列名 新列名 类型

表重命名:rename table 旧名 to 新名

查:

show create table t1

 

数据记录相关操作才是重点学习对象

 

插入数据:insert into table _name value()

查看数据

select * from table_name: *表示查看所有字段

update t2 set age=200 where name="陈"

 

删除数据

delete from t2 where name=" ":

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值