day 33

今日内容:
一.认识数据库
    什么是数据库? >>> 存放数据的库
    文件处理就可以将文件的永久保存(open f )
    问题:
        1.管理不方便
        2.文件操作效率问题
        3.一个程序不太可能运行在同一台电脑上
    提高计算机的性能:
        1.垂直扩展:指的是更换性能更好的硬件
        2.水平扩展:添加更多的计算,把任务分配给每一台计算机(分布式计算)
           分布式计算的好处:
                1.其中一台计算机挂了,不会导致整个系统奔溃 >>>>>稳定高
                2.理论上性能可以无限扩展
            分布式运算其实也是一个整体,
            问题一:数据需要被共享 >>>>> 需要socket技术
            问题二:共享就存在竞争问题>>加锁处理(互斥锁)
            问题三:文件存取效率
    数据库:本质上就是一套基于socket编写的软件 由服务器端和客户端  C/S  B/S
    早些年 没有数据库的时候,程序员想要实现功能的自己写一套socket 并解决上述问题>>>>>有了数据库

    常见的数据库:
        1. 关系型数据库(数据间可以建立联系):
            SQLServer(微软):只支持Windows
            MYSQL(最火目前也属于Oracle):免费,开源,性能也不差(支持高并发)   先后被 sun 和 Oracle收购

            Oracle(甲骨文):目前最牛逼的数据库  收费高
            DB2(IBM):收费的 IMB主要是做硬件 ,一般与自己卖的计算机绑定

        2. 非关系型数据库(数据之间没有联系):  优点:速度快, 以key:values取  >>>一般放在缓存中
            MongoDB
            Redis
            mencache


二.数据库相关的概念:
    1.数据:用于记录某事物的状态的符号  数字 音频
       age = 200
    2.记录:一个事物的典型特征的组合 在文件中就是一行文本
        name age .......
    3.表:就是一个文件 存放的是一个记录
    4.库:就是有个文件夹  存放是的是表
            数据>>记录>>表>>5.数据库管理系统:(Database Management System DBMS) 就是一个软件用来管理库的  >>> C/S socket
    6.数据库服务器:(Database Server DBS)运行着DBMS的计算机称之为数据库服务器

三.安装mysql
mysqld:服务端
mysql:客户端
1.添加环境变量:(bin)
2.注册了系统服务: mysql --install
3.修改密码:mysqladmin :用于设置密码
    mysqladmin -uroot -p 旧密码 新密码
4.破解密码:
    1.删除存储密码的文件
    2.重装mysql
    3.可以在启动服务器时不要读取密码文件
        1.mysqld +-skip-grant-tables
        2.无密码登入
        3.使用updata 来更新数据 data.mysql.user
          updata mysql.user set password = password("321") where user = "root" and host = "localhost";
        4.重启服务,验证新密码

5. 解决编码问题:(添加一个文件 )my-default- ini


sql基础:
    数据库服务器存放的是 库(文件夹) 表(文件) 表里面的记录(一行数据)

    库相关(database):
        创建:
            create database 数据库名字 charset 编码名称
        删除:drop database 数据库名
        修改:
            alter database 数据库名字 charset gbk
        查:
         show databases
         show database 数据库名字  查看建库语句


    表相关:(table)
        创建:
            create table 文件夹名.t1(id int,name chr)
        删除:
            drop table 表名
            truncate table 表名(重建表) >>清空数据
        修改:
            该结构:
            alter table 表名 add|drop(删)|modify(修改)|change(修改)
            add 字段名 数据类型
            drop 字段名
            modify 字段名 新类型
            change  久字段名 新的字段名 新类型
            该属性:
                编码:alter table t1 charset gbk

                表名: rename table 久表名 to 新表名
        查:
            show tables;
            show create table 表名 查看建表语句
            desc 表名 查看表结构



    记录相关:
        添加:
            insert into 表名  values(值1.....),插入时值得顺序和类型必须与表一致
        删除:
            delete from  表名 where 条件
        修改:
            update 表名 set 字段名=新的值 where 条件
            可以同时多个字段名的数据
        查:
            select *|字段名 from 表名

猜你喜欢

转载自www.cnblogs.com/jxl123/p/9629571.html
今日推荐