SQL语句之 数据约束
SQL语句之 数据约束
什么是数据约束
数据约束用来限制用户对数据的非法的修改操作。
1.约束字段的默认值
如果插入记录时,没有给某个字段赋值,那么我们可以设置它的默认值
关键字:default
CREATE TABLE test1(
tin INT,
tname VARCHAR(20) DEFAULT '待定'
);
INSERT INTO test1(tin) VALUES (1);
SELECT * FROM test1;
2.非空约束
约束一个字段,使它的值不能为空
关键字: not null
CREATE TABLE test1(
tin INT,
tname VARCHAR(20) NOT NULL
);
这里的非空指的是null 和 没有插入值,如果是空字符串,是可以插入的。
3.约束重复值
使不同的记录的字段的值不能相同。
关键字: unique
CREATE TABLE test1(
tin INT UNIQUE,
tname VARCHAR(20)
);
虽然不可重复,但是null可以插入,而且可以多个记录的值为null。
4.主键约束
当需要每一条记录都有一个唯一的标识,这就需要使用主键,例如生活中的ID,一般公司内每个人的ID都是唯一的,对每个人都是唯一的标识。
关键字:primary key
CREATE TABLE test1(
tin INT PRIMARY KEY,
tname VARCHAR(20)
);
主键的特性: 唯一,不能为null。
5.自增长
有些数据我们希望每插入一条记录到表中,那么该记录的自动获得一个编号,每次插入一条记录,该编号就自动加1,例如ID,这就需要用到自增长。
关键字:auto_increment
CREATE TABLE test1(
tin INT PRIMARY KEY AUTO_INCREMENT,
tname VARCHAR(20)
);
自增长的特性:
我们使用delete from 语句来删掉表中的所有数据,自增长数值是不会重置的。
如果使用truncate fom 语句来删除表中所有数据,自增长数的值会重新从0算起。
TRUNCATE TABLE test;
SQL语句之 数据约束的更多相关文章
- PHP如何通过SQL语句将数据写入MySQL数据库呢?
1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect(&qu ...
- 通过Sql语句导数据
在通过SQL Server向导中的SQL语句导数据时,默认情况下源表中的nvarchar字段类型会变成202,解决此问题的方法是,要重新选择一下对应的数据接收表.
- 使用SQL语句进行数据复制
使用SQL语句对数据或者表进行复制,一般用于两张表结构相同的时候使用. SQL Server中,如果目标表存在: insert into 目标表 select * from 原表; SQL Serve ...
- mysql详解常用命令操作,利用SQL语句创建数据表—增删改查
关系型数据库的核心内容是 关系 即 二维表 MYSQL的启动和连接show variables; [所有的变量] 1服务端启动 查看服务状态 sudo /etc/init.d/mysql status ...
- 使用SQL语句使数据从坚向排列转化成横向排列(排班表)
知识重点: 1.extract(day from schedule01::timestamp)=13 Extract 属于 SQL 的 DML(即数据库管理语言)函数,同样,InterBase 也支持 ...
- sql语句百万数据量优化方案
一:理解sql执行顺序 在sql中,第一个被执行的是from语句,每一个步骤都会产生一个虚拟表,该表供下一个步骤查询时调用,比如语句:select top 10 column1,colum2,max( ...
- SQL语句检索数据排序及过滤
阅读目录 一:排序检索数据 二:过滤数据 三:高级数据过滤 四:用通配符进行过滤 回到顶部 一:排序检索数据 1.1 排序数据 比如查询数据库中表数据的时候,我们使用如下语句: select * fr ...
- (排班表一)使用SQL语句使数据从坚向排列转化成横向排列
知识重点: 1.extract(day from schedule01::timestamp)=13 Extract 属于 SQL 的 DML(即数据库管理语言)函数,同样,InterBase 也支持 ...
- <搬运> SQL语句百万数据量优化方案
一:理解sql执行顺序 在sql中,第一个被执行的是from语句,每一个步骤都会产生一个虚拟表,该表供下一个步骤查询时调用,比如语句:select top 10 column1,colum2,max( ...
随机推荐
- Zabbix应用五:Zabbix监控多Tomcat
利用Zabbix Trapper方式监控多Tomcat实例 Zabbix自带的模版(JMX Tomcat.JMX Generic)默认只能在一台机器上监控一个tomcat实例(因为监控项中的key不能 ...
- SQL记录-PLSQL条件控制
PL/SQL条件控制 决策结构需要程序员指定一个或多个条件要计算,或由程序进行测试,如果条件被确定为真那么一条或多条语句被执行,如果要被执行的其它语句条件被确定为假,则选其它执行块. 以下是从在大 ...
- java Runnable、Callable、FutureTask 和线程池
一:Runnable.Callable.FutureTask简介 (1)Runnable:其中的run()方法没有返回值. ①.Runnable对象可以直接扔给Thread创建线程实例,并且创建的线程 ...
- 五个案例让你明白GCD死锁(转)
转自:http://ios.jobbole.com/82622/ 死锁一直都是在使用多线程时,需要注意的一个问题.以前对同步.异步,串行.并行只有一个模糊的概念,想想也是时候整理一下了.再看看之前的博 ...
- c++刷题(37/100)笔试题2
4道题2小时,又是一道,不过这次的比较难,但第二道不应该的,又是审题不仔细导致没过 题目1: 给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”.比如字符串AAAABCC ...
- lucene简介——(一)
0.概念性东西 1.数据分类
- 【C++】wchar、char格式化符输出
VC.BCB.MinGW Linux下的GCC.C99标准 printf wprintf printf wprintf s char wchar_t char S wchar_t char * hs ...
- SQL Server限制IP访问1433端口
1.用系统自带的防火墙,启用防火墙 2.点击[添加端口],名称填1433,端口号填1433 3.协议TCP,点[更改范围],选自定义列表,那个框里就填本机服务器的IP地址.
- Explain EV in /proc/bus/input/devices data【转】
转自:https://unix.stackexchange.com/questions/74903/explain-ev-in-proc-bus-input-devices-data It repre ...
- USB协通讯议--深入理解【转】
转自:http://blog.csdn.net/myarrow/article/details/8484113 0. 基本概念 一个[传输](控制.批量.中断.等时):由多个[事务]组成: 一个[事务 ...