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( ...
随机推荐
- LAMP平台-wordpress的搭建
LAMP平台-wordpress的搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来 ...
- Java基础-编写问候语-“Hello World”
Java基础-编写问候语-“Hello World” 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编写“Hello World”程序 1>.编写源代码 任何文本编辑起都 ...
- Nginx配置项优化(转载)
(1)nginx运行工作进程个数,一般设置cpu的核心或者核心数x2 如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor / ...
- 数链剖分(Tree)
题目链接:https://cn.vjudge.net/contest/279350#problem/D 题目大意:操作,单点查询,区间取反,询问区间最大值. AC代码: #include<ios ...
- 内核早期内存分配器:memblock
内核早期内存分配器:memblockLinux内核使用伙伴系统管理内存,那么在伙伴系统工作前,如何管理内存?答案是memblock.memblock在系统启动阶段进行简单的内存管理,记录物理内存的使用 ...
- 如何批量删除word文档中的超级链接?
有时候从网页上copy来的文章中,会带有非常多的链接,这些链接很烦人是吧?如何批量删除(一次性全部删除)word文章中的超链接呢? 有些朋友说,Ctrl+A全选文章,然后点击格式工具栏上的“清除格式” ...
- NTP服务放大攻击的解决办法
什么是NTP服务? 网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议.NTP服务器通过NTP服务向网络上的计算机或其他设备提供标准的授时服务,以保 ...
- c++中的前置声明
引用google c++编码规范: When you include a header file you introduce a dependency that will cause your cod ...
- bootstrap fileinput插件使用感悟
bootstrap fileinput 的填坑感悟 这个插件在demo的网站地址http://plugins.krajee.com/file-preview-icons-de ...
- maven windows 环境变量
MAVEN_HOME,内容是解压的maven文件路径 Path中添加 %MAVEN_HOME%\bin 为了测试安装成功,打开命令提示符,输入 mvn -version