MySql学习笔记【三、表相关操作】
创建表
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
...
)
如:
CREATE TABLE test_table(
id BIGINT,
createdate DATETIME,
username VARCHAR(20),
)
指定主键
KEY/PRIMARY KEY
如:
CREATE TABLE tb1(
id bigint NOT NULL PRIMARY KEY,
username VARCHAR(10) NULL
)
指定列自增(该列必须为数字类型,且为主键)
AUTO_INCREMENT
如:
CREATE TABLE tb1(
id BIGINT AUTO_INCREMENT KEY,
username VARCHAR(10) NULL,
age SMALLINT UNSIGNED NOT NULL
)
设置列缺省值
DEFAULT xxx
如:
CREATE TABLE tb1(
id bigint AUTO_INCREMENT KEY,
username VARCHAR(10) DEFAULT ''
)
唯一约束
UNIQUE KEY
唯一约束的值可空,且可有多条记录为NULL
如:
CREATE TABLE tb1(
id bigint NOT NULL,
username VARCHAR(10) UNIQUE KEY
)
指定列为空/非空(默认可空)
NULL / NOT NULL
如:
CREATE TABLE tb1(
id bigint NOT NULL,
username VARCHAR(10) NULL
)
指定列无符号(默认有符号)
UNSIGNED
如:
CREATE TABLE tb1(
id bigint NOT NULL,
username VARCHAR(10) NULL,
age SMALLINT UNSIGNED NOT NULL
)
查看数据表
SHOW TABLES [FROM db_name]
[LIKE 'pattern'| WHERE expr]
如:SHOW TABLES;
查看数据表列/约束
SHOW {COLUMNS|INDEXES} FROM tb_name [\G]
如: SHOW COLUMNS FROM test_table;
末尾带\G,表示可以以行结构查看
修改表
添加单列
ALTER TABLE tb_name ADD [COLUMN]
col_name column_definition [FIRST|AFTER col_name]
如:
ALTER TABLE tb1 ADD
age INT UNSIGNED AFTER id;
省略FIRST|AFTER 将默认在末尾追加列
添加多列
ALTER TABLE tb_name ADD [COLUMN]
(col_name column_definition)
与添加单列的区别是,多列须加小括号,且无法指定位置
如:
ALTER TABLE tb1 ADD
(age INT UNSIGNED AFTER id,
password VARCHAR(10) DEFAULT '');
修改列
ALTER TABLE tb_name MODIFY [COLUMN]
col_name column_definition ;
如:
ALTER TABLE goods MODIFY
price decimal(10,2) ;
添加/删除主键约束
添加
ALTER TABLE tb_name ADD [CONSTRAINT [cons_name]]
PRIMARY KEY [index_type] (index_col_name,...)
如:ALTER TABLE tb2 ADD CONSTRAINT PRIMARY KEY (id);删除
ALTER TABLE tb_name DROP PRIMARY KEY
如:ALTER TABLE tb2 DROP PRIMARY KEY ;
添加/删除唯一约束
添加
ALTER TABLE tb_name ADD [CONSTRAINT [cons_name]]
UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)
如:ALTER TABLE tb2 ADD UNIQUE (username)删除
ALTER TABLE tb_name DROP {INDEX|KEY} index_name
如:ALTER TABLE tb2 DROP INDEX username;
对于删除唯一约束来说,INDEX与KEY 相同
添加/删除默认约束
ALTER TABLE tb_name ALTER [COLUMN] col_name
{SET DEFAULT value|DROP DEFAULT}
如:
ALTER TABLE tb2 ALTER username SET DEFAULT '';
ALTER TABLE tb2 ALTER username DROP DEFAULT;
删除表
DROP TABLE tb_name
如:DROP TABLE test_table;
约束
- 主键 RPIMARY KEY
- 非空约束 NOT NULL
- 唯一约束 UNIQUE KEY
- 默认约束 DEFAULT
- 外键约束 FOREIGN KEY (实际项目中很少用到)
MySql学习笔记【三、表相关操作】的更多相关文章
- MySql学习笔记三
MySql学习笔记三 4.DML(数据操作语言) 插入:insert 修改:update 删除:delete 4.1.插入语句 语法: insert into 表名 (列名1,列名2,...) val ...
- MYSQL学习笔记三:日期和时间函数
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...
- Mongodb学习笔记三(Mongodb索引操作及性能测试)
第三章 索引操作及性能测试 索引在大数据下的重要性就不多说了 下面测试中用到了mongodb的一个客户端工具Robomongo,大家可以在网上选择下载.官网下载地址:http://www.robomo ...
- mysql学习笔记三 —— 数据恢复与备份
要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的 ...
- MySQL学习笔记三:库和表的管理
1.MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql: ...
- mysql基本数据类型(mysql学习笔记三)
Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符 ...
- MySQL学习笔记(三)—索引
一.概述 1.基本概念 在大型数据库中,一张表中要容纳几万.几十万,甚至几百万的的数据,而当这些表与其他表连接后,所得到的新的数据数目更是要大大超出原来的表.当用户检索这么大量的数据时,经 ...
- MySQL学习笔记(三):常用函数
一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...
- mysql学习笔记02 表的操作
创建数据表create table table_name(//定义表的列的结构)创建表 先分析需要保存的实体数据,荣有哪些属性,这些属性应该有哪些属性列的定义 列名 列的数据类型 {} 进行表操作时 ...
- mysql学习笔记(三)
-- 主键冲突(duplicate key) ,'xujian','anhui'); ,'xiewei','anhui'); ,'luyang','anhui');-- 主键冲突了 -- 可以选择性的 ...
随机推荐
- spring cloud之Eureka
Region 表示aws的地理位置,一个region有多个awailability zone,各region间完全隔离.这种方式实现最大的容错和稳定性. spring cloud 默认使用的regio ...
- PCL已有点类型介绍和增加自定义的点类型
博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=265 本小节不仅解释如何增加你自己的PointT点类型,也介绍了PCL中的模 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-2.微信扫一扫功能开发前期准备
笔记 2.微信扫一扫功能开发前期准备 简介:讲解微信扫一扫功能相关开发流程和资料准备 1.微信开放平台介绍(申请里面的网站应用需要企业资料) ...
- 小马哥-Java 微服务实践 - Spring Boot 系列-01Java 微服务实践 - Spring Boot 系列(一)初体验
课程github地址 https://github.com/mercyblitz/segmentfault-lessons 传统的web应用架构.微服务是一种架构.不限定什么语言 单体应用和微服务的对 ...
- window server2012R2激活
slmgr /ipk D2N9P-3P6X9-2R39C-7RTCD-MDVJXslmgr /skms kms.03k.orgslmgr /ato
- document.documentElement.clientHeight 和 document.body.clientHeight
document.documentElement.clientHeight 和 document.body.clientHeight 介绍 在进行一些网页效果处理的时候,经常碰到document.do ...
- PTA --- L2-003 月饼
这道题挺简单的,测试点2没过的话,注意题目中是两个正整数,而其余是正数 [没注意到,,,踩坑了,,,] 题目地址: https://pintia.cn/problem-sets/99480504638 ...
- 3.React中的setstate的几个现象
转载segfault 上面的一篇文章,https://segmentfault.com/a/1190000014498196 1.在同一个方法中多次setState是会被合并的,并且对相同属性的设置只 ...
- linux下配置maven并修改maven源
参考文章 <Linux下Maven的安装与使用> <aliyun阿里云Maven仓库镜像地址> <maven国内镜像配置(Ubuntu)> 下载maven,具体目录 ...
- python入门踩坑
问题1:ImportError: No module named requests 解决:一般报这种错误就是目前还没有这个方法的类库,需要下载或在升级类库.打开cmd命令,输入python -m pi ...