mysql_建表
建表
某字段多个默认值
创建表时,对多选多的字段设置两个以上的默认值时,两个默认值之间用逗号','隔开,不能加空格。
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_建表的更多相关文章
- Vertica 安装,建库,新建测试用户并授予权限,建表,入库
测试环境:RHEL 6.4 + Vertica 6.1.3-7 需求:搭建Vertica数据库3节点的测试环境,建立测试用户,建表,测试数据入库. 1.各节点关闭防火墙和SELinux,配置主机名,I ...
- 建表过程-列名&列类型&修改表B
怎么建表? 主键 名称 重量 价格 生产日期 保质期 产地 种类 分析:我们只要把第一行的表头建好后,这张表也就完成了. 术语:建表的过程就是声明字段过程 ...
- Oracle获取干净的建表DDL语句,不含其它存储、表空间、段属性
早上一个同事资讯怎么获取到建表语句而且是不带存储那种SQL.Oracle自己提供了一个函数DBMS_METADATA.GET_DDL,但是获取到的建表语句含有存储.表空间.以及一些其他段的属性.如图: ...
- sql2000分享 批量建表dev_编号
批量建表dev_3970000000014到dev_3970000000035 declare @i bigint declare @j int ) ) ) ) set @sql = '' set @ ...
- 基于表的数据字典构造MySQL建表语句
表的数据字典格式如下: 如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确. 写了个Perl脚本,可快速构造MySQL脚本语句. 脚本如下: #!/usr/bin/perl use str ...
- hive建表与数据的导入导出
建表: create EXTERNAL table tabtext(IMSI string,MDN string,MEID string,NAI string,DestinationIP string ...
- 在Oracle SQLplus下建用户 建表
在建表之前最好新建一个用户,因为在sys用户下的表格不允许删除列, 所以最好不要在sys用户下建表. 一.在Oracle SQLplus下建用户: 1.以dba身份登陆SQLplus: [oracle ...
- Hibernate不能自动建表解决办法
最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且 ...
- Oracle建表
1.oracle数据库中的多种数据结构: 1.表结构 存储数据 2.视图 一张表或多张表中数据的字节 3.sequence 主要用来生成主键值 4.index 提高检索性能 我们 ...
随机推荐
- 重启Zabbix Server
重启zabbix server:systemctl restart zabbix-server #启动服务 systemctl start zabbix-server systemctl start ...
- June 17. 2018, Week 25th. Sunday
Dad is and always will be my living, breathing superhero. 在我眼里,爸爸是现实版的超级英雄,现在.将来,永远都是. From Bindi Ir ...
- 数据结构【查找】—平衡二叉树AVL
/*自己看了半天也没看懂代码,下次再补充说明*/ 解释: 平衡二叉树(Self-Balancing Binary Search Tree 或Height-Balanced Binary Search ...
- JAVA 多线程环境下的静态方法
第一: 程序运行的时候,JVM内存主要由以下部分组成: 堆: 所有线程共享一个堆,在 Java 虚拟机中,堆(Heap)是可供各条线程共享的运行时内存区域,也是供所有类实例和数组对象分配内存的区域. ...
- docker pull下载镜像报错Get https://registry-1.docker.io/v2/library/centos/manifests/latest:..... timeout
使用docker pull从镜像仓库拉取镜像时报错如下:[root@docker-registry ~]# docker pull centosUsing default tag: latestTry ...
- ES5-ES6-ES7_函数的扩展
call()/apply()/bind()的用法 Function.prototype.bind(obj) :将函数内的this绑定为obj, 并将函数返回 function foo() { cons ...
- 寒假训练——搜索——C - Robot
The Robot Moving Institute is using a robot in their local store to transport different items. Of co ...
- 【FJWC 2019】 森林
[FJWC 2019] 森林 样例输入 0 5 1 0 0 2 样例输出 1 2 3 3 我们发现,答案就是直径加上直径上某个点出发,不经过其他直径上的点的最长链.这里的直径可以是任意一条直径. 首先 ...
- Pandas 的数据结构
Pandas的数据结构 导入pandas: 三剑客 from pandas import Series,DataFrame import pandas as pd import numpy as np ...
- 利用filter替换字符串中的空格
s = "abc def ghi xy" print(','.join(filter(lambda x: x, s.split(' '))))