MySQL-02-操作数据库

2.1 对数据库的操作

  1. 创建数据库

    CREATE DATABASE (IF NOT EXISTS) brucexu;
    
  2. 删除数据库

    DROP DATABASE (IF EXISTS) brucexu;
    
  3. 使用数据库

    -- 如果使用的表明/字段名/数据库名称是一个特殊字符,需要加上``进行修饰
    USE 'brucexu';
    
  4. 查看数据库

    SHOW DATABASES;
    

2.2 数据库常见的数据类型

  1. 数值类型

    数据库中的类型 占用空间(字节) 对应的Java类型
    int 4 int
    float 4 float
    double 8 double
    decimal 以字符串形式存储的浮点类型,常用于金融计算 BigDecimal
  2. 字符串类型

    数据库中的类型 用处 长度 对应的Java类型
    char 储存字符串 0~255 String
    varchar 储存字符串 0~65535 String
    text 储存大型文本内容 2^16-1 String
  3. 时间日期

    • 日期格式:YYYY-MM-DD,date
    • 时间格式:HH-MM-SS,time
    • 数据库常用的时间类型
      • 日期时间 datetime,YYYY-MM-SS HH:MM:SS
      • 时间戳格式 1970.01.01到现在为止的毫秒数
  4. NULL,表示没有值,未知,使用NULL进行运算得到的结果均为NULL

2.3 数据字段属性

  • UnSigned

    • 无符号的
    • 声明该数据列不允许使用负数
  • ZEROFILL

    • 若数据不满足设置长度,则用0进行填充
    • 如int(5),5则为00005
  • 自增

    • 自动增长,每添加一条新的数据之后,自动在上一条记录上+1
    • 通常用于设置主键,且数据类型必须为int
    • 可以自定义步长和起始值
  • NOT NULL

    • 数据不能为空
  • DEFAULT

    • 用于设置数据的默认值
    • 在没有设置指定值的情况下,该数据的值即为默认值
  • 扩展内容

    • 阿里巴巴数据库设计规范中规定了一个表中必须有如下几个字段

      • id,id必为主键,类型为unsigned bigint其中、单表时自增、步长为1
      • is_delete,标记删除标志,删除数据时不真正删除
      • gmt_create,创建日期
      • gmt_modified,修改日期

2.4 创建一张表

  • 格式

    CREATE TABLE [IF NOT EXISTS] `表明` (
        `字段名` 列类型 [属性] [索引] [注释],
        `字段名` 列类型 [属性] [索引] [注释],
        `字段名` 列类型 [属性] [索引] [注释]
    )[表类型] [字符集设置] [注释];
    
  • 示例

    创建一个school数据库,库中包含student表,表中含有id、登录密码、姓名、性别、出生日期、家庭住址、email等字段

    CREATE DATABASE IF NOT EXISTS `school`; 
    USE `school`; 
    CREATE TABLE IF NOT EXISTS `student` ( 
        `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', 
        `name` VARCHAR(5) NOT NULL DEFAULT '张三' COMMENT '姓名', 
        `password` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码', 
        `sex` VARCHAR(2) NOT NULL DEFAULT '男性' COMMENT '性别', 
        `birthday` DATETIME DEFAULT NULL COMMENT '出生日期', 
        `address` VARCHAR(40) DEFAULT NULL COMMENT '地址', 
        `email` VARCHAR(20) DEFAULT NULL COMMENT '电子邮箱', 
        PRIMARY KEY(`id`) 
    ) ENGINE=INNODB DEFAULT CHARSET=utf8; 
    
  • 常用命令

    -- 查看数据库创建语句
    SHOW CREATE DATABASE school;
    -- 查看建表语句
    SHOW CREATE TABLE student;
    -- 描述表的结构
    DESC `student`;
    

2.5 数据库表的类型

  • MySQL常用的表的类型主要有:MyISAM , InnoDB , HEAP , BOB , CSV

  • MyISAM和InnoDB的对比

    名称 MyISAM InnoDB
    事务处理 不支持 支持
    数据行锁定 不支持 支持
    外键约束 不支持 支持
    全文索引 支持 不支持
    占用空间 较小 较大,约2倍
  • 总结

    • MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。
    • InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。如果有大量的update和insert,建议使用InnoDB,特别是针对多个并发和QPS较高的情况。

2.6 修改数据表

  • 修改表名

    语法:
    	ALTER TABLE 旧表名 RENAME AS 新表名;
    示例:
    	ALTER TABLE student RENAME AS student1;
    
  • 添加字段

    语法:
    	ALTER TABLE 表名 ADD 字段名 列属性[属性]
    示例:
    	ALTER TABLE student ADD	`weight` INT(4);
    
  • 修改字段

    语法:
    	-- modify用于修改列的属性,change用于修改字段名
    	ALTER TABLE 表名 MODIFY 字段名 列类型 [属性];
    	ALTER TABLE 表名 CHANGE 旧字段名 新字段名 属性;
    示例:
    	ALTER TABLE student MODIFY `weight` VARCHAR(20) DEFAULT '10'; 
    	ALTER TABLE student CHANGE `weight` `height` INT;
    
  • 删除

    语法:
    	-- 删除表中的某个字段
    	ALTER TABLE 表名 DROP 字段名;
    	-- 删除某个表
    	DROP TABLE [IF EXISTS] 表名;
    示例:
    	ALTER TABLE student DROP weight;
    	DROP TABLE IF EXISTS student;
    
posted @ 2020-10-17 14:43  PrimaBruceXu  阅读(58)  评论(0编辑  收藏  举报