1. sql约束作用

主键约束作用:保证插入数据的有效性。
比如性别列,只能是“男”“女”,
输入“abc”就是无效的,所以你可以添加约束
alter table 表名
add constraint chk_sex check(性别 in ('男','女'))进行约束。

外键约束作用:建立外键的作用就是保证数据的完整性,就如同表A里有主键aa字段,表B里有bb字段,当A为主表,B为从表时,主表的主键就是从表的外键,也就是说B表里的bb字段的取值要来自A表里的aa字段。限制约束,以达到数据上的完整。

eg:
班级和学生是一对多的关系,将班级表(class)中的主键(class_id)作为学生表(student)的外键对学生表进行约束。 
alter table student 
add constraint fk_student_class foreign key(class_id) references class(class_id) 
(注意:学生表中的外键字段必须与班级表中被作为外键的字段数据类型保持一致,但其名称可以不同)

2. 索引

概念:索引,使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。

#创建普通索引

CREATE INDEX index_userid ON userbase(userid);

ALTER TABLE userbase ADD INDEX index_username(username);

#创建唯一索引 -- 唯一索引,就是在创建索引的时候,限制索引值必须是唯一值,通过该类型的索引可以更快的查询某条记录。

【注意:创建唯一索引的时候,如果表中该字段有为空值的时候,则唯一索引会创建失败。】

CREATE UNIQUE INDEX index_userid ON userbase(userid);
ALTER TABLE userbase ADD UNIQUE INDEX index_username(username);

#创建全文索引 -- 全文索引主要关联在数据库中数据类型为CHAR、VARCHAR、TEXT的字段上,以便能够更加快速的查询数据量较大的字符串类型的字段。

CREATE INDEX index_userid ON userbase(userid);
ALTER TABLE userbase ADD UNIQUE INDEX index_username(username);

3. Mysql 运算符

算数运算符:+、-、*、/、(DIV)、%、(MOD)-- 注意:/和DIV都是除法运算符,/ 结果默认保存四位小数结果,DIV 默认保存整数结果。

EG: select * from table where F1 is null;--F1为null的数据。

比较运算符:

4. 正则表达式  

-- eg:

a. SELECT '/webproxy/src/main/webapp/css/report.css' REGEXP '^/web.*css$';

SELECT '/webproxy/src/main/webapp/css/report.css' REGEXP '^/web|css$';

b. 查询找到所有名称以元音开始和'ok'结束:

SELECT NAME FROM person_tbl WHERE NAME REGEXP '^[aeiou]|ok$'; -- "|" 为或的关系

de|abc

匹配de或abc

^  匹配字符串的开始部分

$ 匹配字符串的结束部分

. 匹配字符串中的任意一个字符

[字符集合] 匹配字符集合中的任意一个字符

[^字符集合] 匹配字符集合外的任意一个字符

str1|str2|str3 匹配str1、str2、str3的任意一个字符串

* 匹配字符,包含0个和1个

+ 匹配字符,包含1个

字符串{N} 字符串N次

字符串{M,N} 字符串至少出现M次,最多出现N次

4.0 正则表达式匹配验证

REGEXP检查总是返回0(没有匹配)或1(匹配),可以用带文字串的REGEXP来测试表达式,并试验它们。

EG:SELECT '/webproxy/src/main/webapp/css/report.css' REGEXP '^/web';

4.1 $可以比较是否是以特定的字符或者是字符串结尾的

EG:SELECT * FROM userbase WHERE username REGEXP '5$' ORDER BY username; -- 可做匹配用途。

五个知识体系之-SQL学习-第三天的更多相关文章

  1. 五个知识体系之-SQL学习-第二天

    创建数据:INSERT INTO userinfo(userid,username,job,level1,companyage) VALUES ('001','xl001','test','P1',' ...

  2. 五个知识体系之-SQL学习-第一天

    1. 创建数据库 CREATE DATABASE test1; 2. 删除数据库 DROP DATABASE test1; 3. 创建表 CREATE TABLE tabname (userid BI ...

  3. 五个知识体系之-SQL学习-第四天

    5. MySQL常用函数 5.1字符串函数 concat(s1,s2....,s3)合并字符串,如果参数有null,则返回null: CONCAT_WS(SEP,s1,s2…,sn) 合并字符串,并且 ...

  4. 五个知识体系之-SQL语句大全

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  5. 五个知识体系之-Linux常用命令学习

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  6. SQL学习笔记三(补充-3)之MySQL完整性约束

    阅读目录 一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 作业 一 介绍 约束条件与数据 ...

  7. SQL学习笔记三(补充-2)之MySQL数据类型

    阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 ...

  8. PL/SQL学习(三)游标

    原文参考:http://plsql-tutorial.com/ 两种类型:     隐式:         执行INSERT.UPDATE.DELETE 或者只返回一条结果的SELECT语句时默认创建 ...

  9. SQL学习笔记三之MySQL表操作

    阅读目录 一 存储引擎介绍 二 表介绍 三 创建表 四 查看表结构 五 数据类型 六 表完整性约束 七 修改表ALTER TABLE 八 复制表 九 删除表 一 存储引擎介绍 存储引擎即表类型,mys ...

随机推荐

  1. 修正MYSQL错误数据的一个存储过程

    -- 添加索引 CREATE INDEX idx_STRUCTURE_ID ON t_resource_info(STRUCTURE_ID); DROP PROCEDURE IF EXISTS `P_ ...

  2. Win7下VS2010、IIS7配置常见问题收集

    一 在Win7下应按什么次序安装vs2010和iis7 win7推荐先安装iis7,再安装vs2010:如果次序反了,必须注册iis才可以用. IIS中ASP.NET的版本号此时可选的有1.1.2.0 ...

  3. AC日记——[SCOI2007]蜥蜴 bzoj 1066

    1066 思路: 网络流最大流: 拆点,每个点拆成两个,流量为这个点的高度: 注意,文中说的距离是曼哈顿距离(劳资以为开根号wa了不知道多少次): 每两个距离不大于d的点连边,流量inf: 如果距离能 ...

  4. Codeforces Gym100814 I.Salem-异或 (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)

    这个题就是二进制,找两个数相应的二进制相对应的位置上数不同的最多的个数.异或写就可以. 一开始还想麻烦了,找出来最大的偶数和最大的奇数,最小的偶数和最小的奇数,但是这样想考虑的不全.因为范围比较小,直 ...

  5. .NET Core微服务 权限系统+工作流(一)权限系统

    一.前言 实际上权限系统老早之前我就在一直开发,大概在刚毕业没多久就想一个人写一个系统,断断续续一直坚持到现在,毕竟自己亲动手自写的系统才有收获,本篇仅介绍权限. 小小系统上不了台面,望各位大神勿喷. ...

  6. Jenkins错误“to depth infinity with ignoreexternals:true”问题解决

    试下以下解决方法: 1.可能是SVN插件版本过低导致,升级SVN插件. 2.可能是构建时自己手动修改了代码,而SVN检出时无法覆盖导致的错误,可以先删除jenkins检出的代码,然后再检出一次去构建. ...

  7. Storyboards Tutorial 03

    这一节主要介绍segues,static table view cells 和 Add Player screen 以及 a game picker screen. Introducing Segue ...

  8. Android中的多线程断点续传

    Android多线程断点下载的代码流程解析: 运行效果图: 实现流程全解析: Step 1:创建一个用来记录线程下载信息的表 创建数据库表,于是乎我们创建一个数据库的管理器类,继承SQLiteOpen ...

  9. Android 两种注册、发送广播的区别

    前言:前面文章记录了Service的使用,这次来记录另一个四个组件之一的BroadcastReceiver.主要介绍两种发送和注册广播的区别. BroadcastReceiver广播接收者用于接收系统 ...

  10. hdu1017(C++)

    这个题目很水,但是卡了格式和m=0的情况,wa了好多次,题目只给出N=1,感觉没说清楚 #include<iostream>using namespace std;int main(){ ...