自我总结28

数据库是什么?

存数据的仓库

为啥使用数据库?

之前使用的是excel来进行管理数据

excel的缺点:

​ 管理不了大量的数据(10W量级的数据)

​ 并发操作同一个数据表格

​ 数据支持高级的操作,比如:分组,连表等

数据库的分类

关系型数据库

对每一列的数据类型会有约束,id(整型),name(字符串类型)

MySQL ----->用的比较多,免费

SqlServer ----> 微软 ,大学,政府

Oracle ---->甲骨文,收费,金融公司,阿里

sqlite---->小型的文件数据库,自己玩玩

非关系型数据库

memcache ---->十年前的产品(新浪博客)

mongodb ----> 文档型数据库

redis ----->微博

# 不强制数据类型  K/Values形式

{"name":'zekai'}
{"name":12}
{"name":[]}
{"name":{}}

最大区别

关系型数据库,把数据存在硬盘中

非关系型数据库,把数据存在内存中

mysql的架构

类似于socket的客户端和服务端

流程

  1. mysql服务端先启动,监听在某一个特定的端口(3306)
  2. mysql客户端连接服务端
  3. mysql客户端就可以发送相关的操作命令,去操作服务端存储的数据

mysql的安装

windows安装

​ 先去官网(https://dev.mysql.com/downloads/mysql/)

​ 1、下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/

​ 2、解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64

​ 3、添加环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】

​ 4、初始化 mysqld --initialize-insecure

​ 创建data目录, 初始化的数据

​ 5、启动MySQL服务 mysqld

​ 6、启动MySQL客户端并连接MySQL服务 mysql -u root -p

​ 连接MySQL服务器mysql服务端不会阻塞住

制作windows的服务

"D:\mysql-5.7.28\bin\mysqld" --install

修改mysql的密码

用mysqladmin

格式:mysqladmin -uroot -p "原密码" password "新密码"

例子:mysqladmin -uroot -p123456 password 123

用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');

# 出现的错误
C:\Windows\system32>mysql -uroot -p
Enter password:
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) # 如果出现上述错误,代表密码输入错误

常用参数

 -u : user 用户名
   -p :password 密码

   -h :host 主机名或ip  mysql -uroot -p -h 192.168.1.10
   -P : port 默认是3306  mysql -uroot -p -h 192.168.1.10 -P 3307

忘记密码,操作方式

#1 关闭mysqld的服务
#2 在cmd中执行:mysqld --skip-grant-tables  ===》 不用密码就可以登录,绕过密码验证的权限
#3 在cmd中执行:mysql   ===》 mysql -uroot -p
#4 执行如下sql指令:
    update mysql.user set authentication_string=password('') where user = 'root';
      flush privileges; (一定要操作)
#5 tskill mysqld #或taskkill -f /PID 7832
#6 重新启动mysql服务

初始mysql

SQL指令

操作数据库

​ create database 数据库名 charset utf8;

 命名规范:
                    可以由字母、数字、下划线、@、#、$
                    区分大小写
                    唯一性
                    不能使用关键字如 create select
                    不能单独使用数字
                    最长128位

​ drop database 数据库名称;

​ alter database db1 charset utf8

删除再添加
如果数据库中有数据的话,直接drop会导致数据库中的数据丢失在线上环境,不能够直接删除数据, 在删除之前,需要进行备份

​ show databases;

​ show create database 数据库名;

使用数据库

​ use 数据库名;

操作数据表

先切换到文件夹下:use db1

​ create table t1(id int,name,char)

​ drop table t1;

​ alter table t1 modify name char(3);

​ alter table t1 change name name1 char(2);

​ show tables;

操作表记录

​ insert into t1 values (1,'egon1'),(2,'egon2'),(3,'egon3');

​ delete from t1 where id= 2;

​ update t1 set name = 'sb' where id = 2;

​ select * from t1;

清空表

delete from t1; # 如果有自增id,自增的数据,仍然以删除前的最后一样作为起始
truncate table t1; # 数据量大,删除速度比上一条快,且直接从零开始

auto_increment # 表示;自增
primary key # 表示:约束(不能重复且不能为空);加速查找
posted @ 2019-10-28 18:29  jzm1201  阅读(88)  评论(0编辑  收藏  举报