zoukankan      html  css  js  c++  java
  • 初识数据库

    一.数据库前言

    1.什么是数据库*****

      存放数据的仓库 本质是文件夹

      我们已经学过的文件操作存在的缺陷

        1.程序的所有组件太大,不可能存在同一个计算机上  

        2.多用户竞争影响数据安全

        3.多用户访问,服务器需要并发

    总结:

    我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序),于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

    2.常见的数据库

      关系型 数据库之间存在某种关联关系

        oracle

          目前最好的关系型数据库,体现在用户管理,分布式

          商业用途收费

        MySQL

          免费开源,功能支持没有oracle强 但是足以满足中小企业使用

          先后被sun和oracle 收购

          mysql创始人Widenius担心被收购了以后 另起炉灶 开发了MariaDB

          mariaDB和mysql 使用方法一模一样

    二.数据库的相关概念******

      age = 18

      一个变量 被

      1.称之为一个字段

      age = 18 , name = "Jack" , genger = "man"

      一堆变量一起,

      2.称之为一条记录 对应文件中的一行

      文件需要分门别列 每个文件存储不同的数

      3.一个文件称之为表

      文件越来越多 得分文件夹

      4.一个文件夹称之为库

      数据库中包含所有内容:

      字段(列)

      记录

      表

      库

      DBMS 数据库管理系统

      数据库服务器

      一个库可以包含多个表 一个表可以包含多条记录 一条记录中有多个字段

      数据库是什么,本子上就是一套C/S架构的socket软件


    3.安装数据库与配置使用环境 ***
      1.代码界面 傻瓜式安装 记住密码
      2.绿色解压版
        1. 5.7以后的版本需要先初始化 mysqld --initialize-insecure
        2.启动需要先进入安装目录 比较麻烦 需要添加到环境变量
          打开环境变量 将mysql安装目录下的bin加入path变量
        3.将mysqld 加入到windows的系统服

    4.绿色版修改默认密码
      修改默认密码需要先登录成功
      执行update语句直接修改 user表中的密码
      5.7
      update mysql.user set authentication_string = password("root") where user = "root";
      5.6
      update mysql.user set password = password("root") where user = "root";

      修改密码方式2 不需要登录 需要知道旧密码
      mysqladmin -uroot -p旧密码 password 123

      破解密码,当忘记密码时 无法登录 也就不能值执行update语句
      思路:
      1.启动服务器时 控制它不要加载授权表
      2.无密码登录服务器
      3.执行update mysql.user set authentication_string = password("root") where user = "root"
      4.重启服务器

      用到的系统指令:
      mysqld 直接运行服务器程序
      mysqld --skip-grant-tables 跳过授权表 用于重设密码
      tasklist | findstr mysqld taskkill /f /pid 结束服务器程序
      mysql 运行客户端程序 -u用户名 -p密码 -h主机地址 -P端口号
      mysqld --install 将mysqld注册当windows服务中 在服务中叫MySQL
      windows就是绑定了一个exe程序
      sc delete mysql 删除windows服务
      exit 退出客户端

    5.简单的sql语句*****

      库:

       增

          create database 库名称

         删

          drop database 库名称

       改

          alter database 库名称 要改的属性名称

          alter database db1  char set utf8:

          alter database db1 CHARSET utf8

          注意在mysql中 utf-8不能写成utf8

       查

          show databases 查看所有数据库

          show create database 库名称 查看数据库语句

      命名规范:

        1.不能使用纯数字

        2.可以是字母 数字 下划线的组合

        3.可以下划线开头

        4.不能是关键字 如 create

        大致和python相同

        不区分 大小写

      表相关的操作

      增

        建表时要明确数据库

        use db1;

        create table 表名称(字段名 类型(长度),......)

        create table dog(nikneame char(10),gender char(1),age int)

        #创建时同时指定数据库

        create table 库名称.表名称(字段名 类型(长度),....)

      删

        drop table 表名;

      改 alter table 表名称 drop|change|modify|add

        drop 字段名称

        alter table dog drop color;

        change 旧的字段名 新的字段名 新的类型

        modify 字段名 新的类型

        add 字段名称 类型

        alter table dog add color char(10);

      重命名表

      rename table 旧表名称 to 新表名称

      rename table dog to dogtable;

      修改表的属性

      aleter table dotable DEFAULT CHARSET gbk;

      查

        show table;查看所有表

        desc 表名称; 查看表结构

    记录相关操作

      增 

        insert into 表名 values(值1,值2......)

      删 

        delete from 表名  where 字段名称 = 值

        没有条件的话修改全部

      查

        select *from 表名: *表示通配符 查看所有字段

        select 字段名称1,字段名2.. from 表名;

    六,修改默认编码

      配置文件放在安装路径目录中 就是和bin同级 名称必须叫my.ini

      # 客户端的配置

      [client]

      #mysql这个客户端的配置

      [mysql]

      user = root

      password = root

      default-character-set = utf8

      #服务器端的配置

      [mysqld]

      character-set-server = utf8

    七.数据库的引擎 ***

    八. 5.6与5.7的区别

      1.5.7需要初始化

      2.5.6游客模式 没有密码可以登录 但是无法操作数据

      3.5.7中 data数据存放目录 是由初始化时决定

        带界面的 在C:ProgrmData中

        不带界面的就在安装目录中

       5.6就在安装目录中

      4.密码存储字段名 在5.6中时password 5.7中叫authentication_string

    小结:

    1.数据库是什么?

      mysql 一种DBMS

      是一个CS的socket软件

      数据库服务器

      DBMS

      文件夹 库

      文件 表

      一个完整数据 记录

      单个数据       字段

    数据库的分类

        关系型  数据之间存在某种关联  存在硬盘上

      非关系型 数据之间存在某种关联 以key value形式存储 存在内存中

      为什么用mysql

      免费开源 能够支持中小企业使用

      安装两种方式

      1.界面

      2.解压安装

      环境变量

      系统服务

      修改默认密码

      破解密码

      修改编码(配置文件)

      简单Create Read Update Delete

    作业:

    1.int(10) 该数据类型占几个字节,10的含义是什么?

    一个,占用十个字符数即十进制十位数.
    2.总结char 和varchar的区别以及优缺点:

    char 定长 速度快 资源浪费

    varchar 变长 准确 速度慢 资源利用率高
    3.float(10,5) 能存储的最大数据是多少

    99999.99999
    4 创建学生表:有学生 id,姓名,密码,年龄 默认密码000000 性别必须是w 或 m 姓名 密码不能为空

    Create table student(id int primary key,name char(4) not null,psw char(6) default 000000 not null,age int,sex enum("m","w"));

    5 创建学校表:有学校id,学校名称,地址 校区不能重复

    Create table school(id int primary key,name char(4) not null,campus char(10)unique,address char(10) unique);
    6 创建课程表:有课程id,课程名称,课程价格,课程周期,所属校区(其实就是学校id) 校区不能为空,

    Create table cscb(id int primary key,name char(4) ,price int not null,cycle float(2,1),campus char(10),
    foreign key (campus) references school(id)
    );


    添加学生:张三,20岁,密码123

    insert into student values(100321,"张三","123345",20,'m')
    李四,18岁,密码111
    创建学校:oldboyBeijing 地址:北京昌平
    oldboyShanghai 地址:上海浦东
    创建课程:Python全栈开发一期,价格2w, 周期5个月,属于上海校区
    Linux运维一期 价格200,周期2个月,属于上海校区
    Python全栈开发20期 ,价格2w,周期5个月,属于北京校区

  • 相关阅读:
    HCIA_R&S-学习_Day05(PPPoE、DHCP、ACL、NAT)
    HCIA_R&S-学习_Day04(链路状态协议OSPF & PPP)
    HCIA_R&S-学习_Day03(路由协议基础与实现)
    【详谈 Delta Lake 】系列技术专题 之 湖仓一体( Lakehouse )
    工作7年,我的10条经验总结
    Hologres揭秘:优化COPY,批量导入性能提升5倍+
    谈谈JVM内部锁升级过程
    如何帮用户管好云账本?阿里云数据库助力收钱吧 | 甲子光年
    重磅 | 数据库自治服务DAS论文入选全球顶会SIGMOD,领航“数据库自动驾驶”新时代
    同程旅行基于 RocketMQ 高可用架构实践
  • 原文地址:https://www.cnblogs.com/gongcheng-/p/9984791.html
Copyright © 2011-2022 走看看