数据库01

数据库

  数据库就是存储数据的仓库(容器)

  存放数据的方式

    1 变量 无法永久保存

    2 文件处理 可以永久储存

  文件处理的弊端:

    1 文件处理速度慢

    2 文件只能在自己的计算机上读写 无法被共享

  单台计算机的性能终归有限,一旦把服务器拆分后,数据就必须能够被不同计算机共享,必须通过网络,也就是socket

  数据库软件的本质就是一个基于socket(tcp)的c/s结构的程序

  如果自己实一个数据库软件,需要解决几个问题

    1 一旦数据共享,就存在竞争问题,需要处理锁

    2 不是所有的TCP连接请求都要接受,得加上安全验证

    3 文件处理带来的效率问题,需要想办法来提高处理速度

  现在很多数据库软件可以直接使用

  1 关系型数据库

    该类型的数据,提供某种机制,可以帮你维护

    数据与数据之间存在某种关系

    一般都是基于文件实现

    优点:容量大,可以永久存储

    例如:

      mysql 免费开源,支持中小型企业并发

      oracle 商用收费,学习免费,功能比mysql强大,用户挂了和集群

      SQLServer 属于微软生态圈,只能运行于windows上

      mariaDB 基于mysql开发的mariaDB 使用起来一模一样

      DB2 IBM公司  

      sqlite 非常轻量级的数据库

    共同特征都支持SQL :结构化查询语句,学习数据库的重点也就是SQL语句

  2 非关系型数据库

    数据与数据之间是独立,不存在任何关联关系

    以key:value的形式来存储数据,一般基于内存

    优点:速度快   问题:断电丢失

      mongoDB  redis  memcache

  这两种数据库应该搭配使用,把数据量大的存在关系型中

  把经常访问的放到非关系型中,提高访问速度

数据库相关概念

  数据:本质上是一堆带有含义的符号

  数据记录:多个数据组成了一条完整的记录

  表:本质就是一个文件,里面存储一堆数据记录

  库:本质就是一个文件夹,里面存放一堆表

  DBMS:data base manager system

      数据库管理系统(TCP的服务器)

      负责挂了一堆文件夹

  数据库服务器:指定是运行有TCP服务器的程序的计算机

  DBMS和服务器一般是由运维管理

  mysqld是服务器主程序

  mysql 是无界面客户端需要在CMD运行

  mysql连接服务器需要指定以下参数

  -h 主机地址(ip)

  -p 端口号(默认3306)

  -u 用户名

  -p 密码

  服务器和客户端在同一台电脑,可以省略主机地址和端口号

mysql安装

  1 带界面的路next

  2 压缩包,直接解压

    添加环境变量

    注册系统服务(mysqld --install)

  修改管理员密码

    1 知道原密码(mysqladmin -uroot -p password 新密码)

    2 不知道原密码 可以在启动服务器时跳过授权表(mysqld --skip-grant-tables)

      无密码登录服务器,执行修改密码的指令

      (updata mysql.user set password = password("新密码") where user = "root" and host = "localhost")

关于库的语句

  创建库  (create database 库名称;)

  删除库  (drop database 库名称;)

  修改库的属性  (alter database 库名称 charset = "新编码";)

  查看创建库详细信息  (show create database 库名称;)

  查看所有数据库  (show databases;)

  选择一个数据库  (use 库名称;)

关于表

  创建表

    create table 表名称(字段 类型,字段,类型);

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

  查看所有表  (show tables;)

  查看表的详细信息  (show create table 表名;) 

  查看表结构  (desc 表名;)

  改

    alter table 表名 charset = "新编码";   改编码

    alter table 表名 add 字段 类型;  添加字段

    alter table 表名 drop 字段;  删除字段

    alter table 表名 modify 字段 新类型;  修改字段的类型

    alter table 表名 change 旧字段 新字段 新类型;  修改字段的名称和类型

    rename table 旧表名 to 新表名; 修改表的名称

  删除  drop table 表名;

数据相关

  插入

    insert into 表名 values(值,值...);  插入一条

    insert into 表名 values(值,值...),(值,值...),(值,值...)...;  插入多条

    insert into 表名(字段) values(值)   指定插入字段

  查看  select * from 表名;

  修改  update 表名 set 字段 = 值 where 字段 = 值;

  删除   delete from 表名 where 字段 = 值;

  

猜你喜欢

转载自www.cnblogs.com/LinChengcheng/p/10523616.html