数据库简介
- 数据库:管理数据的系统或是安装某种管理数据的系统,管理的对象本质是文件
- 存储数据的位置:内存、硬盘
- 系统:运行在硬件基础上,管理其他软件
数据库组成
数据库的组成:库》表》记录==》字段
- 库:存放多张表 - 文件夹
- 表:包括多条相同结构的记录 - 文件
- 记录:包含多个key-value键值对的一条数据 - 二进制数据
- 字段:描述信息 - 信息本身(key - value) - 二进制数据
student ... id name age gender 1 Bob 18 男 2 Tom 17 女 ...
数据库分类
关系与非关系
- 关系:数据库中表与表之间有联系 - MySQL
- 非关系:没有表概念 - Redis、MongoDB(介于关系和非关系之间)
内存和硬盘
- 硬盘:数据可以永久存储 - MySQL、MongoDB
- 内存:数据的存取效率极高 - Redis、memcache
sql与nosql
sql:数据库操作通过sql语句
nosql:数据库操作就是key-value形式(value就是一条记录)
stu - {'name': 'Bob', 'age': 18} stus - [{'name': 'Bob', 'age': 18}, {'name': 'Tom', 'age': 18}] name - 'Jerry'
卸载
启动终端,输入mysql,如果不是提示或不是内部或外部命令,代表已安装数据库
直接连入
搜索:服务,检索mysql服务,有
停止服务并移除服务,启动管理员终端:
mysql - remove
搜索:服务,检索mysql服务,无
停止服务,启动管理员终端:
tasklist | findstr mysql taskkill /pid 进程pid /f
连接超时
- 搜索:服务,检索mysql服务,移除服务即可
移除环境变量
总结:如果能连入,先停止服务》如果已添加服务,就移除服务》取消环境变量配置
安装
- 解压免安装版本(5.6 - 没有初始密码)
- 配置环境变量:数据库绝对路径下的bin
- 配置服务:启动管理员终端:mysql -- install [nmysql]
连接数据库
第一种
- 游客登录(不一定能登入,登入了也没有任何权限)
- =>: mysql
第二种
账号密码登录
=>: mysql - u root - p 123456
再输入密码,没有任何提示,没有密码直接回车
第三种
连接指定服务器的mysql
=>: mysql - h ip地址 - p 端口号 - u 账号 - p
回车后敲入密码
eg:=>:mysql - hlocalhost - p3306 - uroot - p
第四种
- 退出数据库
- =>:quit
- =>:exit
用户信息查看
- 查看当前登录用户
- mysql>: select user()
- root登录下,查看所有用户信息
- mysql>: select * from mysql.user
- mysql>: select * from mysql.user G
- mysql>: select user,password,host from mysql.user
- root登录下,删除游客(操作后要重启mysql服务)
- mysql>: delete from mysql.user where user=''
- root登录下,修改密码(操作后要重启mysql服务)
- mysql>: update mysql.user set password=password('12345678') where host='localhost'
- 没有登录时,修改密码(操作后要重启mysql服务)
- mysqladmin -u用户名 -p旧密码 -h域名 password "新密码"
- mysqladmin -uroot -p12345678 -hlocalhost password "root"
- root登录下,创建用户
- mysql>:grant 权限们 on 数据库名.表名 to 用户名@主机名 identified by '密码'
数据库的基本操作
- 查看已有数据库
- mysql>:show databases
- 选择某个数据库
- mysql>:use 数据库名
- 查看当前所在数据库
- mysql>:select database
- 创建数据库
- mysql>:create database 数据库名 [charset=编码格式]
- create database owen
- create database zero charset=utf8
- create database tank
- 查看创建数据库的详细内容
- mysql>:show create database 数据库名
- show create database adela
- 删除数据库
- mysql>: drop database 数据库名
- drop database tank
表的基本操作
先选取要操作的数据库
- 查看已有表
- mysql>: show tables
- 创建表
- mysql>: create table 表名(字段们)
- create table student(name varchar(16),age int)
- create table teacher(name varchar(16), age int)
- 查看创建表的sql
- mysql>: show create table 表名
- show create table student
- 查看创建表的结构
- mysql>: desc 表名
- 删除表
- mysql>: drop table 表名
- drop table teacher
记录的基本操作
查看某个数据库中的某个表的所有记录,如果在对应数据库中,可以直接查找表
mysql>: select * from [数据库名.]表名
注:*代表查询所有字段
给表的所有字段插入数据
- mysql>: insert [into] [数据库名.]表名 values(值1,......,值n)
给name和age两个字段的student表插入数据
- 插入一条:insert into student values('Adela',18)
- 插入多条:Insert into student values(’恩娜‘,18),(’小椰‘,20)
根据条件修改指定内容
mysql>: update [数据库名.]表名 set 字段1 = 新值1,字段n = 新值n where 字段 = 旧值
update student set name = '王五',age = ’100‘ where name = ’张三‘
update student set name='呵呵'
注:i) 可以只修改部分字段 ii) 没有条件下,所有记录都会被更新
根据条件删除记录
- mysql>: delete from [数据库名.]表名 where 条件
- delete from student where age<20