创建表

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学习笔记【三、表相关操作】的更多相关文章

  1. MySql学习笔记三

    MySql学习笔记三 4.DML(数据操作语言) 插入:insert 修改:update 删除:delete 4.1.插入语句 语法: insert into 表名 (列名1,列名2,...) val ...

  2. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  3. Mongodb学习笔记三(Mongodb索引操作及性能测试)

    第三章 索引操作及性能测试 索引在大数据下的重要性就不多说了 下面测试中用到了mongodb的一个客户端工具Robomongo,大家可以在网上选择下载.官网下载地址:http://www.robomo ...

  4. mysql学习笔记三 —— 数据恢复与备份

    要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的 ...

  5. MySQL学习笔记三:库和表的管理

    1.MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql: ...

  6. mysql基本数据类型(mysql学习笔记三)

    Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符 ...

  7. MySQL学习笔记(三)—索引

    一.概述 1.基本概念       在大型数据库中,一张表中要容纳几万.几十万,甚至几百万的的数据,而当这些表与其他表连接后,所得到的新的数据数目更是要大大超出原来的表.当用户检索这么大量的数据时,经 ...

  8. MySQL学习笔记(三):常用函数

    一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...

  9. mysql学习笔记02 表的操作

    创建数据表create  table table_name(//定义表的列的结构)创建表 先分析需要保存的实体数据,荣有哪些属性,这些属性应该有哪些属性列的定义 列名 列的数据类型 {} 进行表操作时 ...

  10. mysql学习笔记(三)

    -- 主键冲突(duplicate key) ,'xujian','anhui'); ,'xiewei','anhui'); ,'luyang','anhui');-- 主键冲突了 -- 可以选择性的 ...

随机推荐

  1. HP LaserJet M602 更換碳粉盒CE390XC

    HP LaserJet M602 原裝碳粉盒為 CE390A 且容量小不夠用,故更換大號的 CE390XC ,需要將 CE390XC 外面的所有橙色部件去掉(取走上面一條帶2個凸起的遮罩,左側有一個耳 ...

  2. linux常用命令---------------find

    1.find 基本模式 find path -option [ -print ] [ -exec -ok command ] {} \; 2.常用的参数 -name name, -iname name ...

  3. Django-Form组件-forms.ModelForm

    froms.ModelForm 具有models操作数据库字段的功能,还具有Form的功能.较Form组件而言,根据model自动生成Form. 使用注册的案例进行初步认识 # 使用ModelForm ...

  4. 【JavaScript】初识js

    前端三大利器就是HTML+CSS+JavaScript,他们在整个前端开发中的主要作用大体可以概括如下 html 标记语言 负责页面的结构 css 层叠样式表 负责页面的样式 javascript 编 ...

  5. flask 之(七) --- 认证|文件|部署

    登陆注册 说明: 令牌Token认证,在对HTTP形式的API发请求时,大部分情况我们不是通过用户名密码做验证,而是通过一个令牌[Token来做验证]. RESTful API无法使用Flask-Lo ...

  6. 鸟哥私房菜基础篇:例行性工作排程 (crontab)习题

    猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0430cron.php 1-今天假设我有一个命令程序,名称为: ping.sh 这个档名!我想要让系统每 ...

  7. 访问Nginx显示目录

    显示目录可以提供文件下载,方便文件共享时用到,mark一下. 1. 如何让nginx显示文件夹目录 vi /etc/nginx/conf.d/default.conf 添加如下内容: location ...

  8. CentOS7之yum仓库配置

    操作系统版本:CentOS Linux release 7.2.1511 (Core)  Yum软件版本:yum-3.4.3-132.el7.centos.0.1.noarch  Yum主配置文件:/ ...

  9. 批量删除redis的数据

    批量删除redis的数据 # redis-cli -h 192.168.1.17 -p 6379 keys "xiaolang_*"|xargs redis-cli -h 192. ...

  10. 网站循环加载监控-C#

    背景: 公司有一个报表的网站,服务器或系统不太稳定,导致客户有时候查看报表网址的时候网站打不开或者打开时间过长,影响用户体验 需求: 通过程序循环打开网址了解加载情况,使用谷歌浏览器内核.,程序开发不 ...