开发者社区> whuer凌晨> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

数据库基础

简介: 声明:本文大部分来自火星小编的博客-Mysql基础,重新写一遍仅是为了学习、做笔记之用,侵删!~ 数据库的操作分为两大部分: 数据库和表的创建、数据库和表内容的操作 数据库database操作:创建库、删除库、备份库、恢复库 表table操作:创建...
+关注继续查看

声明:本文大部分来自火星小编的博客-Mysql基础,重新写一遍仅是为了学习、做笔记之用,侵删!~

数据库的操作分为两大部分: 数据库和表的创建、数据库和表内容的操作

  • 数据库database操作:创建库、删除库、备份库、恢复库
  • table操作:创建表、删除表、表结构设计
  • 记录record操作:
    • 增 insert
    • 删 delete
    • 改 update
    • 查 select
      • 数据排序(order by)
      • 模糊查询(likeinbetween···and)
      • 使用聚集函查询

      • 分组查询
      • 多表查询

1. 数据库操作

1.1. 显示数据库

show database

1.2. 创建数据库

// utf-8
CREATE DATABASE db_name DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
// gbk
CREATE DATABASE db_name DEFAULT CHARSET gbk COLLATE gbk_chinese_ci;

1.3 打开数据库

USE db_name;
// notice: 每次使用数据库必须打开相应数据库

2. 表操作

2.1. 显示数据库中所有表

use db_name;
show tables;

2.2. 创建数据表

create table 表名(
    列名  类型  是否可以为空,
    列名  类型  是否可以为空,
    列名  类型  是否可以为空
) ENGINE = InnoDB DEFAULT CHARSET=utf8

设置是否为空

是否可空, null表示空,非字符集
  not null    - 不可空
        null    - 可空

设置默认值

默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值

 create table tbl (
  nid int not null default 2,
  num int not null
);

设置自增

如果为某列设置自增,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)

create table tbl (
  nid int not null auto_increment primary key,
  num int null
)

create table tbl (
  nid int not null auto_increment,
  num int null,
  index(nid)
)

注意:1. 对于自增列,必须是索引(含主键)
2. 对于自增可设置步长和起始值

show session variables like `auto_inc%`;
set session auto_increment_increment = 2;
set session auto_increment_offset = 10;

show global variables like 'auto_inc%';
set global auto_increment_increment = 2;
set global auto_increment_offset=10;

设置主键

主键,一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。

create table tbl (
  nid int not null auto_increment primary key,
  num int null
);
create table tbl (
  nid int not nul,
  num int not null,
  primary key (nid, num)
);

设置外键

外键,一个特殊的索引,只能是指定内容

create table color (
  nid int not null primary key,
  name varchar(16) not null
)

create table fruit(
  nid int not null primary key,
  smt varchar(32) not null,
  color_id int not null,
  constrant fk_cc foreign key (color_id) reference color(nid)
)

主键与外键的关系(非常重要)

2.3 删除表

drop table table_name

2.4 清空表

delete from table_name
truncate table table_name

2.5.基础数据类型

MySQL的数据类型大致分为:数值、时间和字符串

数据类型 说明
bit[(m)] 二进制位(1010001), m表示二进制位的长度(1-64), 默认m=1
tinyint[(m)] [unsigned] [zerofill] 小整数,数据类型用于保存一些范围的整数数值范围
有符号:-128~127,
无符号:0~255
整数类型中的m仅用于显示,对存储范围无限制,例如:int(5),当插入数据2时,select显示为:00002
int [(m)] [unsigned] [zerofill] 整数,数据类型用于保存一些范围的整数数值范围:有符号:
有符号:-2147483648 ~ 2147483647
无符号:0 ~ 4294967295
bigint 大整数
decimal[(m[,d])] 准确的小数值,m是数字总个数(负号不算),d是小数点后个数,m最大值为65,d最大值为30
特别的:对于精确计算时需要用此类型
FLOAT(M[, D]) 单精度浮点数,M是数字总个数,d是小数点后个数
DOUBLE(M[, D]) 双精度浮点数,m是数字总个数,d是小数点后个数
char 最多可包含255个字符
varchar 最多可包含255个字符
text 最多可包含65535个字符
medium筋络 2^24个字符

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据结构基础
数据结构 栈:先进后出 队列:先进先出 数组:查询快,增删慢 链表:查询慢,增删快 二叉树及红黑树
38 0
数据结构基础
数据结构的基本概念
34 0
数据库概论
个人整理数据库复习资料,转载注明出处
210 0
数据结构基础——栈
数据结构基础——栈
55 0
关系型数据库基础
关系型数据库基础 数据库的定义 数据库是数据的汇集,它以一定的组织形式存于存储介质上 数据库的发展史 发展阶段 数据库形式 数据库特点 萌芽阶段 文件系统方式 使用磁盘文件来存储数据 初级阶段 网状数据库 出现了网状模型、层次模型的数据库 中级阶段 关系型数据库 关系型数据库和结构化查询语言【.
1357 0
数据库
●数据库 OrmLite (JDBC和Android的轻量级ORM java包) Sugar (用超级简单的方法处理Android数据库) GreenDAO (一种轻快地将对象映射到SQLite数据库的ORM解决方案,使用的App有:薄荷,京...
856 0
+关注
whuer凌晨
毕业于武汉大学,从事前端开发5年,从最早的jQuery到ExtJS、到Angular1.x以及现在的Vue均有所接触
16
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载