数据库

 """
 1、什么是数据库:管理数据的系统 - 安装某种管理数据的系统 - 管理的对象本质是文件
 2、存储数据的位置:内存、硬盘
 3、什么是系统:运行在硬件基础上,管理其他软件
 """
 ​
 # 数据库的组成
 """
 库:存放多张表 - 文件夹
 表:包含多条相同结构的记录 - 文件
 记录:包含多个key-value键值对的一条数据 - 二进制数据
 字段:描述信息 - 信息本身 == key-value - 二进制数据
 ​
 stu
 id name age gender
 1 Bob 18 男
 2 Tom 17 女
 ...
 ​
 teacher
 ...
 ​
 """

数据库的分类

 # 1)关系与非关系
 # 关系:数据库中表与表之间有联系 - mysql
 # 非关系:没有表概念 - redis、mongodb(介于关系与非关系)
 ​
 # 2)内存与硬盘
 # 硬盘:数据可以永久存储 - mysql、mongodb
 # 内存:数据的存取效率极高 - redis、memcache
 ​
 # 3)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,如果不是提示 不是内部或外部命令,代表已安装数据库
 ​
 1)直接连入
  i 搜索:服务,检索mysql服务,有
  停止服务,并移除服务 - 启动管理员终端:mysqld --remove
 
  ii 搜索:服务,检索mysql服务,无 (mysql使用命令启动)
  停止服务,启动管理员终端
  tasklist | findstr mysql
  taskkill /pid 进程pid /f
 
 2)连接超时
  搜索:服务,检索mysql服务,移除服务即可
 
 3)移除环境变量
 ​
 总结:如果能连入,先停止服务 | 如果添加了服务,就移除服务 | 取消环境变量配置
 """

安装

 """
 1、解压免安装版本(5.6 - 没有初始密码)
 2、配置环境变量:数据库绝对路径下的bin
 3、配置服务:
  启动管理员终端:mysqld --install [nmysql]
 """

连接数据库

 1)游客登陆(不一定能登入,登入了也啥都不能干)
 >: mysql
 ​
 2)账号密码登录
 >: mysql -u root -p
 再输入密码,没有任何提示,没有密码直接回车
 ​
 3)连接指定服务器的mysql
 >: mysql -h ip地址 -P 端口号 -u 账号 -p
 回车后敲入密码
 eg:
 >: 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=password('12345678') where host='localhost';
 ​
 5)没有登录
 >: mysqladmin -u用户名 -p旧密码 -h域名 password "新密码"
 eg>: mysqladmin -uroot -p12345678 -hlocalhost 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 owen;
 eg>: create database zero charset=utf8;
 eg>: create database tank;
 ​
 5)查看创建数据库的详细内容
 mysql>:show create database 数据库名;
 eg>: show create database owen;
 ​
 6)删除数据库
 mysql>: drop database 数据库名;
 eg>: drop database tank;

表的基本操作

 前提:先选取要操作的数据库
 ​
 1)查看已有表
 mysql>:show tables;
 ​
 2)创建表
 mysql>:create table 表名(字段们);
 eg>: create table student(name varchar(16), age int);
 eg>: create table teacher(name varchar(16), age int);
 ​
 3)查看创建表的sql
 mysql>:show create table 表名;
 eg>: show create table student;
 ​
 ​
 4)查看创建表的结构
 mysql>:desc 表名;
 ​
 5)删除表
 mysql>: drop table 表名;
 eg>: drop table teacher;

记录的基本操作

 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='张三';
 注:i) 可以只修改部分字段 ii) 没有条件下,所有记录都会被更新
 eg:> update student set name='呵呵';
 ​
 4)根据条件删除记录
 mysql>: delete from [数据库名.]表名 where 条件;
 eg:> delete from student where age<30;
05-14 18:07