当前位置: 首页 > news >正文

周到的网站建设上海专业网站建站公

周到的网站建设,上海专业网站建站公,广州做营销网站公司,承德做网站约束 完整性约束 为防止不规范数据进入数据库中#xff0c;在用户对数据进行插入#xff0c;修改#xff0c;删除操作时#xff0c;MySQL提供了一种机制来检查数据库中的数据是否满足规定的条件 约束条件约束描述PRIMARY KEY主键约束NOT NULL非空约束#xff0c;字段不…约束 完整性约束 为防止不规范数据进入数据库中在用户对数据进行插入修改删除操作时MySQL提供了一种机制来检查数据库中的数据是否满足规定的条件 约束条件约束描述PRIMARY KEY主键约束NOT NULL非空约束字段不能为空UNIQUE唯一约束字段值唯一CHECK检查约束检查取值范围DEFAULT默认值约束提供默认值AUTO_INCREMENT自动增加约束约束字段的值自动递增FOREIGN KEY外键约束约束表与表之间关系 列级约束 CREATE TABLE t_student( sno INT(4) PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(5) NOT NULL, sex CHAR(1) DEFAULT 男 CHECK(sex男 || sex女), eamil VARCHAR(15) UNIQUE );表级约束 CREATE TABLE t_student( sno INT(4), sname VARCHAR(5), sex CHAR(1), eamil VARCHAR(15), CONSTRAINT pk_stu PRIMARY KEY (sno), CONSTRAINT ck_stu_sex CHECK (sex男||sex女), );外键约束 外键约束是用来实现数据库表的参照完整性的可以使两张表紧密结合起来特别是针对修改或者删除的级联操作时会保证数据的完整性外键是指表中某个字段的值依赖于另一张表中某个字段值而被依赖的值必须具有主键约束或者唯一约束。被依赖的表称为父表或者主表设置外键约束的表称为子表或者从表 -- 创建主表 CREATE TABLE t_class( cno INT(4) PRIMARY KEY auto_increment, cname VARCHAR(10) NOT NULL, room CHAR(4) );-- 创建子表 CREATE TABLE t_student( cno INT(4) PRIMARY KEY auto_increment, sname VARCHAR(5) NOT NULL, classno int(4) )-- 设置外键约束 可以在创建表约束也可以后面添加 CREATE TABLE t_student( cno INT(4) PRIMARY KEY auto_increment, sname VARCHAR(5) NOT NULL, classno int(4) CONSTRAINT fk_stu_classno FOREIGN KEY (classno) REFERENCES t_class (cno) ) ALTER TABLE t_student ADD CONSTRAINT fk_stu_classno FOREIGN KEY (classno) REFERENCES t_class (cno)外键策略 no action 不允许操作 -- 先将对应键改为null UPDATE t_student set classno NULL WHERE classno 2 -- 再删除从表 DELETE FROM t_class WHERE cno 2cascade级联操作操作主表影响从表的外键信息 -- 删除已有的约束 ALTER TABLE t_student DROP FOREIGN KEY fk_stu_classno; -- 添加新的再删除或者更改时将已有的置为null ALTER TABLE t_student ADD CONSISTENT fk_stu_classno FOREIGN KEY (classno) REFERENCES t_class (cno) on UPDATE CASCADE ON DELETE CASCADEset null置空操作 -- 删除已有的约束 ALTER TABLE t_student DROP FOREIGN KEY fk_stu_classno; -- 置新添加外键约束 ALTER TABLE t_student ADD CONSTRAINT fk_stu_classno FOREIGN KEY (classno) REFERENCES t_class (cno) ON UPDATE CASCADE ON DELETE CASCADE;函数 MySQL中提供了大量的函数来简化用户对数据库的操作比如字符串处理日期的运算数值的运算 单行函数 单行函数是指对每一条记录输入值进行运算并得到相应的计算结果然后返回给用户也就是说每条记录作为参数传递计算得到每条记录返回值 SELECT empno,ename,LOWER(ename),UPPER(iob) FROM emp; -- 转换大小写常用单行函数主要包括字段串函数数值函数日期与时间函数流程函数以及其他函数 多行函数 SELECT MAX(empno),MIN(empno),COUNT(empno),SUM(empno),AVG(empno) FROM emp; -- 计算出总共的数据结果多表查询 需要对多张表进行查询而这多张表需要使用外键和主键关联在一起然后使用连接查询来查询多-张表中满足的要求连接查询类型 cross natural using on -- 交叉连接 SELECT * FROM emp CROSS JOIN dept; -- 缺点没有指定字段所属表效率低-- 指定来自哪个表 SELECT e.DEPTNO,e.IOB,d.LOC FROM emp e NATURAL JOIN dept d;-- 自然连接 natural join 缺点自动匹配表中所有同名列 -- 解决USING SELECT * FROM emp e INNER JOIN dept d USING(DEPTNO)-- using缺点关联的字段必须是同名的 -- 解决 内连接 ON SELECT * FROM emp e INNER JOIN dept d ON (e.deptno d.deptno)-- 内连接缺点只显示匹配信息 -- 外连接可以显示不匹配信息 -- 左外连接 左边全展示 SELECT * FROM emp e LEFT OUTER JOIN dept d ON e.deptno d.deptno -- 右外连接 右边全展示 SELECT * FROM emp e RIGHT OUTER JOIN dept d ON e.deptno d.deptno -- 全外连接 全部展示MySQL 不支持 SELECT * FROM emp e FULL OUTER JOIN dept d ON e.deptno d.deptno -- 解决全外连接 SELECT * FROM emp e LEFT OUTER JOIN dept d ON e.deptno d.deptno UNION SELECT * FROM emp e RIGHT OUTER JOIN dept d ON e.deptno d.deptnoSELECT * FROM emp e RIGHT OUTER JOIN dept d ON e.deptno d.deptno INNER JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal;子查询 单行子查询 执行多条select语句 -- 先执行括号里的在执行外面的 SELECT * FROM emp WHERE sal (SELECT sal FROM emp WHERE eanme jack)多行子查询 -- 查询deptno 20里的job 在deptno 10里面有的数据 SELECT * FROM emp WHERE deptno 20 AND job in (SELECT job FROM emp WHERE deptno 10)-- 查询任意一个都小 SELECT * FROM emp WHERE sal ANY(SELECT sal FROM emp WHERE job clerk) AND job ! clerk;事务 事务是用来维护数据库完整性的它能够保证一系列MySQL操作要么全执行要么全不执行 CREATE TABLE account( id INT PRIMARY KEY auto_increment, uname VARCHAR(10) NOT NULL, balance DOUBLE )SELECT * FROM account;INSERT INTO account VALUES (null,小明,2000),(NULL,丽丽,3000);-- 丽丽向小明转200 UPDATE account SET balance balance - 200 WHERE id 1; UPDATE account SET balance balance 200 WHERE id 2;-- 手动开启事务 START TRANSACTION; UPDATE account SET balance balance - 200 WHERE id 1; UPDATE account SET balance balance 200 WHERE id 2; -- 手动回滚 刚才操作回滚 ROLLBACK; -- 手动提交 COMMIT;脏读 当一个事务正在访问数据并且对数据进行了修改而这种修改还没提交到数据库中这时另一个事务也访问了这个数据因为这个数据还没提交另一个事务访问到的是脏数据依据脏数据做的操作时不正确的 不可重复读 指在一个事务内多次读同一数据在这个事务还没结束时另一个事务也访问了数据在第一个事务多次读数据之间第二个的修改导致第一个事务两次读取不一样因此称为不可重复读 幻读 幻读与不可重复读类似它发生在一个事务读取了几行数据另一个事务插入一些数据时。在随后的查询中第一个事务就会发现多了一些原本不存在的记录 事务隔离 解决脏读不可重复读幻读问题 隔离级别脏读不可重读读幻读READ UNCOMMITTED√√√READ COMMITTED×√√REPEATABLE READ××√SERIALIZABLE××× -- 查看默认事务隔离级别 SELECT transaction_isolation;-- 设置隔离级别 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;视图 将多个表整合到一个视图中这样只用关注数据结构而不用关注表之间联系 -- 创建视图 可以修改表中数据 CREATE VIEW myView01 AS SELECT * FROM emp WHERE deptno 20; -- 查看视图 SELECT * FROM myView01;-- 创建/替换多表视图 不能修改表中数据 CREATE OR REPLACE VIEW myView02 AS SELECT * FROM emp JOIN dept on emp.DEPTNO dept.DEPTNO WHERE sal 2000存储过程 将存储语句封装起来需要时调用 CREATE PROCEDURE myPro1(name VARCHAR(10)) BEGINif name IS NULL OR name THENSELECT * FROM emp;ELSESELECT * FROM emp WHERE ename LIKE CONCAT(%,name,%);END IF; END; -- 删除存储过程 DROP PROCEDURE myPro1; -- 调用存储过程 CALL myPro1(R)-- FOUND_ROWS() 内置函数返回查询的条数 CREATE PROCEDURE myPro1(in name VARCHAR(10),out num INT(3)) BEGINif name IS NULL OR name THENSELECT * FROM emp;ELSESELECT * FROM emp WHERE ename LIKE CONCAT(%,name,%);END IF;SELECT FOUND_ROWS() INTO num; END;
http://wiki.neutronadmin.com/news/446171/

相关文章:

  • 淘宝上做网站行吗wordpress怎么删回复
  • 网站建设材料静态网页设计公司报价
  • 营销型网站搭建公司男的做直播网站
  • 网站建设项目怎么写品牌建设赋能增效
  • 淮南做网站网站做后台
  • iview做的网站xampp wordpress 手机访问
  • 网络销售型网站有哪些网络科技有限公司排名
  • 常州做的网站的公司哪家好织梦网站模版下载
  • 国际站seo优化是什么意思wordpress缩略图特效
  • 数据库网站建设多少钱长沙网站优化方案
  • 网站宣传的作用个人公司网站建设
  • 如何仿别人网站的莫板高端建设响应式网站
  • 青岛网站建设邓巴迪佛山最好的网站建设公司
  • 查询网站收录网站微信支付申请流程
  • 蛋糕网站案例珠海舒讯网站建设
  • 齐齐哈尔铁峰建设局网站济南装修公司排名前十强
  • 上海自助建站工具wordpress菜单显示选项打不开
  • php网站后台开发教程中国建设传媒网
  • 如何建设诗词网站太平洋手机官网
  • 徐州铜山区建设局网站深圳企业网络推广运营技巧
  • 网页设计与网站建设课件内容营销方案
  • 济南pc网站建设公司网站建设京icp备
  • 免费的网站制作平台商务贸易网站建设
  • 网站建设成本分析石家庄seo关键词
  • 哪里租服务器做网站跨境o2o网站建设方案
  • 西电信息化建设处网站浙江省网站建设公司排名
  • 电影网站制作模版邯郸建移动网站费用
  • 做企业网站建设挣钱吗佛山网站设计平台
  • 装修的网站wordpress wdpx
  • 网站建设与网页制作招聘wordpress woocommerce 插件