zoukankan      html  css  js  c++  java
  • MariaDB学习笔记(一)

    一、数据类型:
    1.整数类型:
      TINYINT:1Byte
      SMALLINT:2Byte
      MEDIUMINT:3Byte
      INT:4Byte
      INTEGER:4Byte
      BIGINT:8Byte
    2.浮点数
      单精度浮点(FLOAT):4Byte
      双精度浮点(DOUBLE):8Byte
    3.定点数
      定点数浮点(DECIMAL(M,D)):M+2 在Mariadb中定点数以字符串形式存储,精度高于浮点数
    4.日期和时间
      YEAR:年份 1Byte 1901~2155
      DATE:日期 4Byte YYYY-MM-DD
      TIME:时间 3Byte HH:MM:SS
      DATETIME:日期时间 8Byte YYYY-MM-DD HH:MM:SS
      TIMESTAMP: 日期时间 4Byte YYYY-MM-DD HH:MM:SS
    5.字符串
      CHAR: 0-255Byte
      VARCHAR 0-65535Byte
      TINYTEXT 0-255Byte
      TEXT 0-65535Byte
      MEDIUMTEXT 0-167772150Byte
      LONGTEXT 0-4294967295Byte
      ENUM
      SET
    6.二进制
      BINARY(M)
      VARBINARY(M)
      BIT(64)
      TINBLOB 255Byte
      BLOB (2**16-1)Byte
      MEDIUMBLOB (2**24-1)Byte
      LONGBLOB (2**32-1)Byte
    二、库的基本操作
    查看已存在的数据库
    >SHOW DATABASES;
    创建数据库
    >CREATE DATABASE 数据库名;
    删除数据库
    > DROP DATABASE 数据库名;
    查看表的描述
    > desc users;
    存储引擎
    查看支持的存储引擎
    > SHOW ENGINESG
    >SHOW VARIABLES LIKE 'have%';
    >SHOW VARIABLES LIKE 'storage_engine';
    三、存储引擎
    InnoDB
      优点:
        支持自动增长列AUTO_INCREMENT
        支持外键
        支持事务管理,崩溃修复和并发控制
        创建的表表的结构存储在.frm文件中,数据和索引存储在innodb_data_file_path和 innodb_data_home_dir定义的表空间中
      缺点:
        读写效率稍差,占用的数据空间相对较大
    MyISAM
      优点:
        MyISAM的表存储为3个文件,.frm存储表结构,.MYD存储数据,.MYI存储索引
        三种存储格式:静态型、动态型、压缩型
        暂用空间小,处理速度快
      缺点:
        不支持事务的完整性和并发性
    MEMORY
      优点:
        表结构存储在.frm文件,数据存储在内存中,处理速度快
      缺点:
        数据易丢失
    修改默认存储引擎
    vi /etc/my.cnf
    [mysqld]
    default-storage-engine=MyISAM

    四、创建表
    1.创建表的语法:
    CREATE TABLE 表名(属性名 数据类型[完成的约束条件],
    属性名 数据类型[完成的约束条件],
    属性名 数据类型[完成的约束条件]
    );
    e.g.
    > CREATE TABLE user(id INT,
    -> name VARCHAR(20),
    -> SEX BOOLEAN
    -> );

    2.基本的完整性约束条件
    PRIMARY KEY
    FOREIGN KEY
    NOT NULL
    UNIQUE
    AUTO_INCREMENT
    DEFAULT


    单字段主键
    > CREATE TABLE user(id INT PRIMARY KEY,
    -> name VARCHAR(20),
    -> SEX BOOLEAN
    -> );


    多字段主键
    > CREATE TABLE user(user_id INT,
    -> course_id
    -> name VARCHAR(20),
    -> SEX BOOLEAN,
    -> PRIMARY KEY(user_id,course_id)
    -> );


    表的外键
    CONSTRAINT 外键别名 FOREIGN KEY (属性1.1 属性1.2)
    REFERENCES 父表名(属性2.1,属性2.2)
    子表的外键关联必须是父键的主键


    表的非空约束
    > CREATE TABLE user(id INT NOT NULL PRIMARY KEY,
    -> name VARCHAR(20),
    -> SEX BOOLEAN
    -> );


    表的唯一性约束
    > CREATE TABLE user(id INT UNIQUE,
    -> name VARCHAR(20),
    -> SEX BOOLEAN
    -> );


    属性值自动增加
    > CREATE TABLE user(id INT PRIMARY KEY AUTO_INCREMENT,
    -> name VARCHAR(20),
    -> SEX BOOLEAN
    -> );


    属性的默认值
    > CREATE TABLE user(id INT PRIMARY KEY AUTO_INCREMENT,
    -> name VARCHAR(20),
    -> Math VARCHAR(20) DEFAULT 'zero',
    -> SEX BOOLEAN
    -> );


    3.查看表结构
    ->DESCRIBE 表名;
    ->DESC 表名;
    ->SHOW CREATE TABLE 表名 G
    五、修改表
    修改表名
    -> ALTER TABLE 旧表名 RENAME 新表名;
    修改字段数据类型
    ->ALTER TABLE 表名 MODIFY 属性名 数据类型;
    修改字段名
    ->ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
    增加字段
    ->ALTER TABLE 表名 ADD 属性名 数据类型 [完整性约束条件]; //插入到最后一个字段
    ->ALTER TABLE 表名 ADD 属性名 数据类型 [完整性约束条件] FIRST; //插入到第一个字段
    ->ALTER TABLE 表名 ADD 属性名 数据类型 [完整性约束条件] AFTER 属性2; //插入到字段属性2之后
    删除字段
    ->ALTER TABLE 表名 DROP 属性名;
    修改字段的排列顺序
    ->ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST;
    ->ALTER TABLE 表名 MODIFY 属性名1 数据类型 AFTER 属性名2; //插入到字段属性2之后
    更改表的存储引擎
    ->ALTER TABLE 表名 ENFINE=存储引擎名;
    删除外键约束
    ->ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;
    六、删除表
    删除没有被关联的普通表
    ->DROP TABLE 表名;
    删除被其他表关联的父表
      先删除外键别名再删除表

     

  • 相关阅读:
    另一种遍历Map的方式: Map.Entry 和 Map.entrySet()
    mycat 插入语句导致的一个Dobbo问题
    Json数据处理
    List与字符串转换
    MySQL中四舍五入的实现
    java连接mysql :No Suitable Driver Found For Jdbc 解决方法
    Linux中printf格式化输出
    bat隐藏文件夹
    Python 3.5.2建立与DB2的连接
    Python 爬虫实例
  • 原文地址:https://www.cnblogs.com/gaoyuanzhi/p/8058139.html
Copyright © 2011-2022 走看看