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');-- 主键冲突了 -- 可以选择性的 ...
随机推荐
- JAVA反射机制,总结下
1.总体概述 Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法:对于给定的一个对象,都能够调用它的任意一个属性和方法.这种动态获取类的内容以及动态调用对 ...
- 常见 Web 性能优化方式
这篇文章是我阅读 Web Performance 101 之后的进行的粗糙的翻译作为笔记,英语还行的童鞋可以直接看原文. 这篇文章主要介绍了现代 web 加载性能(注意不涉及代码算法等),学习为什么加 ...
- openstack核心组件--neutron网络服务2(4)
一.虚拟机获取 ip: 用 namspace 隔离 DHCP 服务 Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 通过 Linux Network Names ...
- Kettle 排序记录的使用(Sort rows)
排序行的步骤根据您指定的字段和它们是否应该按升序或降序排序当行数超过指定的排序大小(默认为100万行)时候,kettle必须使用临时文件排序行.步骤名称:名称在整个转换中应该是唯一的排序目录:默认当前 ...
- Docker的数据管理(volume/bind mount/tmpfs)
Docker提供了三种不同的方式用于将宿主的数据挂载到容器中:volumes,bind mounts,tmpfs volumes.当你不知道该选择哪种方式时,记住,volumes总是正确的选择. vo ...
- 关于lombok插件的使用,强大的简化代码工具
关于下载和安装lombok插件,过程特别简单,可以参考: https://blog.csdn.net/longloveqing/article/details/81539749 安装好后,下面介绍下l ...
- APP安全_Android渗透环境
Android渗透 移动APP大多通过WEB API服务的方式与服务端进行交互,这种模式把移动安全和web安全绑在一起.常见的web漏洞在移动APP中也存在,比如SQL注入,文件上传,中间件/serv ...
- mysql注入语句
一.sql注入语句 爆破所有数据库: (select group_concat(schema_name) from information_schema.schemata) 获取数据库所有表: (se ...
- hbase数据导出和恢复 设置双master + 查看hbase表占用磁盘大小
1.备份TETST111hbase org.apache.hadoop.hbase.mapreduce.Export TEST111 /do1/hh2.drop 掉test111表 -- 只能dro ...
- Redis二进制反转算法分析
在 redis 源码中 dictScan 算法中用到了用到了非常经典的二进制反转算法,该算法对二进制的反转高效而实用,同时对于理解位运算也有非常大的帮助.先呈现源码: /* Function to r ...