描述事务的符号记录,描述事物的符号既能够是数字,也能够是文字、图片,图像、声音、语言等,数据由多种表现形式,它们均可以通过数字化后存入计算机
在计算机中描述一个事物,就须要抽取这一事物的典型特征,组成一条记录,就至关于文件里的一行内容,如:前端
1 haiyan female 20 甘肃 计算机系
单纯的一条记录并无任何意义,若是咱们按逗号做为分隔,依次定义各个字段的意思python
id name sex age adderess major #字段 1 haiyan female 20 甘肃 计算机系 #记录
若是这样表示的话就了解了一我的的信息了,让人一看就清楚了mysql
# 什么是数据库? 数据库,就是存放数据的仓库; 数据库中的数据按必定的数据模型组织、描述和储存,具备较小的冗余度、较高的数据独立性和易扩展性,并可为各类 用户共享。
Database Management System 自己也是一个C/S架构的软件
# 定义: 数据库管理系统是数据库系统的核心组成部分,主要完成对数据库的操纵与管理功能,实现数据库对象的建立、数据库存储数据的查询、添加、修改与删除操做和数据库的用户管理、权限管理等。 通俗解释--> 这个工具负责来和硬盘打交道(固然中间还隔着操做系统),高效的管理数据,而且还支持对外通讯,网络通讯都是基于的socket,也就是说它还至关于一个socket服务端,那么想来到这个存数据的机器上来操做数据的人或者项目均可以链接到这个工具,并经过这个工具来管理数据
如MySQL、Oracle、SQLite、Access、MS SQL Server mysql主要用于大型门户,例如搜狗、新浪等,它主要的优点就是开放源代码,由于开放源代码这个数据库是免费的,他如今是甲骨文公司的产品。 oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。 sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
数据库说白了就是文件夹 数据库管理系统就是一个软件 数据库服务器:就是对外专门提供数据的一个机器 数据库服务器,数据库管理系统,表与记录的关系(重点理解) *表:student,scholl,class_list(即文件)* *数据库:lzsh_info(即文件夹)* *数据库管理系统:如mysql(是一个软件)* *数据库服务器:一台计算机(对内存要求比较高)* # 总结: 数据库服务器---运行--->数据库管理软件 数据库管理软件--->管理--->数据库 数据库---组织--->表,即文件夹---组织--->文件 表---存放--->多条记录,即文件---存放--->多行内容
数据库管理系统解决了redis
①操做文件的效率和便捷问题
②解决了多个服务同时使用数据的一致性问题
③解决了安全的问题
④解决了并发问题sql
# 数据库有两大类:关系型数据库 和 非关系型数据库
关系型数据库(RDBMS) : mysql,oracle,sqlserver,sqllite(轻量级),accessmongodb
非关系型数据库 : redis,mongodb,memcache(内存级别)数据库
# 定义:关系型数据库模型就是把复杂的数据结构归结为简单的二元关系
以下图:
macos
# 定义:非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL”,NoSQL的产生并非要完全地否认关系型数据库,而是做为传统关系型数据库的一个有效补充 # 高性能、高并发、对数据一致性要求不高
NOSQL非关系型数据库
一、NOSQL不是否认关系数据库,而是做为关系数据库的一个重要补充
二、NOSQL为了高性能、高并发而生,忽略影响高性能,高并发的功能
三、NOSQL典型产品memcached (纯内存),redis(持久化缓存),mongodb(文档的数据库)编程
结构化查询语句
其中最后一句挺重要的:不一样数据库系统之间的SQL不能彻底相互通用
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。 结构化查询语言是高级的非过程化编程语言,容许用户在高层数据结构上工做。它不要求用户指定对数据的存放方法,也不须要用户了解具体的数据存放方式,因此具备彻底不一样底层结构的不一样数据库系统, 可使用相同的结构化查询语言做为数据输入与管理的接口。结构化查询语言语句能够嵌套,这使它具备极大的灵活性和强大的功能。 1986年10月,美国国家标准协会对SQL进行规范后,以此做为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年获得国际标准组织的支持下成为国际标准。不过各类通行的数据库系统在其实践过程当中都对SQL规范做了某些编改和扩充。因此,实际上不一样数据库系统之间的SQL不能彻底相互通用
mysql> show variables like '%char%'; +--------------------------+-----------------------------------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql-8.0.17-macos10.14-x86_64/share/charsets/ | +--------------------------+-----------------------------------------------------------+ 8 rows in set (0.03 sec)
MySQL客户端链接服务端时的完整指令
mysql -h 127.0.0.1 -P 3306 -u root -p
mysql -uroot -p
exit
在mysql安装目录下建立一个my.ini(my.cnf)文件,写入下面的配置,而后重启服务端
[client] #设置mysql客户端默认字符集 default-character-set=utf8 [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 user = 'root' password = '123' [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=E:\mysql-5.6.45-winx64 # 设置mysql数据库的数据的存放目录 datadir=E:\mysql-5.6.45-winx64\data # 容许最大链接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 建立新表时将使用的默认存储引擎 default-storage-engine=INNODB
若是密码忘记了怎么办?
1 停掉MySQL服务端(net stop mysql) 2 切换到MySQL安装目录下的bin目录下,而后手动指定启动程序来启动mysql服务端,指令: mysqld.exe --skip-grant-tables 3 从新启动一个窗口,链接mysql服务端, 4 修改mysql库里面的user表里面的root用户记录的密码: update user set password = password('666') where user='root'; 5 关掉mysqld服务端,指令: tasklist|findstr mysqld taskkill /F /PID 进程号 6 正常启动服务端(net start mysql)
修改密码的三种方式
# 方法1: 用SET PASSWORD命令 首先登陆MySQL,使用mysql自带的那个客户端链接上mysql。 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@localhost = password('123'); # 方法2:用mysqladmin (由于咱们将bin已经添加到环境变量了,这个mysqladmin也在bin目录下,因此能够直接使用这个mysqladmin功能,使用它来修改密码) 关于mysqladmin的介绍:是一个执行管理操做的客户端程序。它能够用来检查服务器的配置和当前状态、建立和删除数据库、修改用户密码等等的功能,虽然mysqladmin的不少功能经过使用MySQL自带的mysql客户端能够搞定,可是有时候使用mysqladmin操做会比较简单。 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p123456 password 123 # 方法3:用UPDATE直接编辑那个自动的mysql库中的user表 首先登陆MySQL,链接上mysql服务端。 mysql> use mysql; use mysql的意思是切换到mysql这个库,这个库是全部的用户表和权限相关的表都在这个库里面,咱们进入到这个库才能修改这个库里面的表。 mysql> update user set password=password('123') where user='root' and host='localhost'; 其中password=password('123') 前面的password是变量,后面的password是mysql提供的给密码加密用的,咱们最好不要明文的存密码,对吧,其中user是一个表,存着全部的mysql用户的信息。 mysql> flush privileges; 刷新权限,让其生效,不然不生效,修改不成功。
存储引擎
默认存储引擎 Innodb 查看存储引擎 show engines;