MySQL基本概念以及简单操作
 
一、MySQL
 
  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
  MySQL是将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
  MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache可组成良好的开发环境
 
二、MySQL与其他的大型数据库比较
  例如Oracle 、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。
  Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开源软件软件(FLOSS:Free/Libre and Open Source Software),因此使用这种方式除开人工成本就可以建立起一个稳定、免费的网站系统,也被称为“LAMP“或“LNMP”组合。
 
三、数据库在Web中的重要性
 
  为使静态的HTML页面做活,变成动态页面展示,需要通过Apache服务器端PHP脚本编程语言,依托数据库处理数据,实现动态化,因此学习PHP的同时,掌握MySQL数据库的基本操作是有必要的。

四、常见的一些数据库系统

  MySQL、DB2、Oracle、SQL Server、MariaDB等等,由于MySQL已是Oracle旗下产品,可能会被闭源,不再免费,但MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,MariaDB是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM;使用XtraDB来代替MySQL的InnoDB。

五、数据库类型

  1.关系型数据库

  2.非关系型数据库

六、SQL结构化查询语言

  必须是通过服务器,连接我们的数据库,才能进行操作

  使用各种SQL语句、增、删、改、查

  1.数据定义语言(DDL):

  用于定义和管理数据对象,包括数据库,数据表等。例如:CREATE,DROP,ALTER等。

  数据库 -> 数据表:对数据库或数据表的创建、删除、修改等操作

  2.数据操作语言(DML):

  用于操作数据库对象中所包含的数据。例如:INSERT,UPDATE,DELETE语句。

  对数据的 增、删、改 这些操作,就是数据操作语言

  3.数据查询语言(DQL):

  用于查询数据库对象中所包含的数据,能够进行单表查询,

  连接查询,嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据

  返回客户机中显示。SELECT

  4.数据控制语言(DCL):

  是用来管理数据库的语言,包括管理权限及数据更改。

七、在DOC系统中操作MySQL

  由于我是个人学习,安装环境是在windows操作系统中完成的,也就是windows+Apache+PHP+MySQL的集成包,下面简称之为“wamp”。要在DOC系统中操作MySQL

前需要进行的一些配置

  1> 环境变量

    我的电脑 -> 右击属性 -> 高级系统设置 -> 环境变量 ->系统变量 ->path

    在path变量后加上;变量值

    变量值就是MySQL下的bin目录路径

    注意:必须开启wamp服务器才可以进去

  2>进入MySQL数据库

    DOS系统下清屏的命令:cls

    mysql -h localhost -u root -p -b

      -h 服务器(本地、指定服务器IP的)[本地localhost可以省略]
      -u 用户名(我们用的是root用户:超级管理员)
      -p 用户密码(不需要再它后面写密码,密码是回车之后写的)
      -b 蜂鸣器(当命令敲错了,报错时提示的声音)

  3>进入MySQL数据库以后的命令

    注意:
    1> 每一行命令结束了以后,请使用 ; 或 \g 来结束,否则命令可以一直写下去
    2> 在MySQL的命令中,如果一行命令没有敲完,就回车了,它会继续执行下去,前提是必须是一条完整的命令
    3> 退出敲错的命令、或不想继续执行下去的命令时,用\c 或者 Ctrl+c
    4> 我们要想让数据竖起来显示,在命令后用\G,有时候一行盛不下了会乱,\G可以解决这个问题
    5> \s 可以显示当前服务器的配置
    6> help 查看所有可以使用的快捷命令
    7> 如果在命令行中遇到了单引号,则MySQL认为你要输入一段字符串,所以,它是必须使用结束的单引号,可以跳出字符串输入状态;

  4> 退出数据库服务器
    \q 、 exit、 quit  三者皆可

    注意:

      要想将我们在DOS命令行下边输入的所有的命令都存储到一个文档中,就需要使用tee命令

    tee 路径;

    例如:tee E:\wamp\www\Test\Test_MySQL\1.php

八、操作数据库的一些命令

    1.创建数据库

      create database 数据库名;

    注意:
      1.如果数据库已存在,不能创建同名的数据库
      2.创建命令和数据库名都不区分大小写

      if not exists 如果数据库已存在,加上前面的关键字可以避免报错

    2.删除数据库

      drop database 数据库名;

    3.查看已创建的数据库

      show databases;

    4.使用一个数据库

      use 数据库名;

    5.查看当前我们所使用的数据库

      select database();

    6.查看建库语句

      show create database 数据库名;

      说明:通过该命令,我们可以看到所建数据库的建库语句、编码类型;

      注意:
          1.MySQL数据库中命令不区分大小写。

          2.每创建一个数据库,就会在data目录下创建一个以此数据库名称命名的文件夹。

          3.在Windows下,数据库名称也是不区分大小写的,但在Linux下,数据库名称严格区分大小写。

    7. 对数据表的操作

      表中的字段,其实可以理解为table表格中的表头

          1>创建数据表(不加任何主键信息,自增,数据限制条件的简易数据表创建)>最初练习可用
            create table 表名(
            字段名1 字段类型,
            字段名2 字段类型,
            字段名3 字段类型
            );

            注意:
            1.创建一个数据表时,它的每个字段之间用逗号","隔开;
            2.最后一个字段不用逗号",";
            3.创建完表以后,最后的括号后面使用分号结束
            4.建表时,表名后面的括号中写表的字段名(字段类型)

          2> 查看表结构

            desc 表名;

          3> 查看建表语句

            show create table 表名;

          4> 查看当前数据库存在的数据表

            show tables;

          5> 删除数据表

            drop table 表名

    8.对数据的操作

          1> 添加数据
            ① insert into 表名 (字段1,字段2……) values (值1,值2……);

            ② insert into 表名 values (值1,值2……),(值1,值2……);

            ③ insert into 表名 (字段1,字段2……) values (值1,值2……),(值1,值2……);

            ④ insert into 表名 values (值1,值2...);

            ⑤ insert into 表名 set 字段1=值1,字段2=值2...;

              注意:
                1.值和字段名要一一对应,否则会报错
                2.你写入的值一定要和数据类型相匹配

          2> 删除数据

             delete from 表名 where 条件;

              注意:删除数据的时候,一定要加上where条件,否则会删除所有的数据

          3> 修改数据

             update 表名 set 要修改的字段=修改后的值 where 条件

              注意:修改数据的时候,一定要加上where条件,否则会修改所有的数据

          4> 查找数据

             select *(所有字段) from 表;

             select 字段1,字段2.. from 表;

下面是对数据库简单操作实例:

<?php
//对数据库的简单操作方法 //显示存在所有的数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| lamp183 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec) //删除数据库lamp183
mysql> drop database lamp183;
Query OK, 1 row affected (0.01 sec) //删除数据库lamp183
mysql> drop database lamp183;
Query OK, 0 rows affected (0.00 sec) //创建数据库lmap175
mysql> create database lamp175;
Query OK, 1 row affected (0.00 sec) //查看当前的数据库[没有被使用的数据库即使被创建也不会被查询到]
mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec) //使用lamp175数据库
mysql> use lamp175;
Database changed //当前数据库显示出lamp175,说明此数据库为当前操作的库
mysql> select database();
+------------+
| database() |
+------------+
| lamp175 |
+------------+
1 row in set (0.00 sec) //查看lamp175的建库语句 /G可以纵向显示
mysql> show create database lamp175\G;
*************************** 1. row ***************************
Database: lamp175
Create Database: CREATE DATABASE `lamp175` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec) ERROR:
No query specified //查看lamp175建库语句
mysql> show create database lamp175;
+----------+--------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------+
| lamp175 | CREATE DATABASE `lamp175` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+--------------------------------------------------------------------+
1 row in set (0.00 sec) mysql> create database lamp183;
Query OK, 1 row affected (0.00 sec) mysql> use lamp183;
Database changed //在lamp183数据库中创建stu数据表
mysql> create table stu(
-> id int,
-> name varchar(32),
-> sex varchar(2),
-> age int,
-> job varchar(32)
-> );
Query OK, 0 rows affected (0.05 sec) mysql> desc stu; //查看stu数据表的表结构
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(32) | YES | | NULL | |
| sex | varchar(2) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| job | varchar(32) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) //查看stu的建表语句[可以查看到该表的编码类型,存储类型]
mysql> show create table stu;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| stu | CREATE TABLE `stu` (
`id` int(11) DEFAULT NULL,
`name` varchar(32) DEFAULT NULL,
`sex` varchar(2) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`job` varchar(32) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) //查看stu表的建表语句[竖起来查看]
mysql> show create table stu\G;
*************************** 1. row ***************************
Table: stu
Create Table: CREATE TABLE `stu` (
`id` int(11) DEFAULT NULL,
`name` varchar(32) DEFAULT NULL,
`sex` varchar(2) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`job` varchar(32) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec) ERROR:
No query specified //查看当前数据库中所有的表
mysql> show tables;
+-------------------+
| Tables_in_lamp183 |
+-------------------+
| stu |
+-------------------+
1 row in set (0.00 sec) //删除stu数据表
mysql> drop table stu;
Query OK, 0 rows affected (0.00 sec) //创建stu数据表
mysql> create table stu(
-> id int,
-> name varchar(32),
-> sex varchar(2),
-> age int,
-> job varchar(32)
-> );
Query OK, 0 rows affected (0.01 sec) //查看stu数据表的表结构
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(32) | YES | | NULL | |
| sex | varchar(2) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| job | varchar(32) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) //查看stu数据表的所有数据
mysql> select * from stu;
Empty set (0.00 sec) //在stu数据表中插入数据
mysql> insert into stu set id=9,name='haiyang',sex='w',age=38,job='toupai';
Query OK, 1 row affected (0.00 sec) //查看stu数据表中所有数据
mysql> select * from stu;
+------+----------+------+------+---------+
| id | name | sex | age | job |
+------+----------+------+------+---------+
| 1 | zhangsan | w | 18 | laobao |
| 2 | lisi | m | NULL | NULL |
| 3 | wangwu | w | NULL | NULL |
| 4 | maliu | m | NULL | NULL |
| 5 | zhaoqi | w | NULL | NULL |
| 6 | wangba | m | 20 | baoan |
| 7 | haibo | w | 28 | guigong |
| 8 | hongze | m | 17 | student |
| 9 | haiyang | w | 38 | toupai |
+------+----------+------+------+---------+
9 rows in set (0.00 sec)
//退出MySQL数据库
mysql> \q

MySQL数据库学习笔记<一>的更多相关文章

  1. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  5. MYSQL数据库学习笔记1

      MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...

  6. MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. MySQL数据库学习笔记(三)----基本的SQL语句

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  8. mysql 数据库学习笔记一

    一.navicat的引入: (第三方可视化的客户端,方便MySQL数据库的管理和维护)安装网址:https://www.navicat.com.cn/ NavicatTM是一套快速.可靠并价格相宜的数 ...

  9. MySql数据库学习笔记(1)

    MySql数据库 下载地址 https://dev.mysql.com/downloads/mysql/5.1.html#downloads 连接到本机上的MYSQL mysql -u root -p ...

随机推荐

  1. C#-★结构体★

    结构体: 结构体类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型. 结构体在几个方面不同于类:结构体为值类型而不是 ...

  2. linux I/O函数使用

    一.lseek lseek函数的作用是用来重新定位文件读写的位移. 头文件以及函数声明 #include <sys/types.h> #include <unistd.h> o ...

  3. Jmeter Grafana Influxdb 环境搭建

    1.软件安装 1.Grafana安装 本文仅涉及Centos环境 新建Grafana yum源文件 /etc/yum.repos.d/grafana.repo [grafana] name=grafa ...

  4. mac 上安装vue模版-D2 Admin

    1.首先下拉模版,打开mac自带“终端” 2.安装项目 3.出现的错误 4.启动项目

  5. 安装notepad++之后鼠标右键无Edit with notepad++

    在鼠标右键上加入使用notepad++编辑 最近发现一个问题在安装完notepad++文本编辑器之后,在一个文本文件上右键有时候并没有出现“使用notepad++编辑的选项”,不用着急可以通过简单地修 ...

  6. python web开发小结

    书籍 <python基础教程> <流畅的python> web框架 flask django tornado ORM sqlalchemy orator 消息队列 celery ...

  7. Win32创建异形窗口

    大家都见过在windows下各种气泡窗口.输入法窗口以及其他一些窗口,这些窗口看起来不像传统的windows窗那样,上面是标题栏,下面是窗口的客户区.这些窗口形状各异,可以是一个多边形,一幅图,甚至是 ...

  8. sql 性能优化相关--总结别人的总结,未做验证,先归纳

    sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应的索引,索引不合理 没有 ...

  9. webstorm 上传代码到gitlab

    1. 2. 3.push 4.填写上传url

  10. vue element 常见问题

    1. vue2.0 给data对象新增属性,并触发视图更新  $set this.$set(this.ossData, "signature", 222) // 正确用法 // 数 ...