数据库简介

什么是数据

描述事物的符号记录称为数据,描述事物的符号可以是数字,也可以是文字,图片,图像,声音,语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机。

什么是数据库

数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。

数据库是长期存放在计算机内、有组织、可共享的。

数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并且可以为各种用户共享。

数据库的本质

数据库本质上是通过文件来存储数据的,数据库软件的本质其实也是一款CS架构的软件,数据库的概念即通过系统的管理存储数据的文件。

数据库在微观层面上来说:运行在计算机上专门处理数据的进程(程序)。【运行在内存当中的代码】

数据库在宏观层面上来说:提供给操作者一个简单快捷的操作进程的软件应用程序。【即:数据库软件,一个cs架构的应用程序】

数据库相关概念

什么是记录:一组数据构成一条记录,相当于文件中的一行内容,如1,jason,male,18。

什么是表:多条记录构成一张表,其本质相当于文件。

什么是库(DataBase,简称DB):多张表构成一个数据库,其本质相当于文件夹。

什么是数据库管理系统(DataBase Management System 简称DBMS):管理数据的套接字软件,CS架构。例如MySQL,就是一个软件。

什么是数据库服务器:运行有DBMS服务端的计算机,该计算机对内存和硬盘要求都相对较高。

ios 数据库存储类型的数据库中 数据库中存储是什么_mysql

 远程数据库服务

远程数据库服务一般使用数据库集群的方式来实现:让多台服务器运行相同的数据库服务。

  1. 一方面考虑到数据安全性的问题,便于数据备份。
  2. 另一方面,数据库集群能够做好负载均衡,提高服务的并发量。

 数据库软件的分类

关系型数据库

  1. 有固定的表结构(最主要的特征)
  2. 以表中一条条记录存储数据,并且表与表之间可以建立代码层面的关系

常见的关系型数据库:

MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server、db2。

'''
MySQL:开源的,关系型数据库的代表,主要用于大型门户,例如搜狗、新浪等,主要优势是开放源代码,使用频率极高。

Oracle:主要用于银行、铁路、飞机场等。该数据库功能强大,安全性很高,但是软件费用较高。

PostgreSQL:开源的,可以支持二次开发。可拓展性很强。

MariaDB:开源的,与MySQL是同一个作者所开发,开发的初衷是作为MySQL的替代品。

sqlite:小型数据库 携带方便但功能较少,主要用于本地测试使用。django框架自带该数据库。

SQL server:是微软公司的产品,主要应用于大中型企业,如联想、方正等,是老牌的数据库软件,目前并不主流。
'''

非关系型数据库

  1. 没有固定的表结构,数据存取采用K:V键值对的形式(最主要的特征)
  2. 并且表与表之间无法建立代码层面的关系

常见非关系型数据库:

Redis、MongoDB、Memcache。

'''
Redis:目前最火的非关系型数据库,该数据库数据类型丰富,功能强大。多用来作为缓存。

MongoDB:最像关系型数据库的非关系型数据库,主要用于爬虫和大数据。可用来作为后端数据库管理软件。

Memcache:多用来作为缓存,但是被redis取代了。
'''

SQL与NoSQL:

数据库服务端支持很多客户端来链接使用;为了让服务端兼容诸多客户端,实现正常交互,使用SQL语句与NoSQL语句。

SQL语句:与关系型数据库交互的语言。SQL有时候用来标识关系型数据库,有时候表示SQL语句。
NoSQL语句:与非关系型数据库交互的语言。NoSQL有时候用来标识非关系型数据库,有时候表示NoSQL语句。

ps:SQL语句使用分号作为结束符。取消SQL语句执行使用:\c。

MySQL数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下公司。是最流行的关系型数据库管理系统,在web应用方面MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。

MySQL的下载安装

  1. 官网:http://mysql.com/>>>:官网下载安装,windows系统选择5.6x和5.7x的版本。mac系统选择8.0x版本。
  2. 解压到安装的指定目录,建议压缩到D或者E、F盘的根目录方便查找。
  3. 主要文件:bin文件夹下:mysqld.exe服务端、mysql.exe客户端。data文件夹:存取数据。my-default.ini:默认的配置文件。
  4. 添加环境变量>>>:【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】

MySQL的基本使用

初始化:mysql --install

将mysql服务器添加到系统服务:在系统服务中启动mysql,mysqld --install,进入系统服务: win+r => services.msc => 找到mysql服务手动启动或关闭。

ps【命令操作服务】:查看系统服务命令》》》:services.msc》》》命令启动:net start mysql

连接数据库:

'''
通过最高权限进入数据库,要采用root用户进入,连接本地数据库:mysql -uroot -p

查看mysql版本:select version()
查看当前用户:select user()
查看mysql下的(当前用户可以操作)所有数据库:show databases;
'''

密码操作:

知道旧密码的情况下:修改密码:mysqladmin -uroot -p旧密码 password"新密码"。

遗忘旧密码的情况下:以任意密码登录root用户: mysql -uroot -P任意;set password=PASSWORD('新密码')。

操作库的MySQL语句

'''
前提:连接上数据库,其中db1为库名
1.增,创建数据库
采用默认编码集: create database db1; 
自定义编码集: create database db1 charset="gbk";
2.查,查看数据库全部信息
查看所有的数据库名称:show databases;
指定查看某个库的信息:show create database db1;
3.改,修改数据库编码集
alter database db1 charset="utf8"
4.删,移除数据库
drop database db1;
'''

 

操作表的MySQL语句

'''
前提:在具体的某个库下创建表,t1为表名
进入指定的数据库:use db1;
确定当前使用的数据库:select database();
1.增,创建表(字段1,类型,... ,字段n 类型)
create table t1(name char,age int);
2.查,查看表信息
查看当前库下所有的表名称:show tables;
指定查看某个表的详细信息:show create table t1;
指定查看某个表的字段结构信息:desc t1;
3.改
修改字段属性:alter table t1 modify name【字段名】 char(20);
修改字段名:alter table t1 change name【旧字段】 usr【新字段】 char(16)【字段类型】;
修改表名:alter table t1(旧表名) rename t2(新表名);
删除字段:alter table 表名 drop 字段名;
新增字段:alter table 表名 add 字段名 字段类型(数字) 约束条件;
        alter table 表名 add 字段名 字段类型(数字) 约束条件 after 已经存在的字段;
        alter table 表名 add 字段名 字段类型(数字) 约束条件 first;
4.删,移除表
drop table t1;
'''

  

操作记录的MySQL语句

'''
前提:知道具体操作的是哪个库,哪张表
1.增,添加字段
insert into t1 values ("aa",18),("bb",8);
2.查
查看表里面的所有数据>>>:select * from t1;
查看指定库下指定表当中的数据>>>:select*from t1.d1;
逐行展示表当中的数据>>>:select*from t1.d1\G
3.改
update t1 set age=28 where usr="aa";
将usr为aa的数据当中的age对应的字段的值改为28,其中where是筛选条件
4.删
delete from t1 where age>8;
将age>8的数据删除
'''

 PS:SQL语句注释语法(快捷键与pycharm中的一致 (ctrl+?)!!!