MySQL数据库的基本使用

一、数据库概述

1. 基本介绍

数据库就是以一定格式进行组织的数据的集合。通俗来看数据库就是用户计算机上 一些具有特殊格式的数据文件的集合

2. 数据库的特点

持久化存储

读写速度极高

保证数据的有效性

对程序支持性非常好,容易扩展

3. 数据库管理系统

数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的软件系统,包括三大部分构成:

  1. 数据库文件集合. 主要是一系列的数据文件, 作用是存储数据.
  2. 数据库服务端. 主要负责对数据文件以及文件中的数据进行管理.
  3. 数据库客户端. 对外通信

4. 数据库的分类

  • 关系型数据库

所谓的关系型数据库RDBMS,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,本质上使用一张二维表来表示关系。

  1. oracle 银行,电信等项目
  2. ms sql server:在微软的项目中使用
  3. sqlite:轻量级数据库,主要应用在移动平台
  4. mysql:web时代使用最广泛的关系型数据库。
  • 非关系型数据库
  1. 键值存储数据库(key-value): 可以通过key来添加、查询或者删除数据库,Memcached、Redis、MemcacheDB等
  2. 列存储(Column-oriented)数据库: 列存储数据库将数据存储在列族中,一个列族存储经常被一起查询的相关数据,Cassandra、HBase
  3. 面向文档(Document-Oriented)数据库: 面向文档数据库会将数据以文档形式存储,MongoDB、CouchDB
  4. 图形数据库: 图形数据库允许我们将数据以图的方式存储,Neo4J、InforGrid

二、MySQL数据库的使用

1. 常用数据类型如下:

  • 整数:int,bit
  • 小数:decimal
  • 字符串:varchar,char
  • 日期时间: date, time, datetime
  • 枚举类型(enum)

特别说明的类型如下:

  • decimal表示浮点数,如 decimal(5, 2) 表示共存5位数,小数占 2 位.
  • char表示-固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为 'ab ' .
  • varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'
  • 注意 : 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储 这个文件的保存路径. 字符串 text 表示存储大文本,当字符大于 4000 时推荐使用, 比如技术博客.

2. 数据约束

  • 主键 primary key: 物理上存储的顺序. MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned.
  • 非空 not null: 此字段不允许填写空值.
  • 惟一 unique: 此字段的值不允许重复.
  • 默认 default: 当不填写字段对应的值会使用默认值,如果填写时以填写为准.
  • 外键 foreign key: 对关系字段进行约束, 当为关系字段填写值时, 会到关联的表中查询此值是否存在, 如果存在则填写成功, 如果不存在则填写失败并抛出异常.

三、数据库相关的操作


数据库(database)的操作

Linux下运行数据库的命令

  1. 数据库登录

    mysql -uroot -p
  2. 提示输入密码

    mysql -uroot -p'passwd'
  3. 数据库服务器状态的查看

    sudo service mysql status
  4. 数据库服务器停止

    sudo service mysql stop
  5. 数据库服务器启动

    sudo service mysql start
  6. 退出数据库

    Ctrl+d
    quit
    exit

数据库系统命令

  1. 查看所有数据库

    show databases;
  2. 查看版本

    select version();
  3. 查看当前使用的数据库

    select database();
  4. 显示当前时间

    select now();
  5. 使用数据库

    use 数据库名;
  6. 创建数据库

    create database 数据库名 charset=utf8;
  7. 删除数据库

    drop database 数据库名;

表(table)结构的操作

  1. 展示当前数据库中所有的表

    show tables;
  2. 查看表结构的描述信息

    desc stu;
  3. 创建一个表结构

    CREATE TABLE table_name()
  4. 修改表的名字

    alter table 原表名 rename 新表明;
  5. 修改表-添加字段

    alter table 表名 add 列名 类型;
  6. 修改表-修改字段:重命名版

    alter table 表名 change 原名 新名 类型及约束;
  7. 修改表-修改字段:只改约束和类型

    alter table 表名 modify 列名 类型及约束;
  8. 修改表-删除字段

    alter table 表名 drop 列名;
  9. 删除表-慎重

    drop table 表名;
  10. 查看表的创建语句-详细过程

    show create table 表名;

表数据的操作

  1. 增(插入)

    insert [into] 表名称 (列1,列2,列3),(列1,列2,列3)#需要哪个填哪个,不写默认按照原数据顺序  values (值1, 值2, 值3),(值1, 值2, 值3)#要插入的数据值,可以多个元组;
  2. delete from 表名 where 条件;
  3. update 表名 set 字段名=新值(可多个参数,逗号隔开) where 条件(可用比较公式);
  4. select * from stu;
    select age,name from stu;

MySQL数据库的基本使用简单易懂的更多相关文章

  1. MySQL数据库的环境及简单操作

    ***********************************************声明*************************************************** ...

  2. MySQL数据库执行计划(简单版)

    +++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库执行计划简单版时间:2019年2月25日内容:MySQL数据库执行计划简单版重点:MySQL ...

  3. 安卓版php服务器的mysql数据库增删改查简单案例

    界面: index.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  4. MySql数据库在NodeJS中简单的基本操作

    阅读目录 一:连接数据库 二:数据的增删改查操作 2.1 数据库新增和查询数据 2.2 获取该数据的主键值 2.3 多语句查询 回到顶部 一:连接数据库 const mysql = require(' ...

  5. MySQL数据库单例连接简单实现(MySQL扩展)

    <?php /** * MySQL数据库单例实现 * * @author shizq at 2015-04-22 * */ final class MySQLFactory { private ...

  6. 面试题: mysql数据库 已看1 简单的sql练习

    数据库总结--MySQL常见面试题 2015年03月24日 17:56:06 阅读数:7787 1.根据部门号从高到低,工资从低到高列出员工的信息 select * from employee ord ...

  7. MySQL数据库—查询基础,简单查询,条件查询,对查询结果排序

    一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...

  8. mysql数据库基本知识,简单框架

    https://www.cnblogs.com/geaozhang/p/7347950.html

  9. python连接mysql数据库简单例子

    今天用pyhton2连接本地的mysql数据库,总的来说比较简单,但还是遇到一些小问题 代码如下: # -*- coding: utf-8 -*- import os import MySQLdb i ...

随机推荐

  1. vue学习的笔记补充

    // vue-router中可以使用 routes:[ { path:'/', name:'index', component:()=>import('./index') } ] // 这种写法 ...

  2. K8S集群 NOT READY的解决办法 1.13 错误信息:cni config uninitialized

    今天给同事 一个k8s 集群 出现not ready了 花了 40min 才搞定 这里记录一下 避免下载 再遇到了 不清楚. 错误现象:untime network not ready: Networ ...

  3. 【学亮IT手记】jQuery callback方法实例

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  4. spring后置处理器BeanPostProcessor

    BeanPostProcessor的作用是在调用初始化方法的前后添加一些逻辑,这里初始化方法是指在配置文件中配置init-method,或者实现了InitializingBean接口的afterPro ...

  5. js对input框的可编辑属性设置

    添加disabled属性 $('#areaSelect').attr("disabled",true); $('#areaSelect').attr("disabled& ...

  6. Codeforces 1154G Minimum Possible LCM

    题目链接:http://codeforces.com/problemset/problem/1154/G 题目大意: 给定n个数,在这些数中选2个数,使这两个数的最小公倍数最小,输出这两个数的下标(如 ...

  7. PHP的爬虫框架

    Beanbun PHPSpider PHPQuery QueryList PHPCrawer Snoopy

  8. Java HashMap的put操作(Java1.6)

    https://www.cnblogs.com/skywang12345/p/3310835.html // 存储数据的Entry数组,长度是2的幂. // HashMap是采用拉链法实现的,每一个E ...

  9. Installing Office Online Server for SharePoint 2016

    Office Online Server is the next version of the Office Web Apps, which allows your users to view and ...

  10. Nginx geo模块

    geo 模块默认编译进nginx 可以通过--without-http_geo_module禁用 Syntax: geo [$address] $variable { ... } Default: — ...