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表新添是否有图片字 ...
随机推荐
- 算法题解:最小的K个数(海量数据Top K问题)
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 题目 输入 n ...
- oracle 索引失效原因_汇总
1) 没有查询条件,或者查询条件没有建立索引 2) 在查询条件上没有使用引导列 3) 查询的数量是大表的大部分,应该是30%以上. 4) 索引本身失效 5) 查询条件使用函数在索引列上,或者对索引列进 ...
- 线程基础8-quene讲解
PriorityBlockingQueue是一个基于优先级堆的无界的并发安全的优先级队列(FIFO),队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取 ...
- QT5 解析JSON文件
QT读JSON文件步骤,这里把过程记录一下,网上大多都是怎么写json的,对于读的,记录的不多 首先JSON文件格式必须为UTF-8(非UTF-8 with BOM),UTF-8 with BOM 即 ...
- 使用nginx配置域名及禁止直接通过IP访问网站
前段时间刚搭建好个人网站,一直没有关注一个问题,那就是IP地址也可以访问我的网站,今天就专门研究了一下nginx配置问题,争取把这个问题研究透彻. 1. nginx配置域名及禁止直接通过IP访问 先来 ...
- MFC 添加C++类,别的类不通过C++类的定义的对象就可以直接调用C++类里面的成员函数;
MFC 添加C++类,不用定义C++类的对象,别的类不通过C++类的定义的对象就可以直接调用C++类里面的成员函数: 1先在mfc程序中添加普通类CProdata,然后删除头文件Prodata.h里面 ...
- Java多线程之synchronized详解
目录 synchronized简介 同步的原理 对象头与锁的实现 锁的优化与升级 Monitor Record 锁的对比 synchronized简介 synchronized关键字,一般称之为&qu ...
- SpringBoot中VO,DTO,DO,PO的概念、区别和用处
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/zhuguang10/article/de ...
- Java设计模式三
建造者模式 当我们思考通过复杂的零件来生成一个完整的产品时,就用到了今天要说的主题-建造者模式,下面我们实际的代码来分析建造者模式的设计 假设飞机起飞需要有多个步骤,但是每种型号的飞机起飞的步骤又不相 ...
- Pycharm连接MySQL后出现不出现数据库或表,出现其他文件的问题
在使用pycharm连接MySQL,配置完成,测试连接通过之后,还是不能显示数据库中的表,出现了许多像armscii8_bin.armscii8_general_ci和ascii_bin等的文件. 解 ...