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);
    
  • 相关阅读:
    Eclipse / android studio 添加第三方jar包 步骤
    Android checkbox 自定义点击效果
    Android 程序打包和安装过程
    Android 基础
    (转)Genymotion安装virtual device的“unable to create virtual device, Server returned Http status code 0”的解决方法
    (转)eclipse 导入Android 项目 步骤
    微信开放平台注册 步骤
    Android Studio 初级安装
    数组
    作用域问题代码
  • 原文地址:https://www.cnblogs.com/majingjie/p/10849812.html
Copyright © 2011-2022 走看看