MySQL基础


MySQL基础

1_数据库的基本概念

  • 用于存储和管理数据的仓库。
  • 数据库的特点:

    1. 持久化存储数据的。其实数据库就是一个文件系统
    2. 方便存储和管理数据
    3. 使用了统一的方式操作数据库 -- SQL

2_常见的数据库软件介绍

  • 常见的数据库

    关系型数据库

    • MySql
    • SqlServer
    • Oracle
    • DB2
    • SqlLite

      • 非关系型数据库
      • NO SQL
    • MongoDB
    • redis
    • hbase
    • hive
    • oceanbase

3_MySQL服务启动和关闭

  • 启动/关闭命令

    • 使用管理员身份打开cmd
    • 启动mysql的服务命令

       net start 服务名称

      例如:net start mysql

    • 关闭mysql服务

       net stop 服务名称

      例如:net stop mysql

4_MySQL登录和退出

  • 登录命令

    • 密码名文

      mysql -u用户名 -p密码
    • 密码密文

      mysql -u用户名 -p
    • 指定主机

      mysql -hip地址 -u用户名 -p
    • 全写方式

      mysql --host=ip地址 --user=用户名 --password=密码
  • 退出命令(两个命令)

    mysql> exit;<br></br> mysql> quit;

5_MySQL目录结构

  • 查看配置文件 my.ini
  • 安装目录

    例如:basedir="D:/develop/MySQL/"

  • 数据目录

    例如:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

  • 数据库管理系统和数据库

    • 数据库管理系统软件管理多个数据库
    • 数据库中会包含多张表
    • 表中存储具体的数据
  • 一个数据库管理软件--管理多个数据库---一个数据库会有多张表---一张表会有多条记录----一条记录会有多个列

进入SQL

6_SQL基本概念

  • 什么是SQL?

    • Structured Query Language:结构化查询语言
    • 其实就是定义了操作所有关系型数据库的规则。

      • 但是,每一种数据库操作的方式存在不一样的地方,称为“方言”。

7_SQL通用语法

  • 通用语法

    • SQL语句可以以单行或者多行进行书写,以分号(;)进行结尾.
    • 可以使用空格和缩进来提高SQL语句的可读性.
    • MYSQL数据库的SQL语句不分区大小写,但是关键字推荐使用大写来书写.
    • 3种注释

      • #查询当前系统中的所有数据库(单行注释)
      • -- 查询当前系统中的所有数据库(单行注释)(-- 后面必须空格)
      • /*查询当前系统中的所有数据库(多行注释)*/
  • 示例代码

    SHOW DATABASES; #查询数据库<br></br> SHOW DATABASES; -- 查询数据库<br></br> SHOW DATABASES; /*查询数据库*/

8_SQL分类

  • DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
  • DML(Data Manipulation Language)数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
  • DQL(Data Query Language)数据查询语言 用来查询数据库中表的记录(数据)。关键字:select, where 等
  • DCL(Data Control Language)数据控制语言(了解) 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

9_DDL操作数据库-创建&查询

  • CRUD的概念
    • C -> CREATE:创建
    • R -> RETRIEVE:查询
    • U -> UPDATE:修改
    • D -> DELETE:删除
  • 查询数据库

    • 查询所有数据库名称

       mysql> SHOW DATABASES;
    • 查询某个数据库的字符集:查询某个数据库的创建语句

       mysql> SHOW CREATE DATABASE 数据库名称;
  • 创建数据库

    • 创建数据库

       mysql> CREATE DATABASE 数据库名称;
    • 创建数据库,判断不存在,再创建

      mysql> CREATE DATABASE IF NOT EXISTS 数据库名称;
    • 创建数据库,并指定字符集

      mysql> CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET 字符集名;

10_DDL操作数据库-修改&删除&使用

  • 修改数据库

    • 修改数据库的字符集

      mysql> ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
  • 删除数据库(危险操作)

    • 删除数据库

      mysql> DROP DATABASE 数据库名称;
    • 判断数据库存在,存在再删除

      mysql> DROP DATABASE IF EXISTS 数据库名称;
  • 使用数据库

    • 查询当前正在使用的数据库名称

      mysql> SELECT DATABASE();
    • 使用数据库

      mysql> USE 数据库名称;

11_DDL操作表_查询

  • 查询某个数据库中所有的表名称

    mysql> SHOW TABLES;
  • 查询表结构

     mysql> DESC 表名;

12_DDL操作表_创建

  • 创建表

     mysql> CREATE TABLE 表名(<br></br>             列名称 数据类型,<br></br>             列名称 数据类型,<br></br>             列名称 数据类型<br></br>         );

    注意:最后一列不需要逗号

  • MySql数据类型

    类型 MySql 说明
    整数类型 int
    小数类型 double double(总长度,小数位长度)
    日期类型 date 表示日期(只包含年月日) yyyy-MM-DD
    日期时间类型 datetime 表示日期(包含年月日时分秒) yyyy-MM-dd HH:mm:ss
    时间戳 timestamp 时间戳类型(包含年月日时分秒) yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或者赋值为null,则默认使用当前的系统时间来自动赋值.
    字符串类型 varchar varchar(20) 存储最大字符数为20
  • 创建表示例

    • 创建数据表student

      int的id,varchar类型的name(最长20位),int类型的age,double类型的分数(最长4位,小数点后保留1位)

      date类型的birthday,timestamp类型的insert_time.

       mysql> USE 数据库;<br></br> CREATE TABLE student (<br></br>     id INT, -- 编号<br></br>     name VARCHAR(32),<br></br>     age INT,<br></br>     score DOUBLE(4,1),<br></br>     birthday DATE,<br></br>     insert_time TIMESTAMP<br></br> ); 

13_DDL操作表_删除

  • 复制表

     mysql> CREATE TABLE 新表名 LIKE 被复制的表名;
  • 删除表

     mysql> DROP TABLE 表名
  • 判断表存在,存在则删除

     mysql> DROP TABLE IF EXISTS 表名;

14_DDL操作表_修改

  • 修改表名称

    mysql> ALTER TABLE 原表名 RENAME TO 新表名;
  • 修改表字符集

    mysql> SHOW CREATE TABLE 表名; -- 查看表的字符集<br></br> mysql> ALTER TABLE 表名 CHARACTER SET 字符集名称;
  • 修改表的列

    • 添加列

      mysql> ALTER TABLE 表名 ADD 列名 数据类型;
    • 修改列

      • 修改列的名称和数据类型

        mysql> ALTER TABLE 表名 CHANGE 修改前的列名 修改后的列名 修改后的数据类型;
      • 修改列的数据类型

        mysql> ALTER TABLE 表名 MODIFY 列名 修改后的数据类型;
    • 删除列

      mysql> ALTER TABLE 表名 DROP 列名; 

15_DML_添加数据

  • DML:增删改表中的数据

  • 表中添加数据

    • 语法

       INSERT INTO 表名(列名1,列名2,列名3,...列名n) values (值1,值2,值3...值n);
    • 注意

      1. 列名和值要一一对应。
      2. 如果表名后,不定义列名,则默认给所有列添加值(简化书写)

         INSERT INTO 表名 values(值1,值2,...值n);
      3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来

16_DML_删除数据

  • 条件删除表中数据

    • 语法

       DELETE FROM 表名 WHERE [条件];
    • 注意

      • 如果不加条件,则删除表中所有记录。

         DELETE FROM 表名;
  • 删除表中所有数据

    • 语法

       TRUNCATE TABLE 表名;

      如果真的要将表中的数据全部删除,使用DELETE效率比较低,使用TRUNCATE语句会将表删除然后再创建一张空表,效率更高.

17_DML_修改数据

  • 修改表中数据

    • 语法

       UPDATE 表名 SET 列名1 = 值1,列名2 = 值2,列名n = 值n WHERE [条件]
    • 注意事项 如果不添加判断条件,则会修改本表中的所有数据.

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

本周热议
python每日一练之单元测试
zookeeper 实现一个简单的服务注册与发现(C++) 三:服务发现
zookeeper 实现一个简单的服务注册与发现(C++) 二:注册
zookeeper 实现一个简单的服务注册与发现(C++) 一:与zk保持连接
Java+MySQL笔记
一些零散笔记
TCP/IP协议栈相关知识点总结
Dart学习手册
9.ubuntu文件文本编码的查看与转换,乱码问题
C++输入输出流
扩展2
69-django-forms组件源码刨析、cookie与session
67-django-前后端传数据编码格式、ajax传json格式数据、ajax传文件数据、ajax与sweetalert结合二次确认、django自带的序列化组件、批量插入、分页器
66-django-模型层之choices参数、多对多三种创建方式、数据库三大设计范式、Ajax
64-django-模型层(ORM语法)单表查询、常见十几种查询方法、双下划线查询、多表操作、外键字段增删改查、跨表查询
62-django-无名有名分组反向解析、路由分发、名称空间、伪静态、pycharm虚拟环境、django版本区别、视图层之三板斧、JsonResponse、form表单上传文件、FBV与CBV
61-django-数据增删改、orm创建表关系、django请求生命周期流程图、路由层之路由匹配、无名分组、有名分组
60-django-静态文件配置、request对象方法初识、pycharm链接数据库(MySQL)、django链接数据库(MySQL)、orm简介、orm数据增删改查
巴基斯坦 4400 万移动用户信息泄露,黑客欲以 210 万美元比特币价格出售
支付宝杭州健康码出现异常 地铁大厅人满为患
HaowuliaoA

微信扫码关注 HaowuliaoA 订阅号

友情链接

支付猫
链才网-区块链英才
phpEnv集成环境
广州翻译公司
Lion技术博客
花香诱人醉
LyApi框架
凉风有信
快斗博客
佩晨的博客
蛙导
layui
WebIM
layer
layDate
申请友链
QQ联系