zoukankan      html  css  js  c++  java
  • 数据库及认识mysql

    数据库概念

    ​ 首先我们前面学习什么是数据,就是描述事物的符号记录称为数据,这些符号可以是数字,图片,声音,语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机。

    ​ 我们前面也学习了几种存放数据的方式,要是想永久保存数据,都是保存到文件中,但是由于一个文件只能存在于某一台机器上,这样就有很大局限性,所以就有了数据库的产生。

    ​ 那么数据库从字面意义上来看可以理解为存放数据的仓库,而这个仓库是存放在计算机的存储设备上的,而且数据是按一定的格式存放的。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可以为各种用户共享

    MySQL介绍

    ​ mysql介绍一个基于socket编写的C/S架构的软件

    ​ 客户端软件:

    ​ mysql自带:如mysql命令,mysqldump命令等

    ​ python模块:如pymysql

    ​ 简单来说:它是用于管理文件的一个软件(包含两个程序)

    ​ 服务端软件

    ​ -socket服务端

    ​ -本地文件操作

    ​ -解析指令

    ​ 客户端软件

    ​ -socket服务端

    ​ -发送指令

    ​ -解析指令

    ​ 客户端可以有很多个,Python,Java,PHP,c++都可以是一个客户端,用代码指定ip和port连接上服务端即可操作。那么会产生这样一个问题,对于不同的客户端去连接一个服务端,语言不相同无法实现交流。所以应该有共同的语言才能进行>>>>解析指令(sql语句)

    数据库管理软件分类

    ​ 关系型数据库:彼此之间有联系或有约束

    ​ sqllite,db2,oracle,acess,sql server,MySQL,注意:sql语句通用

    ​ 非关系型数据库:mongodb,redis,memcache

    ​ 可以简单的理解为:

    ​ 关系型数据库需要有表结构

    ​ 非关系型数据库是key-value存储的,没有表结构

    MySQL的安装

    ​ mysqld 服务端

    ​ mysql 客户端

    ​ 终端最好以管理员的身份运行

    ​ 切换到mysql目录下启动mysqld服务端(阻塞,监听,固定ip和port)

    	cd C:mysql
    	D:
    

    ​ 新开cmd窗口mysql客户端

    ​ 链接mysql:

    ​ mysql -h 127.0.0.1 -P 3306 -uroot -p 不输密码,直接回车

    ​ 如果是在本机登录mysqld服务端,可以简写为mysql -uroot -p

    ​ 客户端服务端请求流程分析

    ​ show databases诠释文件夹和库概念

    ​ 环境变量配置

    ​ 系统服务制作(制作之前一定要先把mysql关闭)

    		# 查看mysqld进程
    		tasklist |findstr mysqld
    		# 杀死mysqld进程
    		taskkill /F /PID PID号
    		
    

    ​ 将mysqld这款制作成系统服务软件

    ​ mysqld --install

    ​ 查看计算机当前运行程序数

    ​ services.msc

    修改密码与破解管理员密码

    修改密码

    ​ mysqladmin -uroot -p password 123

    ​ # 第一次修改完密码以后,如果以后还要修改密码

    ​ mysqldadmin -uroot -p123 password “123456”

    ​ # 为了后续调试方便,这里把密码设为空值

    ​ mysqladmin -uroot -p123 password “新密码”

    破解密码

    ​ 先关闭mysqld服务端

    ​ 以跳过授权表的方式在命令行中启动mysqld服务端

    ​ mysqld --skip-grant-tables

    ​ 客户端直接以无密码的方式登录root用户修改密码

    ​ mysql -uroot -p

    ​ 修改管理员密码

    ​ update mysql.user set password=password("123") where user="root" and host="localhost";

    ​ flush privileges;

    ​ 命令行杀死mysqld服务

    ​ tasklist |findstr mysqld

    ​ taskkill /F /PID 'PID号'

    ​ 服务管理正常启动mysqld

    统一字符编码

    mysqi命令:'s'查看编码

    修改配置文件,执行时会自动查找my.ini文件

    mysql不能输入用户名和密码,会默认以游客模式登陆,不好!

    # my.ini配置文件特点
    [mysql]
    # 终端输入mysql打头的命令就会加载下面的配置
    username='root'   # 演示确实加载该文件,但是username叫user才正确
    password = '123'
    [mysqld]
    

    通用配置

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    

    mac系统

    finder中切换到默认安装路径下/usr/local/mysql

    下面就是一大堆文件目录

    配置文件是my.cnf,没有ini等Windows上的配置文件

    基本sql语句

    对数据的增删改查

    sql书写错误,只要没加分号,可以加c使前面的sql语句失效

    ​ -针对文件夹的库

    	# 增
    	create database db1 charset utf8;
        # 改
        alter database db1 charset utf8;
        # 查
        show database;
        show create database db1;
        # 删
        drop database db1;
    

    ​ -针对文件的表

    ​ 文件首先需要在文件夹下面,所以在操作文件之前,应该先确定操作的是哪个文件夹下面的文件

    	# 切换文件夹
    	use db1;
        select database();   # 查看当前所在的库
        # 增
        create table t1(id int,name char);
        # 改
        alter table t1 modify char(16);
        # 查
        show tables;
        show create table t1;   # 查看表的详细信息
        describe t1;  /  desc t1;  # 查看表结构
        # 删
        drop table t1;
    

    ​ -针对记录

    	# 增
    	insert into db1.t1 values(1,'xxx'),(2,'yyy'),(3,'zzz');  # into可以加可以不加,db1可以指定,默认就是在当前库下
        # 改
        update db1.t1 set name='DSB' where id > 1;
        update db1.t1 set name='dsb' where id = 2 or id = 3;
        # 查
        select id,name from db1.t1;
        select * from t1;
        # 删
        delete from db1.t1 where id > 3;
        delete from db1.t1 where name='zzz';   # 这里注意如果少了一个引号,后面无论敲什么都没有用了,需要将引号补全 
    

    表操作
    存储引擎

    ​ 文件格式有很多种,对应的软件也有很多种txt,pdf等

    ​ 针对不同类型的文件,需要对应有不同的软件帮助我们去操作

    	# 查看所有的存储引擎
        show engines;
        
        # 查看不同存储引擎存储表结构文件的特点
        create table t1(id int)engine=innodb;
        create table t2(id int)engine=myisam;
        create table t3(id int)engine=blackhole;
        create table t4(id int)engine=memory;
        
        insert into t1 values(1);
        insert into t2 values(1);
        insert into t3 values(1);
        insert into t4 valuse(1);
    
  • 相关阅读:
    int **指针问题
    用 _tcscmp 替代 strcmp 或 wcscmp
    C++经典面试算法题
    目标世界上最小的Linux系统—ttylinux体验
    im-switch -s ibus错误:Error: no configuration file "ibus" exists.
    Ruby环境搭建
    emulator: ERROR: x86 emulation currently requires hardware acceleration!Please ensure Intel HAXM is properly installed and usable.CPU acceleration status: HAX kernel module is not installed!
    POJ 1007 DNA Sorting
    POJ 1002 487-3279
    Ubuntu Android adb调试无法识别设备 -- List of devices attached ???????????? no permissions
  • 原文地址:https://www.cnblogs.com/yangyinyin/p/10849687.html
Copyright © 2011-2022 走看看