数据库表的创建

create database test;
drop database xuda;
show databases;

创建数据表,并插入数据

USE test;
create table student(id INT UNSIGNED PRIMARY KEY,name VARCHAR(20) NOT NULL,sex CHAR(1) NOT NULL,birthday DATE NOT NULL,tel CHAR(11) NOT NULL,remark VARCHAR(200));
INSERT INTO student VALUES(1,"李强","男","1995-05-15","18392513420",NULL);     show tables;
DESC student;
SHOW CREATE TABLE student;
DROP TABLE student;

使用float无法精确存储小数

CREATE TABLE temp(
id INT UNSIGNED PRIMARY KEY,
num FLOAT(20,10)
);

可以使用DECIMAL,这样不会丢失精度

DROP TABLE temp;
CREATE TABLE temp(
id INT UNSIGNED PRIMARY KEY,
num DECIMAL(20,10)
);

数据类型

CHAR (1-255)固定字符长度
VARCHAR (1-65535)不固定长度字符串[一般用这个就可以]
TXT 不确定长度字符串
MEDIUMTEXT 不确定长度字符串

日期类型

类型 大小 说明
DATE 3字节 日期
TIME 3字节 时间
YEAR 1字节 年份
DATETIME 8字节 日期时间
TIMESTAMP 4字节 时间戳

修改数据表结构

添加字段

ALTER TABLE student
ADD address VARCHAR(200) NOT NULL,
ADD home_tel CHAR(11) NOT NULL;AlTER TABLE student
MODIFY home_tel VARCHAR(20) NOT NULL;DESC student;

MODIFY 之前

id   int(10) unsigned    NO  PRI
name    varchar(20) NO
sex char(1) NO
birthday    date    NO
tel char(11)    NO
remark  varchar(200)    YES
address varchar(200)    NO
home_tel    char(11)    NO

MODIFY 之后

id   int(10) unsigned    NO  PRI
name    varchar(20) NO
sex char(1) NO
birthday    date    NO
tel char(11)    NO
remark  varchar(200)    YES
address varchar(200)    NO
home_tel    varchar(20) NO

change更改字段名称

ALTER TABLE student
change address home_adress VARCHAR(20) NOT NULL;
DESC student;
id   int(10) unsigned    NO  PRI
name    varchar(20) NO
sex char(1) NO
birthday    date    NO
tel char(11)    NO
remark  varchar(200)    YES
home_adress varchar(20) NO
home_tel    varchar(20) NO

删除字段

ALTER TABLE student
drop home_adress,
drop home_tel;

数据库表字段约束

数据库范式

  1. 第一范式:原子性
  2. 第二范式:唯一性
  3. 第三范式:每列都与主键有直接关系,不存在传递依赖

字段约束

约束名称 关键字 描述
主键约束 PRIMARY KEY 字段值唯一,且不为NULL
非空约束 NOT NULL 字段值不能为NULL
唯一约束 UNIQUE 字段值唯一,且可以为NULL
外键约束 FOREIGN KEY 保持关联数据的逻辑性
  1. 建议主键值使用数字类型,这样检索速度快
  2. 非空约束要求字段值不能为NULL
create table t_teacher(id INT  UNSIGNED PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20) NOT NULL,tel CHAR(11) NOT NULL UNIQUE,married BOOLEAN NOT NULL DEFAULT FALSE
);
id   int(10) unsigned    NO  PRI
name    varchar(20) NO
tel char(11)    NO  UNI
married tinyint(1)  NO      0

外键约束

CREATE TABLE t_dept(
deptno INT UNSIGNED PRIMARY KEY,
dname VARCHAR(20) NOT NULL UNIQUE,
tel CHAR(4) UNIQUE
);

CREATE TABLE t_emp(
empno INT UNSIGNED PRIMARY KEY,
ename VARCHAR(20) NOT NULL,
SEX ENUM("男","女") NOT NULL,
deptno INT UNSIGNED NOT NULL,
hiredate DATE NOT NULL,
FOREIGN KEY (deptno) REFERENCES t_dept(deptno)
);


数据库的索引机制:数据排序,查找速度翻倍。
如何创建索引?
根据type创建索引idx_type

create table t_message(
id INT UNSIGNED PRIMARY KEY,
content VARCHAR(200) NOT NULL,
type ENUM("公告","通报","个人通知"),
create_time TIMESTAMP NOT NULL,
INDEX idx_type (type)
);

删除索引

DROP INDEX idx_type ON t_message

另外两种创建索引的方式

CREATE INDEX idx_type ON t_message(type)
ALTER TABLE t_message ADD INDEX idx_type(type)

02数据库表的相关操作相关推荐

  1. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  2. DM8表空间相关操作及介绍

    DM8表空间相关操作及介绍 最近刚接触达梦数据库,经过基础的学习已初步掌握相关知识,下面给大家分享一下达梦8表空间的一些相关操作及介绍,后续会持续更新. 一.表空间介绍: 1.概念: 每个DM 数据库 ...

  3. 数据库表的CRUD操作

    数据库表的CRUD操作 1 DDL_操作表_查询 R(Retrieve):查询 查询某个数据库中所有的表名称 show tables; 如图所示: 查询表结构 desc 表名; 如图所示: 2 DDL ...

  4. mysql显示表已存在_MySQL数据库与数据表的相关操作

    数据库相关操作: 显示数据库:show databases; 如果是0.00秒并不代表没有花费时间,而是时间非常短,小于0.01秒. 创建数据库: Query OK表示创建成功,1行受到影响,处理时间 ...

  5. linux mongo数据库启动及相关操作

    启动mongodb服务 首先需要建立一个文件夹,用来存放mongodb产生的数据库文件. 为了便于管理,我们将该文件夹放在mongodb安装目录下,即和bin目录平级. mkdir /usr/loca ...

  6. mysql查一个表3到5行的数据类型_MySQL入门(三) 数据库表的查询操作【重要】

    序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...

  7. mysql水果表查询_最全MySQL数据库表的查询操作

    序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...

  8. 用MySQL创建数据库和数据库表(linux终端操作)

    用MySQL创建数据库和数据库表 http://tech.ccidnet.com/art/1105/20041104/173233_1.html 1.使用SHOW语句找出在服务器上当前存在什么数据库: ...

  9. python学习笔记之数据库表的读写操作

    一.executemany()函数 建立数据库mariadb_learn,并且在userinfor表里面写入20个用户的账号和密码信息.代码如下 import pymysql #随机生成20条用户数据 ...

最新文章

  1. maven国内镜像(maven下载慢的解决方法)
  2. hihocoder #1329 : 平衡树·Splay
  3. C++ string的使用
  4. 深入浅出KNN算法(二) sklearn KNN实践
  5. 一个古怪的VISTA网络问题解决的坎坷经历
  6. 深度学习(03)-- CNN学习
  7. python实训的意义_[Python] 一个让我更加清楚地理解了字典的实验……
  8. 单片机定时器_51单片机的定时器如何计算初值?
  9. 群晖远程访问服务器,如何通过远程访问访问Synology中的所有数据
  10. python程序代码图片_完整的图片去噪代码(python)
  11. mysql意外关闭xampp_错误:MySQL意外关闭xampp 3.2.4
  12. java 20 -1 递归的概述和案例
  13. Windows系统下载安装MinGW(包括32位和64位)
  14. 谷歌浏览器,网页截长图
  15. 失眠的岁月,我们都交了哪些科技智商税?
  16. html制作发光效果的文字,HTML5/CSS3发光文字可自定义文字色彩效果很赞
  17. 测试网上哪款软件最好,手机测试软件哪款好用?4款测试软件推荐
  18. [zz] 基于sinc的音频重采样(一):原理
  19. amazon开发者申请,pii权限申请
  20. Word2vec词向量工具带你发现不一样的《天龙八部》

热门文章

  1. SDOI2017R2PKUSC2017
  2. 高德地图我的队伍查岗_详细测试高德地图的家人地图后 我学会了画地为牢
  3. 快速排序 python 4种写法_[算法] 关于快速排序的四种写法
  4. 小甲鱼python课后答案40讲_小甲鱼Python第二十一讲课后习题
  5. java实现阅读量统计_博客中的阅读量是如何设计的?
  6. Intel Core Enhanced Core架构/微架构/流水线 (2) - 代表处理器
  7. Android解析SVG
  8. MySQL子查询的使用
  9. 思科怎么修改dhcp服务器地址,思科交换机配置作为DHCP服务器的配置方法是怎样的?...
  10. Unity3D 的物理渲染和光照模型