一、数据类型:
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 ENGINES\G
>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 表名;
删除被其他表关联的父表
  先删除外键别名再删除表

MariaDB学习笔记(一)的更多相关文章

  1. MySQL/MariaDB学习笔记——mysql.user表中存在多个root用户问题理解

    mysql.user表中存在多个root用户问题 问题描述:使用 SELECT host,user FROM mysql.user 发现mysql.user表中存在三个root用户,如下 持着对中几个 ...

  2. mariadb 学习笔记

    安装:yum install mariadb-server mariadb vim /etc/my.cnf.d/server.cnfinnodb_file_per_table = on#设置后当创建数 ...

  3. MariaDB学习笔记(二)

    七 索引索引:索引是创建在表上的,是对数据库表中的一列或多列的值进行排序的一种结构.索引可以提高查询的速度.索引有两种存储类型: B型树索引 哈希索引I nnoDB和MyISAM支持B型树索引,MEM ...

  4. Hadoop-Impala学习笔记之入门

    CDH quickstart vm包含了单节点的全套hadoop服务生态,可从https://www.cloudera.com/downloads/quickstart_vms/5-13.html下载 ...

  5. Flyway学习笔记

    Flyway做为database migration开源工具,功能上像是git.svn这种代码版本控制.google搜索database migration,或者针对性更强些搜索database mi ...

  6. Rancher Server HA的高可用部署实验-学习笔记

    转载于https://blog.csdn.net/csdn_duomaomao/article/details/78771731 Rancher Server HA的高可用部署实验-学习笔记 一.机器 ...

  7. iView学习笔记(三):表格搜索,过滤及隐藏列操作

    iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...

  8. 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用

    目录 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用 23.1 跳出循环 23.1.1 break和continue 23.2 Shift参数左移指令 23.3 函数 ...

  9. 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环

    目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...

随机推荐

  1. XMPP即时通讯协议使用(前传)——协议详解

    XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP ...

  2. 安卓构架组件——向项目添加组件(Adding Components to your Project)

    在开始之前,建议阅读 应用架构指南. Before getting started, we recommend reading the Architecture Components Guide to ...

  3. 根据配置RedisProperties自动获取RedisConnectionFactory

    #单点配置 spring.redis.host=192.168.1.1 spring.redis.port=6379 #哨兵配置 #spring.redis.sentinel.master=commo ...

  4. smbspool - 将一个打印文件发送到一台SMB打印机

    总览 SYNOPSIS smbspool {job} {user} {title} {copies} {options} [filename] 描述 DESCRIPTION 此程序是Samba(7)套 ...

  5. ini配置文件内如果有更新参数

    ini配置文件内如果有更新参数 执行更新 更新参数 自动去下载执行????

  6. spring data mongodb CURD

    一.添加 Spring  Data  MongoDB 的MongoTemplate提供了两种存储文档方式,分别是save和insert方法,这两种的区别: (1)save :我们在新增文档时,如果有一 ...

  7. 人生苦短_我用Python_configparser/yaml对配置文件读取/写入操作_010

    第一,我们先开始安装yaml库,configparser是自带库,yaml库是针对读取yml文件,configparser现阶段我只用于读取conf文件 首先:1)对象文件为:data.yml,下面的 ...

  8. 浅析 http 接口

     一.HTTP接口 Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕 ...

  9. Web核心之会话技术Cookie&Session

    什么是会话技术? http协议是无状态协议.为了满足在多次请求之间数据进行交互,推出了会话技术. 会话概念:一次会话,指的是从客户端和服务器建立起连接开始,到客户端或服务器断开连接为止.中间可能进行多 ...

  10. python之字符串切分

    在工作中,经常遇到字符串切分,尤其是操作linux命令,返回一段文本,如下面这种格式 Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G ...