创建表

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. Centos安装openjdk

    转载自:https://blog.csdn.net/youzhouliu/article/details/51183115 openjdk在linux各个平台下安装源中可以找到. 命令查找安装源中有什 ...

  2. Spring Boot默认日志logback配置解析

    前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用? 正文 Sp ...

  3. 【转】Jquery ajax与asp.net MVC前后端各种交互

    本文转载自:https://www.cnblogs.com/fengyeqingxiang/p/11169218.html 1.Jquery通过ajaxSubmit提交表单 if (jQuery(&q ...

  4. DRF视图-基类

    2个视图基类 REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写. 为了区分上面请求和响应的代码,我们再次创建一个新的子应用: python manage.py star ...

  5. Stream系列(十四)parallet方法使用

    并发 视频讲解:https://www.bilibili.com/video/av78408286/ EmployeeTestCase.java package com.example.demo; i ...

  6. IT架构的本质

    老僧三十年前未参禅时,见山是山,见水是水. 及至后来,亲见知识,有个入出,见山不是山,见水不是水. 而今得个休歇处,依前见山只是山,见水只是水. 参禅的三重境界在IT技术圈同样适用,初学者感叹每个产品 ...

  7. ./configure配置的参数 交叉编译 host,build target的含义

    交叉编译 host,build target的含义:build就是你正在使用的机器,host就是你编译好的程序可以运行的平台,target就是你编译的程序可以处理的平台.这个 build和host比较 ...

  8. WijmoJS V2019.0 Update2发布:再度增强 React 和 Vue 框架的组件功能

    前端开发工具包 WijmoJS 在2019年的第二个主要版本 V2019.0 Update2 已经发布,本次发布涵盖了React 和 Vue 框架下 WijmoJS 前端组件的功能增强,并加入更为易用 ...

  9. MySQL优化——索引

    内容来自:https://yq.aliyun.com/articles/214494?utm_content=m_31338 对此我们来详细分析下(也就是大家在面试时需要说的): 场景一,数据表规模不 ...

  10. TP5实现自定义抛出异常消息(关闭debug)

    重写Handle的render方法,实现自定义异常消息----------------------------------------------------------------------- 首 ...