数据库37天

数据库

总览

day1 介绍数据库\安装\基础的命令
day2 数据库的表操作
day3 数据库的数据操作,查询(单表\多表)
day4 查询和其他内容的拾遗
day5 索引原理和python操作mysql

软件就是让频繁的人做的事情,交给机器去做了 ------- Eva-j

day1

背景

数据库在开发的过程中占据着什么样的位置?
    我们把数据存储在文件里
        #写 writE
        #读 read
        #改 读->写->删->改
        
    能够更加简单的 使用 存储在文件中的数据        
    查 一行数据 从userinfo 条件 id = 10 或者 id =1  找500000 得找500000行

在整个项目中又有什么意义?
    数据库: 能够更加简单的 使用 存储在文件中的数据
    能够更好的解决并发问题
        第一个相对论:即使client  依赖数据库    又是server  提供用户
    数据的统一问题

数据

1,alex,alex3714 # 一行内容就是一条数据
2,python,19800,6 months # 一条数据

数据库 DataBase DB

存储数据的地方,我们把所有的数据都存储在一个固定的地方,那么这个地方就是数据库

数据库管理系统 DBMS

负责管理数据仓库中存储的所有文件中的内容
能够更好(简单 高效 安全)的帮助我们完成数据的增删改查

数据库服务器

​ 什么是服务器 : 本质就是一台计算机
​ 当一台计算机上安装了某个软件能够对外提供服务的时候,那么这台机器就成为服务器
​ 数据库服务器
​ 当这台机器上安装的服务是一个数据库的server端的时候,我们就得到了一台数据库服务器

数据库管理员 DBA

​ 专门帮助我们管理数据库 并且优化数据库的工作人员

mysql就是一个DBMS(能够管理硬盘上数据文件的一个软件)

​ 通过一些固定的简单的指令 帮助我们完成从文件中查找对应数据的软件
​ oracle 也是一个DBMS

查 name,id 从 userinfo 条件 age = 83
查 number 从 userinfo 条件 name='wusir'

数据库管理系统的作用:
关系型数据库

​ id name age phone_num 知道一个id 可以找到age 知道age 找到id name

​ mysql  oracle sql server   sqlite (学会一个其他的差不多)

扫描二维码关注公众号,回复: 6247601 查看本文章
非关系型数据库

​ key -value

​ 通过一个找其他所有 而不能通过别的找别的(查找速度非常快)快递订单

​ redis(进程之间的通信 数据库非常火的一个)  mongodb (之后做的 智能机器人的库)

mysql 开源的软件 - 小公司 各种互联网公司(二次开发之后的mysql)
oracle 付费的 - 金融行业 国企事业单位
sql server 在学校里教学使用的

如果关系非常关联用关系型。 如果不关联,都可以非关系型的

mysql 安装
先配置my.ini    里面的每行没有空格 设置安装目录
加环境变量
安装目录在\bin 文件里
cmd 管理员运行  安装目录\bin\mysqld install    
net start mysql 启动mysql         找不到dir文件,用360修复一下
mysql -uroot -p          
enter pw :        回车   之后进入mysql 就对了 
show variables like '%charac%';   value 都是utf8就对了
mysql卸载
D:\mysql\mysql-5.6.43-winx64\mysqld remove  移出服务
把mysql整个文件都删掉\环境变量也删掉 
重启电脑
环境变量
当我们执行一个系统中的可执行文件的时候
例如 mysql.exe或者 mysqld.exe或者python.exe
如果我们不配环境变量,
那么就需要进入mysql.exe所在的目录去执行
或者带着这个文件的绝对路径去执行
我们经常要执行这些文件
所以把文件的路径添加到环境变量中
就可直接输入文件名来执行程序了

一些命令

mysqld install
    #mysqld.exe install  要安装mysql的server端     是一个程序而不是一个进程
    
net start mysql 启动server端   
                    ftp一样  只有server 运行不了   开启自启动  以后不需要启动了额
mysql -uroot -p 启动client端

重启server
net stop mysql
net start mysql

client端的启动
c://>mysql -uroot 表示没有密码的情况下用root用户登录
c://>mysql -uroot -p 表示使用密码登录
Enter password:输入密码,如果没有密码直接回车
mysql命令行
mysql > select user();    查看当前用户
set password = password('123');   给当前用户设置密码
show databases;    查看当前的所有数据库
            
能不能给一个用户一个root ?

root 用户在mysql 当中相当于管理员用户

其他的程序员想要使用数据库来存储项目数据,不能给他权限最高的管理员用户

比如 : 创建一个eva 账户,Ta可以查看她的文件内容  
        创建一个liu账户,他可以查看他的文件内容   不能看别的  也没管理权删别的
可以创建用户 并且给用户授权
可以创建用户  并且给用户授权
create user '[email protected].%';   什么都做不了  没有权限
create user '[email protected].%' identified by '123';  带密码登录

既可以给一个已经  存在的用户授权 ,也可以给一个不存在的用户创建并授权
grant  权利 on '数据库名.表名'  to  '用户名@ip地址'  ;
grant  权利 on '数据库名.表名'  to  '用户名@ip地址' identified by '123' ;
    #权利:SELECT  INSERT UPDATE  DELETE  ALL      #对所有的项目增删改查 最高的权限了
创建一个数据库 s20_day1;
create database s20_day1 ;
连老师的数据库
创建一个stu 用户  密码是123 ip地址是192.168.16 网段的所有机器
能对这个数据s20_day1 做增删改查的所有操作:
grant all on 's20_day1.*' to '[email protected].%' identified by '123';
192.168.16.13  
mysql- ustu -h192.168.16.13 -p 
123

# grant all on s20_day1.* to 'stu'@'192.168.16.%' identified by '123';
# 用户名 密码 ip地址
# mysql -u用户名 -hip地址 -p
# 密码
DDL DML DCL

一般用ddl dml。 dcl 是授权

1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
ddl语言 文件夹(数据库)的增删改查
创建数据库:
      create database 数据库名;             指定编码utf8   ;  默认就是utf8 创建成功之shiy
使用数据库:
     use  库名;
查看数据库下有哪些表:
    show tables;
改: alter  database  .... 改编码格式
删除: drop database db1:
操作文件(重点)
创建表:
    create table 表名(字段名 数据类型(长度),字段名2 数据类型(长度),...)
查看表结构:
    desc 表名;
修改表
    alter table 表名 change name username char(12);   比如:字段名2name  改成username
删除表
    drop table t1;
dml 语言

数据的增删改查

  增加
    insert into 表名 values (值1,值2,...); 插入一条数据
    insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...); 插入多条数据
    查看数据
    select * from 表名;
    修改数据
    update 表 set 字段名=值 where 条件;
    删除数据
    delete from 表 where 条件;
    
insert into t1 values(1,'alex','ab');
insert into t1 values(2,'wusir','t123'),(3,'taibai','333');

update t1 set password ='222'   把所有的ab t12 333 都改成了222
update t1 set set password = '222' where id =3 ;   改一个

select * from t1;

delete from t1 where id = 1; 

猜你喜欢

转载自www.cnblogs.com/Doner/p/10872794.html