美文网首页这里是 MySql 笔记
3、mysql数据库表操作

3、mysql数据库表操作

作者: go以恒 | 来源:发表于2018-09-15 23:40 被阅读3次

[toc]

1、创建表

create table 表名(
    列名  类型  是否可以为空,
    列名  类型  是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8
  • InnoDB 支持事务回滚,原子性操作
  • myisam 不支持事务,但速度快
是否可以为空
  • 是否可空,null表示空,非字符串
  • not null - 不可空
  • null - 可空
默认值

默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值

create table 表名(
    nid int not null defalut 2,
    num int not null
)

2、设置自增和主键

自增

自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)

注意:

  1. 对于自增列,必须是索引(含主键)
  2. 对于自增可以设置步长和起始值
create table 表名(
    nid int not null auto_increment primary key,
    num int null
)
或
create table 表名(
    nid int not null auto_increment,
    num int null,
    index(nid)
)

auto_increment 表示:自增

primary key 表示: 主键约束(不能重复且不能为空),有加速查找的效果

主键

主键,一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。

create table 表名(
    nid int not null auto_increment primary key,
    num int null
)

create table 表名(
    nid int not null,
    num int not null,
    primary key(nid,num)
)

唯一索引

唯一索引(此列值不能重复)

==unique 唯一索引名称 (列名)==

create table t1(
    id int ....,
    num int,
    xx int,
    unique uq1 (num),
    constraint ....
)

联合唯一索引(此两列排列组合值不能重复)

==unique 唯一索引名称 (列名,列名)==

create table t1(
    id int ....,
    num int,
    xx int,
    unique uq1 (num,xx),
    constraint ....
)

外键

外键,一个特殊的索引,只能是指定内容

creat table color(
    nid int not null primary key,
    name char(16) not null
)

create table fruit(
    nid int not null primary key,
    smt char(32) null ,
    color_id int not null,
    constraint fk_cc foreign key (color_id) references color(nid)
)

3、查看表设置

  • 查看表设置 desc 表名;
  • 以sql语句的方式查看表设置show create table 表名;
  • 以竖向的方式查看show create table 表名 \G;

4、设置自增起始值

  • 设置自增起始值alter table 表名 AUTO_INCREMENT=20;

5、设置步长

MySQL: 设置自增步长

基于会话级别:
  • 查看全局变量show session variables like 'auto_inc%';
  • 设置会话步长set session auto_increment_increment=2;
  • 设置起始值(在表里可以设置起始值,不必在这里设置)set session auto_increment_offset=10;
基于全局级别(基本上不用):
  • 查看全局变量show global variables like 'auto_inc%';
  • 设置会话步长set global auto_increment_increment=2;
  • 设置起始值(在表里可以设置起始值,不必在这里设置)set global auto_increment_offset=10;

(参考)SqlServer:自增步长:

基础表级别:
CREATE TABLE `t5` (
  `nid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL,
  `num` int(11) DEFAULT NULL,
  PRIMARY KEY (`nid`,`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=4, 步长=2 DEFAULT CHARSET=utf8
CREATE TABLE `t6` (
  `nid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL,
  `num` int(11) DEFAULT NULL,
  PRIMARY KEY (`nid`,`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=4, 步长=20 DEFAULT CHARSET=utf8

删除及清空表

  • 删除表: drop table 表名
  • 清空表数据: delete from 表名
  • 清空表数据和自增起始值:
    truncate table 表名

修改表

  • 添加列:alter table 表名 add 列名 类型
  • 删除列:alter table 表名 drop column 列名
  • 修改列类型:alter table 表名 modify column 列名 类型;
  • 修改列名,类型:alter table 表名 change 原列名 新列名 类型;
  • 添加主键:alter table 表名 add primary key(列名);
  • 删除主键:alter table 表名 drop primary key;</br>
    alter table 表名 modify 列名 int, drop primary key;
  • 添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
  • 删除外键:alter table 表名 drop foreign key 外键名称
  • 修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
  • 删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

相关文章

  • Mysql大全

    1.Mac下Homebrew 安装mysql 2.mysql管理 3.mysql数据库操作 4.mysql表操作 ...

  • mysql 总结

    1 mysql常用术语 2 mysql安装 3 连接数据库 4 数据库的操作 (**) 5. 表的基本操作(***...

  • python 教程笔记day10

    Python3 MySQL 数据库连接 数据库连接 创建数据库表 数据库插入操作 数据库查询操作 数据库更新操作 ...

  • 3 MySQL数据库操作

    2 MySQL数据库操作 3.1 MySQL操作数据库 3.2 MySQL操作数据表 3.2.1 MySQL创建数...

  • MySql笔记

    Mac安装并运行MySql MySql数据库、数据表的操作 MySql数据类型及常见约束 MySql表操作 MyS...

  • 简明的MYSQL教程(一)

    MySQL基础 1.数据库基本概念 2.MySQL的初步了解 3.创建/删除数据库 4.创建表以及表的操作 1.数...

  • mysql操作

    进入或退出mysql 启动,关闭 数据库简单操作 表操作

  • MySQL基本语句-01

    MySQL不区分大小写!!! 对MySQL的操作 登录MySQL 展示所有数据库 展示所有表 退出 对数据库的操作...

  • 数据库第一周

    mysql的命令和查询语句: 登陆系统 数据库的操作 如何创建表 关于表的操作: DML:数据库操作语言:对于表中...

  • MySQL必知必会基础

    一、mysql 数据库/表的操作 -- 连接数据库 mysql -u root -p -- 退出数据库 quit/...

网友评论

    本文标题:3、mysql数据库表操作

    本文链接:https://www.haomeiwen.com/subject/xlcxnftx.html