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 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学习笔记(一)的更多相关文章
- MySQL/MariaDB学习笔记——mysql.user表中存在多个root用户问题理解
mysql.user表中存在多个root用户问题 问题描述:使用 SELECT host,user FROM mysql.user 发现mysql.user表中存在三个root用户,如下 持着对中几个 ...
- mariadb 学习笔记
安装:yum install mariadb-server mariadb vim /etc/my.cnf.d/server.cnfinnodb_file_per_table = on#设置后当创建数 ...
- MariaDB学习笔记(二)
七 索引索引:索引是创建在表上的,是对数据库表中的一列或多列的值进行排序的一种结构.索引可以提高查询的速度.索引有两种存储类型: B型树索引 哈希索引I nnoDB和MyISAM支持B型树索引,MEM ...
- Hadoop-Impala学习笔记之入门
CDH quickstart vm包含了单节点的全套hadoop服务生态,可从https://www.cloudera.com/downloads/quickstart_vms/5-13.html下载 ...
- Flyway学习笔记
Flyway做为database migration开源工具,功能上像是git.svn这种代码版本控制.google搜索database migration,或者针对性更强些搜索database mi ...
- Rancher Server HA的高可用部署实验-学习笔记
转载于https://blog.csdn.net/csdn_duomaomao/article/details/78771731 Rancher Server HA的高可用部署实验-学习笔记 一.机器 ...
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...
- 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用
目录 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用 23.1 跳出循环 23.1.1 break和continue 23.2 Shift参数左移指令 23.3 函数 ...
- 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环
目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...
随机推荐
- tensorflow实现一个神经网络简单CNN网络
本例子用到了minst数据库,通过训练CNN网络,实现手写数字的预测. 首先先把数据集读取到程序中(MNIST数据集大约12MB,如果没在文件夹中找到就会自动下载): mnist = input_da ...
- Windows下svn使用教程
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...
- python常用函数 N
nlargest(int , iterable,key) 查找最大的n个元素. 例子: 还支持传入key进行复杂元素比较:如:nlargest (n, list,key=lambda a:a[b]). ...
- boost bimap
The library Boost.Bimap is based on Boost.MultiIndex and provides a container that can be used immed ...
- 谷歌SEO和百度SEO的区别
远程桌面连接 一直有一个现象:关于谷歌优化或只是以谷歌为例谈SEO观点或技术时,经常有读者说,不适用于百度,希望多看到关于百度SEO的帖子上一篇利用规范的标签在谷歌排名中陷害竞争对手的帖子,就有好 ...
- Android中微信抢红包插件原理解析和开发实现
一.前言 自从去年中微信添加抢红包的功能,微信的电商之旅算是正式开始正式火爆起来.但是作为Android开发者来说,我们在抢红包的同时意识到了很多问题,就是手动去抢红包的速度慢了,当然这些有很多原因导 ...
- django搭建一个小型的服务器运维网站-重启服务器的进程
目录 项目介绍和源码: 拿来即用的bootstrap模板: 服务器SSH服务配置与python中paramiko的使用: 用户登陆与session; 最简单的实践之修改服务器时间: 查看和修改服务器配 ...
- YII 1.0 常用CURD写法
<?php //yii1.0 curd简单写法 //查询 Yii::app()->db->createCommand($sql)->queryAll();//查询所有行数据 ...
- html标签<td><tr><th>全称及缩写说明
<td> 是table data cell 的缩写,单元格 <tr> 是table row 的缩写,表格中的一行 <th> 是table header cell 的 ...
- Go的struct
1. 前言 Go的struct声明允许字段附带Tag来对字段做一些标记. 该Tag不仅仅是一个字符串那么简单,因为其主要用于反射场景,reflect包中提供了操作Tag的方法,所以Tag写法也要遵循一 ...