建表

某字段多个默认值

  创建表时,对多选多的字段设置两个以上的默认值时,两个默认值之间用逗号','隔开,不能加空格。

create table student2(
id int not null,
name varchar(50) not null,
age int(3) unsigned not null default 8,
sex enum('male', 'female') default 'male',
fav set('smoke', 'drink', 'tangtou') default 'drink,tangtou'
);

  当添加空格时就会报错,报错信息如下:

ERROR 1067 (42000): Invalid default value for 'fav'

第一个字段不能使用in

  在创建表的过程中,第一个字段(也就是原来的id字段,这里说in是因为手滑打错了)不能够使用in,否则会报错.

create table department0(
in int,
name char(10),
unique(id),
unique(name)
);

报错信息如下:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'in int,
name char(10),
unique(id),
unique(name)
)' at line 2

联合唯一索引

  创建表时,设置联合唯一,意思就是表中的一条记录不能完全相同,其中的一个数据单元可以相同,但是被用来创建联合唯一索引的那几个字段的数据单元组合记录不能相同。

复合主键

  复合主键,将其中的两列组合作为主键,组成复合主键的两个单元的组合完全相同时,报错。

delete from

  使用delete from 表名; 删除一个表时,删除的只是表中的数据,表的结构依然存在;当再次往表中添加数据时,这条数据的ID会接着删除之前的最后一条数据的ID往后增加。并且delete是逐条的删除记录,删除速度较慢。

truncate

  使用truncate 表名;  删除表时,同样也删除表中的数据,但是与delete不同的是,truncate删除过的表再次插入数据时,记录的ID会从1开始增加,truncate删除表是一下子清空表中的数据,删除速度快,删除数据时使用truncate比较多。

步长

  show variables like 'auto_inc%';  查看可用的开头可自增步长;

  % 为通配符。

+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 | # 步长
| auto_increment_offset | 1 | # 开头
+--------------------------+-------+

  设置步长,只在本次会话中有效,退出链接后失效。

 set session auto_increment_increment=5; 

  设置步长,全局有效。

set global auto_increment_increment=5;

  设置起始偏移量,全局有效。

set global auto_increment_offset=3;
  如果auto_increment_offset的值大于auto_increment_increment的值,则auto_increment_offset的值会被忽略。

外键
  外键的变种-三种关系
  多对一/一对多  需要建立两张表
    foreign key 一般建立在多条记录的一侧.
  多对多  需要建立三张表
    多对多建立的第三张表的主键为另外两张表的联合. 
  一对一  需要建立两张表
  
  

mysql_建表的更多相关文章

  1. Vertica 安装,建库,新建测试用户并授予权限,建表,入库

    测试环境:RHEL 6.4 + Vertica 6.1.3-7 需求:搭建Vertica数据库3节点的测试环境,建立测试用户,建表,测试数据入库. 1.各节点关闭防火墙和SELinux,配置主机名,I ...

  2. 建表过程-列名&列类型&修改表B

    怎么建表? 主键 名称 重量 价格 生产日期 保质期 产地 种类                       分析:我们只要把第一行的表头建好后,这张表也就完成了.  术语:建表的过程就是声明字段过程 ...

  3. Oracle获取干净的建表DDL语句,不含其它存储、表空间、段属性

    早上一个同事资讯怎么获取到建表语句而且是不带存储那种SQL.Oracle自己提供了一个函数DBMS_METADATA.GET_DDL,但是获取到的建表语句含有存储.表空间.以及一些其他段的属性.如图: ...

  4. sql2000分享 批量建表dev_编号

    批量建表dev_3970000000014到dev_3970000000035 declare @i bigint declare @j int ) ) ) ) set @sql = '' set @ ...

  5. 基于表的数据字典构造MySQL建表语句

    表的数据字典格式如下: 如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确. 写了个Perl脚本,可快速构造MySQL脚本语句. 脚本如下: #!/usr/bin/perl use str ...

  6. hive建表与数据的导入导出

    建表: create EXTERNAL table tabtext(IMSI string,MDN string,MEID string,NAI string,DestinationIP string ...

  7. 在Oracle SQLplus下建用户 建表

    在建表之前最好新建一个用户,因为在sys用户下的表格不允许删除列, 所以最好不要在sys用户下建表. 一.在Oracle SQLplus下建用户: 1.以dba身份登陆SQLplus: [oracle ...

  8. Hibernate不能自动建表解决办法

    最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且 ...

  9. Oracle建表

    1.oracle数据库中的多种数据结构: 1.表结构            存储数据 2.视图 一张表或多张表中数据的字节 3.sequence 主要用来生成主键值 4.index 提高检索性能 我们 ...

随机推荐

  1. no plugin found for prefix 'tomcat 7' in the current project and in the plugin groups的解决方法

    解决方法一: 找到这个settings.xml文件,进行编辑,在pluginGroups标签下加入下面的配置 <pluginGroups><pluginGroup>org.ap ...

  2. adb连接手机模拟器

    首先,要保证模拟器和电脑在同一网段(手机模拟器设置为桥接模式即可) 我使用的是夜神模拟器. 然后查看一下adb版本, adb version 需要1.0.31往上的版本才能连接. 然后输入 adb c ...

  3. [HBase_3] HBase 命令

    0. 说明 1. HBase 命令 1.1 HBase 与 SQL 的区别 1.2 合并 HBase 中的小文件 major_compact 'test:t1' 1.3 删除数据的区别 HBase 在 ...

  4. Linux系统挂载Windows的共享文件夹

    解决方案 在window上文件设置共享权限 在Linux上在 使用mount 命令挂载 Windows 共享文件夹 实验环境 redhat linux 7操作系统 服务器IP 192.168.100. ...

  5. Win 10 和 Linux 双系统,从硬盘删除Linux分区,Win 10引导修复

    由于安装双系统后,Linux 用的比较少.因此,从Win 10 磁盘管理中删除了linux 占用的磁盘空间,重启后无法进入win 10 ,出现如下情况: 有人提出,此时需要重装系统,并不用如此麻烦,通 ...

  6. Python中可变和不可变类型

    可变类型 列表,字典,集合 不可变类型 数字,字符串,元组 这里的可变不可变,是指内存中的那块内容(value)是否可以被改变 不可变类型 数字 a = 1 b = 1 print(id(a), id ...

  7. SpringCloud之初识Zuul(网关)---动态路由,权限验证

    通过前面的学习,使用Spring Cloud实现微服务的架构基本成型,大致是这样的: 我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现:而服务间通过 ...

  8. Win10 开始运行不保存历史记录原因和解决方法

    Win10 开始运行命令以后,再次打开就没有任何历史记录了,常规方法是桌面-右键-个性化-开始-显示最常用的应用..可是打开是灰色的不可选. 每次打开开始都没有以前的记录..比如需要打开下regedi ...

  9. CentOS TinyProxy http(s)上网代理及置代理上网的方法

    http://blog.csdn.net/fwj380891124/article/details/42168683 http://computer.uoh.edu.cn/linux/2159.htm ...

  10. mac下安装redis详细步骤

    Linux下安装redis也可以参照下面的步骤哦!!!! 1.到官网上下载redis,我下载的版本是redis-3.2.5.tar 官网地址:http://redis.io/ 2.将下载下来的tar. ...