初识数据库
一、什么是数据库
数据库是一个可以在一台机器上独立工作的,并且可以给我们提供高效、便捷的方式对数据进行增删改查的一种工具。
数据库是管理数据的系统,安装某种管理数据的系统,管理的对象本质是文件。
存储数据的位置有:内存、硬盘
什么是系统:运行在硬件基础上,管理其他软件
二、数据库的优势
- 程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。
- 数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
- 并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket
- 效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
三、数据库的组成
库:存放多张表>>>>文件夹
表:包含多条相同结构的记录>>>>文件
记录:包含多个key-value键值对的一条数据>>>>二进制数据
字段:描述信息,信息本身==key-value >>>>二进制数据
四、数据库分类
1、关系与非关系
- 关系:数据库中表与表之间有联系>>>mysql
- 非关系:没有表概念>>>redis、mongodb(介于关系与非关系之间)
关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构。
关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用。
非关系型:mongodb,redis,memcache
2、内存与硬盘
- 硬盘:数据可以永久存储>>>mysql、mongodb
- 内存:数据的存取效率极高>>>redis、memcache
3、sql与nosql
- sql:数据库操作通过sql语句
- nosql:数据库操作就是key - value形式(value就是一条记录)
五、卸载Mysql
"""
前提)启动终端,输入 mysql,如果不是提示 不是内部或外部命令,代表已安装数据库
1)直接连入
i 搜索:服务,检索mysql服务,有
停止服务,并移除服务 - 启动管理员终端:mysqld --remove
ii 搜索:服务,检索mysql服务,无 (mysql使用命令启动)
停止服务,启动管理员终端
tasklist | findstr mysql
taskkill /pid 进程pid /f
2)连接超时
搜索:服务,检索mysql服务,移除服务即可
3)移除环境变量
总结:如果能连入,先停止服务 | 如果添加了服务,就移除服务 | 取消环境变量配置
"""
六、安装mysql
"""
1、解压免安装版本(5.6 - 没有初始密码)
2、配置环境变量:数据库绝对路径下的bin
3、配置服务:
启动管理员终端:mysqld --install [nmysql]
"""
七、连接数据库
1、游客登录(不一定能登入,登入了也啥都不能干)
>:mysql
2、账号密码登录
>:mysql -uroot -p
再输入密码,没有任何提示,没有密码直接回车
3、连接指定服务器的mysql
>:mysql -h ip地址 -P 端口号 -u 账号 -p
回车后再敲入密码
例如:
>:mysql -hlocalhost -P3306 -uroot -p
4、退出数据库
>: quit
>: exit
八、用户信息查看
1、查看当前登录的用户
mysql>: select user();
2、root权限下可以查看所有用户信息
mysql>: select * from mysql.user;
mysql>: select * from mysql.user G # 纵向排列
mysql>: select user,password,host from mysql.user; # 查看这三个信息
3、root登录下,删除游客(操作后要重启mysql服务)
mysql>: delete from mysql.user where user='';
4、root登录下,修改密码(操作后要重启mysql服务)
mysql>: update mysql.user set password='123456' where host='127.0.0.1';
5、没有登录
mysql>: mysqladmin -uroot -p旧密码 -h域名 password "新密码";
例如:mysqladmin -uroot -p123456 -hlocalhost password "root";
mysql>: set password for 用户名@localhost = password(‘新密码’);
例如:set password for root@localhost = password('root');
6、root登录下,创建用户
mysql>: grant 权限们 on 数据库名.表名 to 用户名@主机名 identified by '密码';
九、数据库的基本操作
登录状态下
1、查看已有数据库
mysql>: show databases;
2、进入指定数据库
mysql>: use 数据库名
3、查看当前所在数据库
mysql>: select database();
4、创建数据库
mysql>: create database 数据库名 charset=编码格式;
eg>: create database zero charset=utf8;
5、查看创建数据库的详细内容
mysql>: show create database 数据库名;
6、修改数据库编码集
mysql>: alter database 数据库名 charset='utf8';
7、删除数据库
mysql>: drop database 数据库名;
十、表的基本操作
前提:先选取要操作的数据库
1、查看已有表
mysql>: show tables;
2、创建表
mysql>: create table 表名(字段们) charset=编码格式(可选);
eg>: create table student(name varchar(长度),age int);
3、查看创建表的详细内容>>>创建表的sql
mysql>: show create table 表名;
eg>: show create table student;
4、查看创建表的结构
mysql>: desc 表名;
5、修改表的字段
修改字段属性:alter table 表名 modify name char(20);
修改字段名:alter table 表名 change name user char(16); # 把字段名name改为user
修改表名:alter table 旧表名 rename 新表名;
6、删除表
mysql>: drop table 表名;
十一、记录的基本操作
前提:知道具体操作的是哪张表
1、查看某个数据库中的某个表的所有记录,如果在对应数据库中,可以直接查找表
mysql>: select * from [数据库名.]表名; # []内容代表可写可不写
注意:*代表查询所有字段
2、给表的所有字段插入数据
mysql>: insert [into] [数据库名.]表名 values (值1,....,值n);
eg:如果给有name和age两个字段的student表插入数据
1条>: insert into student values ('Bob',18);
多条>: insert into student values ('张三',18),('李四',20);
指定库>: insert owen.student values ('张三',18),('李四',20);
3、根据条件修改指定内容
mysql>: update [数据库名.]表名 set 字段1=新值1,字段n=新值n where 字段=旧值;
eg>: update student set name='王五',age='100' where name='张三';
注意:1、可以只修改部分字段 2、没有条件下,所有记录都会被更新
4、根据条件删除记录
mysql>: delete from [数据库名.]表名 where 条件;
eg>: delete from student where age<30;