数据库:存储数据的容器
存储数据的方式:
1、变量(无法永久存储数据)
2、文件处理:可以永久存储
文件处理存在的弊端:
1、文件处理的速度很慢
2、文件只能在自己的计算机上读写,无法被共享数据(局域网除外)
单台计算的性能是有限的,怎么提升性能?
1、升级硬件设备,属于垂直扩展,但是提升幅度有限
2、服务器集群 分布式,属于横向扩展
一旦把服务器拆分后,数据必须只能通过网络(socket)被不同的计算机共享
数据库软件的本质,就是一个基于socket(TCP)的C/S结构的程序
如果要实现一个数据软件,需要解决以下问题:
1、一旦数据共享,就会存在竞争的问题,需要处理锁的问题
2、不是所有的TCP连接请求都要请求,得加上安全验证
3、文件处理带来的效率问题,需要想办法通过索引来提高处理速度
数据库软件的分类(两类):
1、关系型数据库
其提供了某种机制,可以维护数据与数据之间的关系
比如:学员数据 和 班级数据 可以通过其中一方去找到另一方
这一类一般都是基于文件实现的
优点:容量大 可永久存储
1 mysql 免费开源,开源支持中小型企业并发 2 3 oracle 商用收费,学习免费,功能比mysql强大,用户管理和集群 4 5 SQLServer 属于微软生态圈,只能运行于 windows上 6 7 mariaDB mysql创始人:韦德纽斯 担心 mysql的前程 于是基于mysql开发了mariaDB,用起来是一模一样 8 9 DB2 IBM 360 10 11 sqlite 非常轻量级的数据库
其共同特征是都支持SQL,可结构化查询语言
学习数据库的重点就是SQL语言
2、非关系型数据库
数据与数据之间是独立的,不存在任何关联关系
以key:value的形式来存储数据,一般都是基于内存的
优点是:速度快
缺点是:断电就会消失
那么问题来了,该使用哪一类数据库?
应该是搭配使用的,把数据量大的存到关系型中,把经常访问的存放到非关系型中。
两类数据库搭配使用,以此提高访问速度
数据库相关概念:
数据记录:多个数据组成了一条完整的记录
例:name,age,sex
alan,18,man
kobe,33,man
表:本质就是一个文件,里面存储一堆数据记录
库:本质是一个文件夹,里面存放一堆表文件
DBMS:data base manager system 的缩写
数据库管理系统,也就是TCP的服务器
负责管理一堆文件夹,也就是数据库
数据库服务器:指的是运行有TCP服务器程序的计算机
DBMS和服务器一般都是归运维管理,到公司之后会分给你一个账号密码以及服务器地址
mysqld 是服务器主程序
mysqld需要管理员权限运行
mysql是一个无界面的客户端,需要在cmd中执行
mysql连接服务器,需要指定以下参数:
-h 主机地址(ip)
-p 端口号
-u 用户名
-p 密码
如果服务器和客户端在同一台电脑上,是可以省略主机地址的,端口号默认是3306,也可以省略
如果不是指定用户名和密码,以游客的方式去登录,那么什么都看不到
mysql怎么安装:
1、带界面的,只需要一直next即可
2、压缩包,直接压缩
2.1添加环境变量
2.2注册系统服务
修改管理员密码
1、如果知道原始密码 :mysqladmin -uroot -p password 123
2、如果不知道原始密码:可以在启动服务器时,直接跳过授权表
mysqld -skip - grant - tables
无密码登录服务器,执行修改密码的指令
update mysql.user set password = password("新密码") where user = "root" and host = "locklhoat";
关于库的语句:
1 创建库 2 create database 库名称 3 4 删除库 5 drop database 库名称 6 7 修改库的属性 8 alter database 库名称 charset = "新的编码" 9 10 查看创建库的详细信息 11 show creat database mydb; 12 13 查看所有的数据库 14 show database 15 16 选择一个数据库 17 use 库名称
关于标的语句:
1 增: 2 create table 表名称(name char,age int); 3 create table 库 表名(name char,age int); 4 5 查看所有表: 6 show tables; 7 8 查看表的详细信息: 9 show create table t1; 10 11 查看表结构(字段): 12 desc t1; 13 14 改: 15 alter table t1 charset = "gbk" 改编码 16 alter table t1 add sex char; 添加字段 17 alter table t1 drop sex; 删除字段 18 alter table t1 modify age char; 修改字段的类型 19 alter table t1 change age ages int; 修改字段的名字和类型 20 rename table t1 to table; 修改表的名称 21 22 删除: 23 drop table table1;
数据记录相关操作是重点学习对象:
1 一次性插入多条记录 2 insert into table_name values("alan",18) 3 4 一次性插入多条记录 5 insert into table_name values(值1,值2),(值2,值3),...; 6 上述语法,值的个数必须与字段的个数相同 7 8 指定要插入数据的字段 9 insert into t2(name) values("alan") 10 11 查看数据 12 select * from t2; *表示查看所有的字段,多个字段要用逗号隔开 13 14 修改 15 update t2 set age = 100; 没有条件就会全部更改数据(慎用) 16 update t2 set age = 100 where name = 'alan'; 17 update t2 set age = 100,name = "kobe" where name ='alan'; 18 19 删除数据 20 delete from t2 where name = 'kobe';
登录数据库界面: mysql -uroot -p ——> show databases;

浙公网安备 33010602011771号