zoukankan      html  css  js  c++  java
  • MySQL安装配置及sql语句

    内容大纲

    1、数据库概念
    2、MySQL介绍
    3、MySQL的安装
    4、安装后续处操作
    5、基本SQL语句
    6、存储引擎
    

    一、数据库概念

    数据库:DataBase,简称DB
    	数据库就是存放数据的仓库,支持共享数据,增删改查数据的功能
    
    数据库管理系统:DataBase Management System 简称DBMS
    	数据库管理系统就是可以帮我们管理、处理数据的软件
        
    	常见的数据库管理系统(数据库软件):
        	# 关系型:彼此之间有约束或者有联系
        	关系型数据库:sqlite,db2,oracle,access,sql server,MySQL  # MySQL为当前主流数据库管理系统
            
        	非关系型数据库:redis,mongodb
            
    4 数据库服务器、数据管理系统、数据库、表与记录的关系(重点理解!!!)
    
        记录:1 刘昊然  324245234 22 (多个字段的信息组成一条记录,即文件中的一行内容)
    
        表:student,scholl,class_list(即文件)
    
        数据库:oldboy_stu(即文件夹)
    
        数据库管理系统:如mysql(是一个软件)
    
        数据库服务器:一台计算机(对内存要求比较高)
    

    二、MySQL介绍

    MySQL:用于管理数据的一个软件(有两个程序)
    	1) 服务端软件
            socket服务端
            本地文件操作
            解析指令
            
        2) 客户端软件
            socket客户端
            发送指令
            解析指令
            
    	客户端可以有很多个,Python, Java,PHP, C++都可以写客户端,客户端基于socket用IP、port来连接服务器并发送指令, 不同的语言指令不同,因此要统一指令 ==> 解析指令(SQL语句)
    

    三、MySQL的安装

    官网下载自己要下载的版本的MySQL,解压下载文件
    

    四、安装后续处理操作

    1、将MySQL启动文件路径添加到环境变量(bin目录)
    2、将MySQL制作成系统服务,即可以开机自启动,以及可以在-运行-services.msc的窗口中直接打开/关闭/重启MySQL
    	1)一定要先将MySql进程杀死
    	2)【mysqld --install】  # 将mysqld服务端制作成系统服务(开机自启动)
    3、设置密码:
    	【mysqladmin -u root -p password 123】  # password 后跟的是新密码
    	# 第一次修改完密码之后,之后再修改密码就需要:
    	【mysqladmin -u root -p123 pasword 新密码】
    	# 后续为了调试方便,这里把密码设置为空值
    	【mysqladmin -u root -p123 password 】
    4、破解密码:
    	1)先关闭服务器
    	2)以跳过用户密码认证的模式重新启动服务端
    		【mysql --skip-grant-tables】
    	3)以管理员身份登陆
    	4)修改mysql库里面的user表
    		【update mysql.user set password=password(123) where user='root' and host='localhost';】
    	5)先关闭跳过验证的服务端,以正常模式启动服务端
    	6)输入用户名、密码 正常登陆
    	
    5、解决编码问题:
    	1)在mysql根目录下新建一个名为【my.ini】的配置文件,在文件中固定加上下面的配置即可设置编码问题
    	# ----------------------------------------
    	[mysqld]
                character-set-server=utf8
                collation-server=utf8_general_ci
         [client]
                default-character-set=utf8
         [mysql]
                default-character-set=utf8
    	# ----------------------------------------
    	2)重新启动你的MySQL服务端,配置才会生效
    	
    	
    	
    # 启动:
    	服务端:
    		【mysqld】
    	客户端:
    		【mysql -h 127.0.0.1 -p 3306 -u root -p】
    		也支持简写
    		【mysql -u root -p】
    		写完会让你输密码,不用管,直接敲回车就OK
    		
    	sql语句第一条命令:
            查看所有数据库:
                【show databases;】
        注意:输入sql语句的时候,一定要用英文分号结束
        如果输入的sql语句错了不想执行的话可以在后面跟上【c】取消该命令的执行
        退出客户端:【exit】,【quit】
    

    五、基本SQL语句

    # 读前需知
    # 以下代码皆在cmd中运行
    # 以下所有的不易与文字区分的代码皆用中文输入法中的【】来包括
    
    对数据的操作逃不出 增删改查
    
    SQL语句最后面都要以英文的分号结尾【;】,若没加, 可以再下一行中单独写一个【;】
    
    # 代码示例:
    
    # 执行 查看现有的所有库 的指令
    mysql> show databases  # 原应打【show databases;】
        -> ;  # 此为后补的【;】
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |  # 这个库是系统内存中的,暂且忽略
    | mysql              |  # 以下3个库是系统默认存在的4个库
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.16 sec)
    
    SQL语句书写错误,若是没加分号,写【c】就可使前面的sql语句失效
    # 解决错误,代码示例:
    mysql> show databases
        -> c
    mysql>
    

    针对文件夹(库)的SQL语句

    # 增--------------------------------------
    【create database db1 charset utf8;】  # 创建了一个名叫db1的文件夹,文件夹中数据的编码方式为utf8
    
    # 改--------------------------------------
    【alter database db1 charset gbk】  # 更改文件夹db1的编码方式
    
    # 查--------------------------------------
    【show databases;】  # 查看现有的所有文件夹
    【show create database db1;】  # 查看文件夹db1的详细信息
    
    # 删--------------------------------------
    【drop database db1;】  # 删除文件夹db1
    
    
    # =======以下为增删改查的综合代码演示========
    
    mysql> show databases;  # 查看现有的库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |  # 初始默认的4个文件夹
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql> create database db1 charset utf8;  # 创建了一个名叫db1的文件夹,文件夹中数据的编码方式为utf8
    Query OK, 1 row affected (0.00 sec)
    
    mysql> show databases;  # 查看现有的所有库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | db1                |  # 可以查看到文件夹db1已被创建
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql> alter database db1 charset gbk;  # 将文件夹db1中数据的编码方式为gbk
    Query OK, 1 row affected (0.00 sec)
    
    mysql> show create database db1;  # 查看指定文件夹的详细信息
    +----------+-------------------------------------------------------------+
    | Database | Create Database                                             |
    +----------+-------------------------------------------------------------+
    | db1      | CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET gbk */ |
    +----------+-------------------------------------------------------------+
    # 编码方式更改成功
    1 row in set (0.00 sec)
    
    mysql> drop database db1;  # 删除文件夹db1
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show databases;  # 查看现有的所有库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |  # 可以看到文件夹db1已被删除
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    

    针对文件(表)的SQL语句

    文件是创建在文件夹下的,所以在操作文件之前,要先选择在哪个文件夹下操作
    
    # 切换文件夹
    【use db1;】  # 切换到文件夹db1中
    【select database();】  # 查看当前所在的库
    
    
    # 增--------------------------------------
    【create table file1(id int,name char);】  # 创建出来的可能是多个文件,解耦管理
    
    # 改--------------------------------------
    【alter table file1 modify name char(16);】
    
    # 查--------------------------------------
    【show tables;】  # 查看当前库的表
    【show create table file1;】  # 查看表file1的详细信息
    【describe file1;】 <==> 【desc file1;】  # 查看表结构
    
    # 删--------------------------------------
    【drop table file1;】  # 删除表file1
    
    
    # =======以下为增删改查的综合代码演示========
    
    mysql> show databases;  # 查看现有的所有库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | db1                |  # 存在db1
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql> use db1;  # 切换到文件夹db1下进行操作
    Database changed
    mysql> select database();  # 查看当前所在的库
    +------------+
    | database() |
    +------------+
    | db1        |  # 当前在库db1中
    +------------+
    1 row in set (0.00 sec)
    
    mysql> create table file1(id int,name char(8));  # 创建文件file1,括号中参数即表头等
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> alter table file1 modify name char(16);  # 更改文件file1属性
    Query OK, 0 rows affected (0.04 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> show tables;  # 查看当前库的所有文件
    +---------------+
    | Tables_in_db1 |
    +---------------+
    | file1         |  # 文件file1已创建成功
    +---------------+
    1 row in set (0.00 sec)
    
    mysql> show create table file1;  # 查看表file1的详细信息
    +-------+-----------------------------------------------------------------------
    --------------------------------------------------+
    | Table | Create Table
                                                      |
    +-------+-----------------------------------------------------------------------
    --------------------------------------------------+
    | file1 | CREATE TABLE `file1` (
      `id` int(11) DEFAULT NULL,
      `name` char(16) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    +-------+-----------------------------------------------------------------------
    --------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> describe file1;  # 查看表file1的结构
    +-------+----------+------+-----+---------+-------+
    | Field | Type     | Null | Key | Default | Extra |
    +-------+----------+------+-----+---------+-------+
    | id    | int(11)  | YES  |     | NULL    |       |
    | name  | char(16) | YES  |     | NULL    |       |
    +-------+----------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    
    mysql> desc file1;  # 查看表file1的结构
    +-------+----------+------+-----+---------+-------+
    | Field | Type     | Null | Key | Default | Extra |
    +-------+----------+------+-----+---------+-------+
    | id    | int(11)  | YES  |     | NULL    |       |
    | name  | char(16) | YES  |     | NULL    |       |
    +-------+----------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    
    mysql> drop table file1;  # 删除表file1
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> show tables;  # 查看当前库的所有文件
    Empty set (0.00 sec)  # 系统提示当前库已没有文件了
    

    针对记录(数据)的SQL语句

    # 增--------------------------------------
    【insert into db1.file1 values (1,'egon'),(2,'kevin'),(3,'jason');】
    # into可加可不加,db1可以不指定,默认就是在当前库下
    
    # 改--------------------------------------
    【update db1.file1 set name='wjw' where id > 1;】
    【update db1.file1 set name='wjw' where id = 2 or id = 3;】
    
    # 查--------------------------------------
    【select id,name from db1.file1;】  # db1可以不指定,默认在当前库下
    【select * from file1;】
    
    # 删--------------------------------------
    【delete from db1.file1 where id > 3;】
    【delete from db1.file1 where name='egon';】
    # 这里注意,如果少了一个引号,后面无论敲什么都没有用,必须要将引号补全
    
    
    # =======以下为增删改查的综合代码演示========
    
    mysql> show databases;  # 查看现有的所有库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | db1                |  # # 存在db1
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql> use db1;  # 切换到文件夹db1下进行操作
    Database changed
    mysql> select database();  # 查看当前所在的库
    +------------+
    | database() |
    +------------+
    | db1        |
    +------------+
    1 row in set (0.00 sec)
    
    mysql> show tables;  # 查看当前库的所有文件
    +---------------+
    | Tables_in_db1 |
    +---------------+
    | file1         |  # 文件file1已存在
    +---------------+
    1 row in set (0.00 sec)
    
    mysql> insert into db1.file1 values (1,'egon'),(2,'kevin'),(3,'jason');  # 按照文件的表头个数即类型,来传入相应的记录
    Query OK, 3 rows affected (0.00 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> update db1.file1 set name='zdc' where id > 2;  # 删除所有id大于2的记录
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> update db1.file1 set name='wjw' where id = 1 or id = 2;  # 删除id等于1和id等于2的记录
    Query OK, 2 rows affected (0.00 sec)
    Rows matched: 2  Changed: 2  Warnings: 0
    
    mysql> select id,name from db1.file1;  # 从表file1中查看表头id,表头name下的所有记录
    +------+------+
    | id   | name |
    +------+------+
    |    1 | wjw  |
    |    2 | wjw  |
    |    3 | zdc  |
    +------+------+
    3 rows in set (0.00 sec)
    
    mysql> select * from file1;  # 查看file1中的所有记录
    +------+------+
    | id   | name |
    +------+------+
    |    1 | wjw  |
    |    2 | wjw  |
    |    3 | zdc  |
    +------+------+
    3 rows in set (0.00 sec)
    
    mysql> delete from db1.file1 where id < 2;  # 删除表file1中 id小于2的所有记录
    Query OK, 1 row affected (0.00 sec)
    
    mysql> delete from db1.file1 where name='zdc';  # 删除表file1中 name为'zdc'的记录
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from file1;  # 查看file1中的所有记录
    +------+------+
    | id   | name |
    +------+------+
    |    2 | wjw  |  # 上面分别删除了id为1和name为'zdc'的记录,因而只剩(2,wjw)
    +------+------+
    1 row in set (0.00 sec)
    

    六、存储引擎

    文件格式有很多种(txt, pdf,docx),对应的软件也有很多种(文本编辑器,wps,word)
    
    针对不同类型的文件,需要对应有不同的软件帮助我们去操作
    
    # 查看所有的存储引擎
    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 values(1);
    
  • 相关阅读:
    help python(查看模块帮助文档)
    Vim常用快捷键
    tar 解压缩
    目前的学习计划
    学习方向
    C#转Python计划
    困惑的屌丝,求方向。。。
    修改PYTHONPATH的一种方法(在Window平台和Ubuntu下都有效)
    使用正则表达式统计vs项目代码总行数[转]
    日常工作细节汇总
  • 原文地址:https://www.cnblogs.com/majingjie/p/10849812.html
Copyright © 2011-2022 走看看