五个知识体系之-SQL学习-第三天
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'结束:
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学习-第三天的更多相关文章
- 五个知识体系之-SQL学习-第二天
创建数据:INSERT INTO userinfo(userid,username,job,level1,companyage) VALUES ('001','xl001','test','P1',' ...
- 五个知识体系之-SQL学习-第一天
1. 创建数据库 CREATE DATABASE test1; 2. 删除数据库 DROP DATABASE test1; 3. 创建表 CREATE TABLE tabname (userid BI ...
- 五个知识体系之-SQL学习-第四天
5. MySQL常用函数 5.1字符串函数 concat(s1,s2....,s3)合并字符串,如果参数有null,则返回null: CONCAT_WS(SEP,s1,s2…,sn) 合并字符串,并且 ...
- 五个知识体系之-SQL语句大全
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- 五个知识体系之-Linux常用命令学习
1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...
- SQL学习笔记三(补充-3)之MySQL完整性约束
阅读目录 一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 作业 一 介绍 约束条件与数据 ...
- SQL学习笔记三(补充-2)之MySQL数据类型
阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 ...
- PL/SQL学习(三)游标
原文参考:http://plsql-tutorial.com/ 两种类型: 隐式: 执行INSERT.UPDATE.DELETE 或者只返回一条结果的SELECT语句时默认创建 ...
- SQL学习笔记三之MySQL表操作
阅读目录 一 存储引擎介绍 二 表介绍 三 创建表 四 查看表结构 五 数据类型 六 表完整性约束 七 修改表ALTER TABLE 八 复制表 九 删除表 一 存储引擎介绍 存储引擎即表类型,mys ...
随机推荐
- Rust-HayStack
src/main.rs extern crate multipart; extern crate iron; extern crate time; //image converter extern c ...
- NOIP2016模拟赛三 Problem B: 神奇的树
题面 Description 有一棵神奇的树.这棵树有N个节点,在每个节点上都有宝藏,每个宝藏价值V[i]金币:对于每条边,每经过一次都要花费C[i]金币. 值得注意的是,每个宝藏只能领取一次(也可以 ...
- shell脚本 linux脚本
linux:shell 脚本 如果判断当前时间 是不是12点之前 用date命令先取得当前的时间(仅取小时数) : date '+%H' #按24小时制取hour (00..23) 然后与12 ...
- 【java】TreeMap/HashMap的循环迭代中 keySet和entrySet和forEach方式 + map的几种迭代方式
参考链接:https://www.cnblogs.com/crazyacking/p/5573528.html ================================== java紫色代表迭 ...
- 【spring boot】8.spring boot的日志框架logback使用
在继续上一篇的Debug调试之后,把spring boot的日志框架使用情况逐步蚕食. 参考:http://tengj.top/2017/04/05/springbo 开篇之前,贴上完整applica ...
- AOP技术应用于安全防御与漏洞修复
本文用到的技术 AOP ESAPI 关于AOP技术 AOP(Aspect-Oriented Programming)面向切面编程.切面是什么?切面表示从业务逻辑分离出来的横切逻辑,比如性能监控.日志记 ...
- java中的占位符\t\n\r\f
\t 相当于tab,缩进\n NewLine 换行 System.out.println("aaa\tbbb"); //aaa bbbSystem.out.println(&quo ...
- 转:java的各个拓展类库的推荐方案
from: 链接:https://www.zhihu.com/question/21142149/answer/109854408 Java是世界上最强大的编程语言之一,很多开发人员和大型企业都偏爱J ...
- Kali Linux 2.0安装光盘分享
Kali Linux 2.0安装光盘分享 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I ...
- 用PROXYCHAINS实现SSH全局代理
NUX下可以实现SSH全局代理的软件有tsocks和proxychains两种,但是个人感觉proxychains要更加稳定简单. $ yum install proxychains # vim /e ...