数据库入门学习

一、初识数据库

1.数据库的由来

怎么才能把数据永久保存下来,根据我们以前的所学,文件处理就可以将数据永久存储。

但是文件处理有很大的问题
  1.管理不方便
  2.文件操作效率问题
  3.一个程序不太可能仅运行在同一台电脑上

那么为了解决这些问题,采取了提高计算机性能的方式
  1.垂直扩展 指的是更换性能更好的硬件
  2.水平扩展 指的就是添加更多的计算机 把任务分配给每一台 (分布式计算)

分布式计算 的好处
  1.其中某一台挂了 不会导致整个系统瘫痪 稳定性高
  2.理论上性能可以无限扩展

基于分布式计算,我们可以把数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现),即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理

根据以上描述,我们就需要编写一套程序,一个运行在客户端,一个运行在服务端,于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来

二、什么是数据库

1.数据库

本质上就是一套软件 由服务器端 和 客户端组成 C/S B/S

早些年 没有数据库的时候 程序员要想实现功能 得自己写一套socket 并解决上述问题 
于是就有了数据库软件公司

2.目前常见的数据库

关系型数据库:数据与数据之间可以建立关联关系(用户数据和购买信息)

SQLServer :仅支持windows

MySQL:免费 开源 性能也不差 mysql 先后被sun 和 oracle收购

Oracle:目前最牛逼的数据库 收费很高

DB2:IMB 收费的 一般与计算机绑定销售

非关系型数据库:运行效率快,通过key value 存取

MongoDB

redis

memcache

3.数据库相关概念

数据:用于记录某事物状态的符号 或 别的形式 数字 音频
age = 20
记录:就是一个事物的典型特征的组合 在文件中体现为一行文本
yyh,20,man,180
表:就是一个一个的文件

库:就是一个文件夹

数据库管理系统(DBMS):就是一个软件用来管理库的 C/S程序

数据库服务器:运行着DBMS的计算机称为数据库服务器

三、mysql

1.安装

下载

从官网下载mysql,下载的时候根据电脑的版本下载32位或64位的

配置环境变量

变量名:MYSQL_HOME

变量值:C:\Program Files\MySQL\mysql-5.6.41-winx64(你的电脑的MySQL的存放位置)

path里添加:%MYSQL_HOME%\bin;

以管理员身份运行CMD

mysqld -install

MySQL服务器初始化

mysqld --initialize-insecure

启动MySQL服务

mysqld

启动MySQL客户端并连接MySQL服务

mysql -uroot -p #用mysql自带的客户端登录服务器
(-u 用户名 -p 密码 -h 服务器的ip -P端口号 在本机上执行客户端不需要指的 -h -P)

2.设置密码

mysqladmin -uroot -p旧密码 password 新密码(如果是密码为空,就不用-p)

3.忘记密码

三种方法:

1.删除存储密码的文件

2.重装mysql

3.可以在启动服务器时 告诉他 让他不要读取密码文件
  1.在服务端mysqld -skip-grant-tables

  2.无密码登录服务器

  3.在客户端就可以跳过密码的阶段直接进入服务器,使用update 来更新你的密码 在msyql.user表中
   在客户端 update mysql.user set password = password(修改后的密码) where user = "root" and host="localhost";

  4.重启服务 验证新密码

4.基本操作

数据库服务器中存放的是 库(文件加) 表(文件) 表里面是记录(一行数据)

库相关

  创建
    create database 数据库名 charset 编码名称;
  修改
    alter database 数据库名 charset gbk;   #修改指定库的编码
  查
    show databases;   #查看所有数据
    show create database 数据库名;    #查看建库语句
  删除
    drop database 数据库名; 

  ues 库名 #进入库中,可以对该库中的表进行操作

表相关

  创建
    create table 表名(字段名 类型,字段名 类型。。。。);#create table t1(id int,name char);
  修改
    alter table 表名 add | drop | modify | change;
      add 字段名 数据类型(长度);  #添加新字段名与类型(char默认为1字节,int默认为11)
      drop 字段名;  #删除指定字段
      modify  字段名 新类型;  #修改指定字段的类型
      change 旧字段名 新的字段名 新类型;  #修改指定字段的字段名与类型
    alter table t1 charset gbk;  #修改t1表的字符编码
    rename table 旧表名 to 新表名;  #修改表名
  查
    show tables;   #显示该库中的所有表
    show create table 表名;  # 查看建表语句
    desc 表名;  #  查看表结构(字段)
  删除
    drop table 表名;  #删除表
    truncate table 表名;  #重建表(清空数据);

记录

  添加
    insert into 表名 values(值1...),(值1....)....;  #插入时注意 值得顺序 和 类型必须与表结构一致
    
  修改
    update 表名 set 字段名=新的值 where 条件;  #可以同时修改多行 用逗号来隔开,字段没有条件就全改
    
  查
    select *|字段名 from 表名  where 条件;   #根据where的条件,在指定表里寻找指定字段,并显示信息(*表示所有字段)

  删除
    delete from 表名 where 条件;  #没有条件就全删

原文地址:https://www.cnblogs.com/ouyang99-/p/10354764.html

时间: 2024-10-13 03:21:52

数据库入门学习的相关文章

02 数据库入门学习-数据类型

一.数据存储引擎 1.什么是引擎 ? 引擎是一个功能的核心部分,现实中的引擎可以被分类.从动力来源来说,引擎可以分为汽油. 柴油.电动.混合动力等,需求场景的不同催生了不同的引擎类别. 在数据库中同样也是有引擎的.核心功能是存储数据 涉及到存储数据的代码 就称之为存储引擎 根据不同的需求,也有着不同的引擎分类. 创建表时在最后指定引擎名称 engine = xxx create table t1(id int)engine=innodb create table t2(id int not nu

04 数据库入门学习-单表查询、多表查询、子查询

1.复制表 #创建了一张测试表 mysql>create table test (id int primary key auto_increment,name char(10)); #显示原表结构 mysql> desc test; +-------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+---

06 数据库入门学习-视图、sql注入、事务、存储过程

一.视图 1.什么是视图 视图本质是一张虚拟的表 2.为什么要用 为了原表的安全 只要有两大功能 1.隐藏部分数据,开放指定数据 2.视图可以将查询结果保存,减少sql语句的次数 特点: 1.视图使用永久保存的,而且保存的仅仅是一条 as sql语句 2.每次对视图的查询,都是再次执行了保存的sql语句 3.对于视图的任何修改都会同步到原表 3.如何使用 语法: create view 视图名 as select * from 原表名; 验证:对视图的任何修改会改变原表  验证 二.sql注入

05 数据库入门学习-正则表达式、用户管理、pymysql模块

一.正则表达式 正则表达式用于模糊查询,模糊查询已经讲过了 like 仅支持 % 和 _ 远没有正则表达式灵活当然绝大多数情况下 like足够使用 #语法 select *from table where name regexp "正则表达式"; #实例 #准备数据 create table emp (id int,name char(10),sex char,age int,dept_id int,job char(10),salary double); insert into em

03 数据库入门学习-完整性约束、关联关系

一.完整性约束 1.什么是约束 为了保证数据的合法性与完整性,对字段进行了除了数据类型以外添加额外的约束. 2.not null 2.1意义 not null是非空约束,数据不能为空 2.2语法 create table student (id int,name char(10) not null);#名字不能为空 3.default 3.1意义 default  默认值约束,可以指定字段的默认值 3.2语法 create table user (id int,name char(10) not

《NOSQL数据库入门》学习笔记

<nosql数据库入门> 第1章 nosql数据库的基础知识 1 1.1 关系型数据库和nosql数据库 2 1.1.1 什么是nosql 2 1.1.2 关系型数据库简史 2 1.1.3 数据库的分类 3 1.1.4 关系型数据库的优势 5 1.1.5 关系型数据库的不足 5 1.1.6 nosql数据库 9 1.2 nosql数据库是什么 12 1.2.1 键值存储 13 1.2.2 面向文档的数据库 14 1.2.3 面向列的数据库 14 1.3 如何导入nosql数据库 16 1.3.

【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询

1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to_select指出你想要看到的内容,可以是列的一个表,或*表示"所有的列". which_table指出你想要从其检索数据的表. WHERE子句是可选项,如果选择该项,conditions_to_satisfy指定行必须满足的检索条件. 2.0 在我的博文"MySQL入门学习(八

mybatis入门学习

一.mybaits简介 java程序中常用的数据库框架. 二.mybait入门学习 1.环境 创建一个java或者javaweb项目:我是创建了一个structs项目,helloworld 2.添加相应的jar包

OpenGL入门学习

说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的