44、数据库

一数据库概述

1.1、什么是数据库

  即存放数据的仓库,只不过这个仓库是共享的

  为了保证安全性,独立性,以及可扩展性,因此需要将文件分开保存,在一台计算机上分成不同的文件夹存放

1.2、什么是数据库管理系统

  MYSQL,Oracle,sqlite,access等等,都是一种用来管理数据库的系统软件。

  由于MySQL开放源代码,并且数据库是免费的,因此这个软件也是最常用的。

  Oracle数据库功能强大,并且安全性高,但需要收费,属于甲骨文的产品

  SQqite是微软公司的产品,应用于中大型企业

1.3、数据库服务器的内部关系

  数据库服务器(计算机,对内存要求比较高)====》数据库系统软件(MySQL,一个软件)====》数据库(文件夹)====》表(文件)====》数据(代码,信息)

1.4、数据库的特点

  1.数据结构化

  2.数据共享,低冗余,易扩充

  3.数据独立性高

  4.数据由DBMS(数据管理系统)统一管理

    1.数据的安全性保护

    2.数据的完整性检查

    3.并发控制

    4.数据库恢复

1.5、数据库管理系统的分类

  数据管理系统分为两种:关系型和非关系型

  关系型(有表结构):MySQL,SQLLITE,Oracle

  非关系型(没有表结构,使用key-value储存的):MongoDB,Redis

二、MySQL

2.1、MySQL的客户端与服务端

  任何基于网络通信的应用程序底层用的都是socket

  服务端(mysqld.exe):

    基于socket通信

    收发信息

    SQL语句

  客户端(mysql.exe):

    基于socket通信

    收发信息

    SQL语句

  在前期配置MySQL的时候尽量使用管理员权限,普通用户终端有一些命令是无法执行的

  MySQL不仅支持自己使用的客户端,还支持其他语言来充当客户端

  这需要服务器不仅可以兼容所有的语言,并且要求使用相同的SQL语句

2.2、启动

  1.切换到MySQL的bin目录下,输入mysql

  2.保留原来的cmd窗口重新打开一个

  MySQL第一次用管理员登录时,是没有密码的,直接回车即可

2.3、常用软件默认端口号

  客户端连接服务端完整的指令:mysql -h 127.0.0.1 -p 3306 -uroot -p

    MySQL  3306
    redis  6379
    mongodb 27017
    django  8000
    flask   5000

2.4、初识SQL语句

  1.MySQL中SQL语句是以分号;作为结束的标志

  2.基本指令:show databases(查看所有的数据库)

  3.连接服务端的命令可以简写:mysql -uroot -p

  4.当输入的命令不对时就可以输入\c取消错误命令:\c

  5.客户端退出:quit或者exit

  6.查看当前进程:tasklist

    查看当前具体进程:tasklist |findstr mysqld

  7.结束当前进程:taskkill/F/pid pid号

  8.当你在连接服务端时,只输入mysql也能连接,这说明你使用的是游客模式,而不是管理员身份

2.5、环境变量和系统服务

  环境变量:将mysql的启动路径加入环境变量中

  系统服务(开机自启动):

    查看当前进程:services.msc

    制成系统服务:mysqld --install

    移除系统服务:mysqld --remove

2.6、设置密码

  mysqladmin -uroot -p原密码 password 新密码

  直接在终端输入就行,不需要进入客户端

2.7、忘记密码的情况下重设密码

  1.跳过登录验证功能:mysql --skip-grant-tables

    8.0版本后使用:mysqld --console --skip-grant-tables --shared-memory

  2.直接使用无密码登录:mysql -uroop -p  直接回车

  3.修改当前密码:update mysql.user set password=password(123)where user=‘root’ and host=‘localhost’;

  4.将密码更新到硬盘:flush privileges;

  5.关闭当前服务端,以正常授权的方式进入

三、统一编码

3.1、配置文件

  程序在执行前会先加载配置文件,之后才会真正的启动

  以ini结尾的文件一般是配置文件:my-default.ini

3.2、配置文件设置编码以及登录信息

  为防止输入乱码,将输入的格式先设定好,并且可以将登录的账号密码放置配置文件内,可以直接登录,保存后重启服务才能生效

[mysqld]    #一旦服务器启动,立刻执行下面的配置
character-set-server=utf8           #将输入的格式设置成utf-8
collation-server=utf8_general_ci
[client]     #其他的客户端启动,执行下面的配置
default-character-set=utf8
[mysql]  # 一旦客户端启动,立刻执行下面的配置
user="root"             #将账号密码放入客户端的配置文件中,可以直接登录
password=123456
default-character-set=utf8

四、基本SQL语句

4.1、针对库的增删改查(文件夹)

  1.增:create database db1;

     create database db2 charset=‘gbk’;(而外指定库的格式)

  2.查:show database;

     show database db1;

  3.改:alter database db2 charset=‘utf-8’;(更改库的格式)

  4.删:drop database db2

4.2、针对表的增删改查(文件)

  在操作表的前提下,需要现在到库

  查看当前库的名字:select database();

  切换到库:use db1

  1.增:create table t1(id int,name char(4));

     create table db2.t1(id int);(使用绝对路径进行增加)

  2.查:show tables;

     show create table t1;

     desc t1;

  3.改:alter table t1 modify name char(16);

  4.删:drop table t1;

 4.3、针对数据的增删改查

  需要现有库,再有表,最后才能有数据

  1.增:insert into t1 values(1,‘Jason’);

     insert into t1 values(1,‘Jason’),(2,‘egon’),(3,‘tank’);(一次性可以增加多行数据,前面为每次增加时的序号)

  2.查:select * from t1;(当数据量特别大时,不建议使用该命令)

     select name from t1;

  3.改:update t1 set name=‘dsb’ where id>1;

  4.删:delete from t1 where id > 1;

       delete from t1 where name=‘jason’;

     delete from t1;(将表内数据删除)

posted @ 2020-05-04 17:32  疏星淡月  阅读(134)  评论(0编辑  收藏  举报