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( ...
随机推荐
- RabbitMQ服务主机名更改导致消息队列无法连接
RabbitMQ服务主机名更改导致消息队列无法连接 在多节点环境中,RabbitMQ服务使用一个独立节点部署.在此环境下,如果修改了RabbitMQ节点的主机名,则需要更新RabbitMQ用户才能保证 ...
- Codeforces 906 D. Power Tower
http://codeforces.com/contest/906/problem/D 欧拉降幂 #include<cstdio> #include<iostream> usi ...
- bzoj千题计划208:bzoj3174: [Tjoi2013]拯救小矮人
http://www.lydsy.com/JudgeOnline/problem.php?id=3174 按a+b从小到大排序,a+b小的在上面,先考虑让它逃出去 正确性不会证 感性理解一下,最后一个 ...
- 数学:二次剩余与n次剩余
二次剩余求的是这个东西 如果给定x,再给定若干个大的质数p,如果结果a相同,那么x是完全平方数? 给出别人的二次剩余的代码: /*poj 1808 题意: 判断平方剩余,即判断(x^2)%p=a是否有 ...
- HDU 4315 阶梯博弈变形
n个棋子,其中第k个是红色的,每个棋子只能往上爬,而且不能越过.重叠其他棋子,谁将红色棋子移到顶部谁赢. 由于只能往上爬,所以很像阶梯博弈.这题有2个限制,棋子不能重叠,有红棋存在 首先不考虑红色棋, ...
- 模拟jQuery中的ready方法及实现按需加载css,js
一.ready函数的实现 经常用jQuery类库或其他类库中的ready方法,有时候想想它们到底是怎么实现的,但是看了一下jQuery中的源码,涉及到的模块比较多,(水平有限)代码比较难看懂:自己结合 ...
- 【转载】ssh(安全外壳协议)
http://baike.baidu.com/subview/16184/5909252.htm?fr=aladdin
- 20155237 2016-2017-2 《Java程序设计》第7周学习总结
20155237 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 认识Lambda语法 Lambda 教材的引入循序渐近.深入浅出 Lambda去重复,回忆D ...
- ftp 服务
ftp 上传下载 yum install ftp -y ftp:192.168.1.1 上传 put file1 下载 get file2 直接方式 ftp get test.tar.gz 文件 ft ...
- Linux 并发链接数
并发数查看 查看 TCP 协议连接数 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' SYN_RECV # ...