热门标签 | 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 表名; -- 清空表数据 自增会归零(重置自增)


推荐阅读
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社区 版权所有