DataBase简称DB数据库即存放数据的仓库
数据库是长期存放在计算机内,有组织可共享的数据即可
数据库中的数据按一定的数据模型组织,描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享
DataBase Management System简称DBMS,数据库管理系统
数据库服务器:运行数据库管理软件
数据库管理软件:管理数据库
数据库:即文件夹,用来组织文件/表
表:即文件用来存放多行内容/多条记录
数据库管理技术发展历程:
一,人工管理阶段
特点:
1数据不保存:计算机主要用于科学计算,数据临时用,临时输入不保存
2.应用程序管理数据:数据要有应用程序自己管理,应用程序需要处理数据的逻辑+物理结构,开发者负担很重
3.数据不共享:一组数据只对应一个程序,多个程序之间涉及相同数据时,必须各自定义,造成大量数据冗余
4.数据不具有独立性:数据的逻辑结构或物理结构发生变化后,必须对应用程序作出相应的修改,开发负担增大
二:文件系统阶段
硬件水平:有了磁盘等可直接存取的存储设备
软件水平:有了操作系统并且操作系统中已经有了专门数据管理软件,即文件系统,处理方式不仅有了批处理还可以联机实时处理
优点:
1.数据可以长期保存:计算机大量用于数据处理,因而需要长期保存,进行增删改查操作
2.由文件系统管理数据:文件系统这个软件,把数据组织成相对独立的数据文件,利用按文件名,按记录进行存取,实现了记录内的结构性,但整体无结构.
缺点
1.:数据共享性差,冗余度大:一个文件对应一个应用程序,不同应用具有相同数据时,也必须建立各自的文件,不能共享数据,造成数据冗余,浪费空间,且数据重复存储,各自管理容易导致数据不一致性
2.数据独立性差:一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义,应用程序的改变,也将引起文件的数据结构的改变,因此数据和程序之间缺乏独立性.
三:数据系统阶段
硬件水平:有了大容量磁盘,硬件架构下降
软件水平:软件价格上升,分布式的概念盛行,
数据库系统的特点
1.数据结构化
2.数据共享,冗余度低,易扩充
3.数据独立性高
4.数据由DBMS统一管理和控制
a.数据的安全性保护
b.数据的完整性检查
c.并发控制
d.数据库恢复
MySQL是一个关系型数据库管理系统,一个基于socket编写的C/S架构的软件
数据库管理软件分类:
关系型:如sqllite,db2,oracle,access,sql,server,mysql
菲关系型:mongodb,redis,memcache
关系型数据库需要有表结构
菲关系型数据库是key_value存储的,没有表结构
SQL语言主要用于存取数据,更新数据,查询数据和管理关系数据库系统,SQL语言由IBM开发,SQL语言分为三种类型
1.DDl语句 数据库定义语言:数据库,表,视图,索引,存储过程,例如CREATE DROP ALTER
2.DML语句 数据库操纵语言:插入数据INSERT 删除数据DELETE 更新数据UPDATE 查询数据SELECT
3.DCL语句 数据库控制语言:例如控制用户访问权限GRANT,REVOKE
操作文件夹:
增:create database db1 charset utf8;
查:show databases;
改:alter database db1 charset latin1
删除:drop database db1;
操作文件
先切换到文件夹下:use db1
增:create table t1(id int,name char);
查:show tables
改:alter table t1 modify name char(3);
alter table t1 change name name1 char(2);
删:drop table t1;
操作文件中的内容/记录
增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
查:select * from t1;
改:update t1 set name='sb' where id =2;
删:delete from t1 where id =1;
清空表:
delete from t1:如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始
truncate table t1;数据量大,删除速度比上一条块,且直接从零开始
auto_increment 表示:自增
primary key:表示约束(不能重复且不能为空):加速查找
1 mysqladmin -uroot password "root";初始密码为空因此可省略 2 mysqladmin -uroot -p"123" password "root";知道旧密码修改密码
1 1.关闭mysql 2 2.在cmd中执行:mysql --skip-grant-tables; 3 3.在cmd中执行:mysql; 4 4.执行如下语句: 5 update mysql.user set password = password('') where user ='root'; 6 flush privileges; 7 5.taskkill mysqld 或taskkill /f /pid 1234 8 6.重新启动mysql 9 二: 10 1.关闭mysql,可以用taskkill mysqld将其杀死 11 2.在解压目录下,新建mysql配置文件 12 3.my.ini内容指定 13 [mysqld] 14 skip-grant-tables 15 #4.启动mysqld 16 #5.在cmd里直接输入mysql登录,然后操作 17 update mysql.user set authentication_string=password('') where user='root and host='localhost'; 18 19 flush privileges; 20 21 #6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
1 #1. 修改配置文件 2 [mysqld] 3 default-character-set=utf8 4 [client] 5 default-character-set=utf8 6 [mysql] 7 default-character-set=utf8