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表新添是否有图片字 ...
随机推荐
- Spring系列.事务管理原理简析
Spring的事务管理功能能让我们非常简单地进行事务管理.只需要进行简单的两步配置即可: step1:开启事务管理功能 @Configuration //@EnableTransactionManag ...
- 入门大数据---HDFS-API
第一步:创建一个新的项目 并导入需要的jar包 公共核心包 公共依赖包 hdfs核心包 hdfs依赖包 第二步:将Linux中hadoop的配置文件拷贝到项目的src目录下 第三步:配置windows ...
- mac下创建安卓应用 hello-world
教程 https://www.jianshu.com/p/bf77cb5ce70b 需要注意的地方 jdk目录查找 jdk目录拷贝到tool目录下面(jdk可以拷贝,没有其他牵扯) https://w ...
- python中 _、__、__xx__() 区别及使用场景
1.访问权限(private.public)与继承方式(只有public继承) 在面向对象编程语言中,类的属性与方法都会设置访问控制权限,从而满足我们的设计需求.一般而言,我们通常会将对象的属性设置为 ...
- igate(因特网网关)
网关:Gateway 又称网间连接器.协议转换器.-----复杂的网络互连设备. 网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连.网关既可以用于广域网互连,也可以 ...
- 断路器Hystrix(Feign)
上一篇中我们讲了 断路器Hystrix(Ribbon) 本章讲解Feign+Hystrix已经Request请求传递,各种奇淫技巧…. - Hystrix Hystrix支持回退概念:当 断路器 打开 ...
- 自定义PHPstorm快捷键
这篇随笔介绍一下PHPstorm自定义快捷键的步骤: 1.点击主菜单 File 下的 setting : 2.在弹出框中点击 Keymap : 3.之后会出现如下图所示的界面(图中所有的菜单都折叠了) ...
- css中雪碧图(sprite)的使用及制作方法
雪碧图(sprite)是减少请求次数的有效手段,其原理是把多张图片进行合成,使用时通过css进行定位. 1.先看一下雪碧图 没有使用雪碧图时图标是这样一个个的单独文件: 合成雪碧图后是这样拼在一起的一 ...
- expected single matching bean but found 2: menusServiceImpl,IMenusService
问题如下: 接口也作为匹配的bean? 有点迷惑了....... 经过在网上找资料,发现和@MapperScan这个注解有关系,具体源码不止.但是这个注解会扫描路径下的所有类. 去掉这个注解就可以正常 ...
- 洛谷 P1043 数字游戏 区间DP
题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分 ...