热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL——操作数据库

文章目录1、连接数据库2、数据库增删改查3、数据表的列类型4、数据表的字段属性5、表的操作5.1、数据表的类型5.2、创建表5.3、修改表5.4、删除表6、数据表管理6.1、DML

文章目录

  • 1、连接数据库
  • 2、数据库增删改查
  • 3、数据表的列类型
  • 4、数据表的字段属性
  • 5、表的操作
    • 5.1、数据表的类型
    • 5.2、创建表
    • 5.3、修改表
    • 5.4、删除表
  • 6、数据表管理
    • 6.1、DML语言
    • 6.2、添加
    • 6.3、修改
    • 6.4、删除


MySQL关键字不区分大小写


1、连接数据库

mysql -uroot -p123456 -- 连接数据库
flush privileges; -- 刷新权限
---------------------------------------------------------
-- 所有的语句用使用;结尾
show databases; -- 查看所有的数据库mysql> use school; -- 切换数据库 use 数据库名;
Database changedshow tables; -- 查看所有数据库中所有的表
desc student; -- 查看数据库表结构create database westos; -- 创建数据库exit; --退出连接-- 单行注释
/*
多行注释
*/


2、数据库增删改查

  1. 创建数据库:

    CREATE DATABASE [IF NOT EXISTS] 数据库名;

  2. 删除数据库:

    DROP DATABASE [IF EXISTS] 数据库名;

  3. 使用数据库:

    USE 数据库名;

  4. 查看数据库:

    SHOW DATABASES;


3、数据表的列类型
  • 数值:

    tinyint十分小的数据1个字节
    smallint较小的数据2个字节
    mediumint中等大小的数据3个字节
    int标准的整数4个字节
    big较大的数据8个字节
    float浮点数4个字节
    double浮点数8个字节
    decimal字符串形式的浮点数
  • 字符串:

    char字符串0 ~ 255
    varchar可变字符串0 ~ 65535
    tinytext微型文本2^8-1
    text文本串2^16-1
  • 时间日期:

    dateYYYY-MM-DD日期格式
    timeHH:mm:ss时间格式
    datetimeYYYY-MM-DD HH:mm:ss日期+时间
    timestamp时间戳1970.1.1到现在的毫秒数
    year年份表示
  • null:

    1. 没有值,未知
    2. 不要使用null进行运算

4、数据表的字段属性
  • Unsigned:
    1. 无符号的数值
    2. 声明了该列不能声明为负数
  • zerofill:
    1. 0填充
    2. 不足的位数,使用0来填充
  • AUTO_INCREMENT:
    1. 通常理解为自增,自动在上一条记录
    2. 通常用来设计唯一的主键,必须是整数类型
    3. 可以自定义设计主键自动自增的起始值和步长
  • null not null:
    1. 如果设置为 not null,如果不给它赋值,就会报错
    2. null,如果不填写值,默认就是null
  • DEFAULT:
    1. 默认的值
    2. DEFAULT Java学不会,如果不指定该列的值,则会有默认的值

5、表的操作

5.1、数据表的类型


  • 对比:

    MYISAMINNODB
    事物支持不支持支持
    数据行锁定不支持支持
    外键约束不支持支持
    全文索引支持不支持
    表空间大小较小较大,约为两倍
  • 常规使用的操作:

    1. MYISAM:节约空间,速度较快
    2. INNODB:安全性搞,事务的处理,多表多用户操作
  • 物理空间的位置:

    1. 所有的数据库文件都在data目录下
    2. 本质还是文件的存储
  • MySQL 引擎在物理文件上的区别:

    1. INNODB:在数据库表中只有*.frm文件,以及上级目录下的ibdata1文件
    2. MYISAM:
      1. *.frm表结构的定义文件
      2. *.MYD 数据文件(data)
      3. *.MYI 索引文件(index)
  • 设置编码:CHARSET=utf8mb4


5.2、创建表


  • 创建表:

    CREATE TABLE 表名(
    `字段名1` 属性(长度) [约束,索引] COMMENT '注释1',
    `字段名2` 属性(长度) [约束,索引] COMMENT '注释2',
    `字段名3` 属性(长度) [约束,索引] COMMENT '注释3',
    )ENGINE=INNODB DEFAULT CHARSET=utf8mb4

  • 查看创建的语句:

    SHOW CREATE TABLE 表名; -- 查看创建表的语句
    SHOW CREATE TABLE 数据库名; -- 查看创建数据库语句
    DESC 表名; -- 查看表结构


5.3、修改表


  • 修改表名:

    ALTER TABLE 旧表名 RENAME AS 新表名;

  • 增加字段:

    ALTER TABLE 表名 ADD `字段名` 属性(长度);

  • 修改标的字段:

    ALTER TABLE 表名 MODIFY `字段名` 属性(长度); -- 修改字段属性
    ALTER TABLE 表名 CHANGE `旧字段名` `新字段名` 属性(长度)[约束]; -- 修改字段名并从新设置属性

  • 删除字段:

    ALTER TABLE 表名 DROP 字段名;


5.4、删除表


  • 所有的创建和删除操作尽量加上判断,以免报错

    DROP TABLE [IF EXISTS] 表名;


6、数据表管理

6.1、DML语言


  • 数据库意义: 数据存储,数据管理
  • DML语言: 数据操作语言
    1. INSERT
    2. UPDATE
    3. DElETE

6.2、添加


  • INSERT:
    1. 字段和字段之间使用英文逗号隔开
    2. 字段可以省略,但是后面的值要一一对应,不能少

    INSERT INTO 表名([字段1,字段2,字段3,···]) VALUES ('值1','值2','值3',···);


6.3、修改


  • UPDATE:

    UPDATE 表名 SET `字段名`=新内容 WHERE 条件字段名=条件; -- 修改指定的字段数据
    UPDATE 表名 SET `字段名`=新内容; -- 修改表里所有该字段的数据
    UPDATE 表名 SET `字段名1`=新内容,`字段名2`=新内容,··· WHERE 条件字段名=条件; -- 修改指定的字段数据


6.4、删除


  • DELETE:

    DELETE FROM 表名 字段名 WHERE 条件字段名=条件; -- 删除指定字段数据
    DELETE FROM 表名 字段名; -- 清空表数据 自增不会归零(不影响自增)

  • TRUNCATE:


    TRUNCATE TABLE 表名; -- 清空表数据 自增会归零(重置自增)


推荐阅读
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文将介绍由密歇根大学Charles Severance教授主讲的顶级Python入门系列课程,该课程广受好评,被誉为Python学习的最佳选择。通过生动有趣的教学方式,帮助初学者轻松掌握编程基础。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
author-avatar
丹_jie
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有