数据库
数据库本质就是一个C/S架构的套接字软件,用于解决用文件存储数据而带来的问题(不仅仅是存取效率低的问题)
一个程序的所有组件是不可能运行在同一台机器上的,如果这样,这个程序就完全受限于一台机器(这个机器坏掉,整个程序就没有办法执行了),再者,一台机器的性能有限,这就导致了程序的运行效率受到了物理水平的限制
对于提升计算机的性能有两种方法
从垂直面提升,不断的给计算机更新硬件--->但是一台计算机的性能终归有极限
从水平面提升,将一个程序的组件分布到多台机器上,由多台机器共同分担,但又属于一个整体,这就涉及到了多台机器的通信问题以及共享数据的加锁问题,此外还得让服务端支持并发,考虑存取效率,安全等问题
而数据库正是解决了这系列问题的套接字软件
数据库的分类
分为两大类:关系型数据库以及非关系型数据库
关系型数据库:MySQL,oracle,db2,sql server等 ---> 可以将关系型数据库理解为一类有表结构的用于处理数据存储问题的套接字软件
非关系型数据库:mongodb,redis,memcache ----> 没有表结构,用key=value的形式存储数据
MySQL中的一些概念
库 ---> 可以将其理解为文件夹
表 ---->可以将其理解为文件
记录 ----> 可以将其理解为文件中的一行内容(抽取事物的一系列典型特征拼到一起)
数据 -----> 记录现实世界中事物的某种状态
MySQL中的一些基本操作
登录/修改密码
mysql # 以root用户登录本机,密码为空/或者将用户名,密码添加到配置文件中 mysql -uroot -p mysql -uroot -p123 mysqladmin -uroot password "123456" # 没有设置密码时 mysqladmin -uroot -p"123" password "123456"
忘记密码
1.关闭mysql服务 net stop mysql 2.重新启动 mysqld --skip-grant-tables 3.登录 mysql -uroot -p 4.修改mysql库下的user表中的用户名及密码记录 update mysql.user set password=password("xzwz0502") where user="root" and host="localhost" 5.刷新 flush privileges 6.关闭mysql,并启动mysql服务 net start mysql
在win下为mysql服务指定配置文件
#在mysql的解压目录下,新建my.ini,然后配置 #1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效 [mysqld] skip-grant-tables port=3306 character_set_server=utf8 default-storage-engine=innodb innodb_file_per_table=1 #2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效 [client] port=3306 default-character-set=utf8 user=root password=123 #3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置 [mysql] ;port=3306 ;default-character-set=utf8 user=egon password=4573 #!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准
sql语句(结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型: #1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER #2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT #3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE