MySQL数据库---表的操作
存储引擎
表就是文件,表的存储引擎就是文件的存储格式,即数据的组织存储方式。
字段类型
1.整数类型
- 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT
- 作用:存储年龄,等级,id,各种号码等
- 表示范围:BIGINT(8字节) > INT(4字节) > MEDIUMINT(3字节) > SMALLINT(2字节) > TINYINT(1字节)
- 符号:默认整型是有符号的,使用unsigned就表示无符号
- 注意:创建表时指定的字段宽度,对整型数据无效,表示的是数据的显示宽度
2.浮点型
浮点类型:FLOAT DOUBLE
定点数类型:DEC等同于DECIMAL
作用:存储薪资、身高、体重、体质参数等
符号:默认浮点型是有符号的,使用unsigned就表示无符号
精度:DOUBLE > FLOAT
3.日期类型
- 日期类型:DATE TIME DATETIME TIMESTAMP YEAR
- 作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等
year
YYYY(1901/2155) date
YYYY-MM-DD(1000-01-01/9999-12-31) time
HH:MM:SS('-838:59:59'/'838:59:59') datetime
YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y) timestamp
YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
4.字符串类型
- 字符串类型:char varchar
- char类型:定长,简单粗暴,浪费空间,存取速度快
- varchar类型:变长,精准,节省空间,存取速度慢
5.枚举和集合类型
- 说明:字段的值只能在给定范围中选择,如性别,单位
- 枚举:enum 单选 只能在给定的范围内选一个值,如性别sex: 男male / 女female
- 集合:et 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)
字段约束类型
说明:约束条件与数据类型的宽度一样,都是可选参数
作用:用于保证数据的完整性和一致性
PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录
FOREIGN KEY (FK) 标识该字段为该表的外键
NOT NULL 标识该字段不能为空
UNIQUE KEY (UK) 标识该字段的值是唯一的
AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT 为该字段设置默认值 UNSIGNED 无符号
ZEROFILL 使用0填充
- primary key:主键,具有唯一性,如果一张表中没有组件,数据库会创建一个默认的组件
- foreign key:外键,用于描述两张表之间的关系
- not null:表示不能为空
- null:表示可以为空
- unique key:唯一键,不能重复
- auto_increment:自动增加,插入时无须插入该类型字段
- default:默认值,插入数据时,如果没有指定就使用默认值
- unsigned:表示无符号数
- zerofill:显示宽度不足时,使用0填充
表的操作
1.创建表
#语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
); #注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的
例子
create table db1 (
id int primary key,
name char(10) not null,
age int(4),
sex enum('female', 'male')
);
2.查看表
show tables; #查看当前数据库下所有的表 describe t1; #查看表结构,可简写为desc 表名
3.修改表
语法:
1. 修改表名
ALTER TABLE 表名 RENAME 新表名; 2. 增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名 数据类型 [完整性约束条件…];
ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] FIRST;
ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名; 3. 删除字段
ALTER TABLE 表名 DROP 字段名; 4. 修改字段
ALTER TABLE 表名 MODIFY 字段名 数据类型 [完整性约束条件…];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
4.复制表
- LIKE 方法:LIKE方法是专门复制表结构的方法,他只复制表结构和相关属性,并不复制里面的数据
- SELECT 方法:严格来讲 SELECT 方法不能理解成复制表结构的方法,其实他只是执行了一个SELECT查询语句。其实复制的结果只包含了 SELECT 的字段和数据,其他表属性包括存储引擎默认字符集等都由系统的配置文件决定
1.复制表结构和数据(key不会复制: 主键、外键和索引)
create table db2 select * from db1; 2.复制表结构
create table db2 select * from db1 where 1=2; 3.复制表结构(包括key)
create table db2 like db1;
5.删除表
DROP TABLE 表名; drop table db2
MySQL数据库---表的操作的更多相关文章
- 第二百七十八节,MySQL数据库-表内容操作
MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...
- MySQL数据库-表内容操作
1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名...) values (值,值 ...
- Database学习 - mysql 数据库 表操作
mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...
- 对mysql数据库表的相关操作
虫师博客(Python使用MySQL数据库(新)): https://www.cnblogs.com/fnng/p/3565912.html 1.更改表的结构,增加一个字段放置新增的属性 alter ...
- MySQL数据库表的数据插入、修改、删除、查询操作及实例应用
一.MySQL数据库表的数据插入.修改.删除和查询 CREATE DATABASE db0504; USE db0504; CREATE TABLE student ( sno ) NOT NULL ...
- MySQL数据库(3)_MySQL数据库表记录操作语句
附: MYSQL5.7版本sql_mode=only_full_group_by问题 .查询当前sql_mode: select @@sql_mode .查询出来的值为: set @@sql_mode ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- 在php中需要用到的mysql数据库的简单操作
1.数据库连接 1.1用windows命令行链接数据库服务器 几个DOS命令 在DOS环境下命令后面没有分号,在MySQL环境下,命令后面有分号 进入盘符: 语法:盘符: 进入盘符下的某个文件夹 语法 ...
- Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题
Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...
随机推荐
- 采用Socket实现UDP
------------恢复内容开始------------ 1.1采用Socket实现UDP1.1.1简介 Socket实现UDP的基本步骤如下: (1)创建一个Socket对象 Socket my ...
- Halcon斑点分析BlobAnalysis解析
斑点分析的算法非常简单:在图像中,相关对象的像素(也称为前景)通过其灰度值来识别.例如,图中示例显示了液体中的组织颗粒.这些粒子是明亮的,液体(背景)是暗的.通过选择明亮的像素(阈值),可以很容易检测 ...
- Oracle的number数据类型
https://www.cnblogs.com/oumyye/p/4448656.html NUMBER ( precision, scale) precision表示数字中的有效位;如果没有指定pr ...
- 019.Kubernetes二进制集群存储longhorn
一 Longhorn存储部署 1.1 Longhorn概述 Longhorn是用于Kubernetes的开源分布式块存储系统. 提示:更多介绍参考:https://github.com/longhor ...
- django 类视图的使用
使用django框架也有挺长时间了,但是一直都没有用过django的类视图,因为之前跟着网上教程学习时,觉得类视图是进阶的知识,可能目前还达不到吧 但今天在做项目的时候用到了,感觉真的太方便了吧,而且 ...
- Ribbon软负载 (F版)
Spring Cloud 为开发者提供了在分布式系统中的一些常用的组件(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,决策竞选,分布式会话集群状态).使用Sprin ...
- 大厂前端带来css3动画transition的使用和介绍全新认识动画
CSS3中可以使用transition来做最简单动画效果,transition表示到一个元素的属性值发生变化时,我们可以看到页面元素从旧的属性慢慢变化为新的属性值的过程,这种效果不是立即变化的,而是体 ...
- Ocelot网关+IdentityServer4实现API权限认证
Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...
- 03-springboot整合elasticsearch-源码初识
前面两个小节已经知道了spring boot怎么整合es,以及es的简单使用,但是springboot中是怎么和es服务器交互的.我们可以简单了解一下.要看一下源码 在看源码的同时,先要对sp ...
- postman-7-前置请求脚本
前面讲了,tests初如何校验请求之后返回值是否正确 那前置脚本,就是处理,请求之前接口该如何处理,什么时候会用到呢? 比如:接口字段time,需要填入时间,而且这个是需要当前时间的,: 需要达到自动 ...