sql
未读Mysql 存储对象
视图
介绍
是一种虚拟存在的表,视图中的数据在数据库中不存在。行和列数据来自自定义视图查询使用的表,视图不保存数据,只是保存了sql的逻辑。
1create [or replace] view 视图名称{(列表名称)} as select语句 []
演示:
1create or replace view stu_v_1 as select id,name from student where id <= 10;
创建了一个视图
查询视图:
12show create view 视图名称select from 视图名称....是一个虚拟存在的表,可以像表一样进行操作。
修改视图:
12修改和创建视图的语法是一样的alter view 视图名称【(视图列表)】 as select语句;
删除视图:
1drop view [if exists] 视图名称 [视图名称];
视图操作和检查选项
在select语句后面加上with casecaded check option加上一个检查选项.就可以避免后来又插入了一些数据,,一些插入到数据不属于se ...
Sql优化
插入数据
批量插入:
1insert into tb_name values(1,'a'),(2,'b'),(3,'c');
不要超过1k条,多的进入sql语句查询
手动提交:
123456start transaction;insert into tb_name values(1,'a'),(2,'b'),(3,'c');insert into tb_name values(1,'a'),(2,'b'),(3,'c');insert into tb_name values(1,'a'),(2,'b'),(3,'c');insert into tb_name values(1,'a'),(2,'b'),(3,'c');commit;
所有的事务完成后,再提交数据
主键顺序插入:
...
java
未读java编程练习
基础题
1.leetcode 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数
是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例 1:
12输入:x = 121输出:true
示例 2:
123输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
123输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。
提示:
-231 <= x <= 231 - 1
题解:
12345678910111213class Solution { public boolean isPalindrome(int x) { if(x<0) return false; int t = x; int y = 0; while(t>0){ ...
web
未读CSS BASIC2
_layout布局
文档流
网页是一个多层的结构,一层加一层,层层叠叠,通过css来设置每一层的样式,作为用户只能看到最顶上的一层
最底下的一层成为文档流,我们所创建的元素默认都是在文档流里进行排列,元素主要有两个状态,在文档流中和脱离文档流两个状态
文档流的特点:
块元素在页面中独占一行,默认宽度是父元素的全部,会把父元素盛满,默认高度是被内容撑开,自上而下垂直排列
行内元素不会独占一行,只占自身的大小,自左向右水平排列。如何一行中不足以容纳,会换到第二行继续自左向右排列,行内元素的默认宽度和高度都是被内容撑开
盒子模型
首先确定元素的形状和大小,css将所有元素都设置成了一个矩形的盒子
每一个盒子都由一下部分组成:
内容区(content)
边块(border)
内边距(padding)
外边距(margin)
内容区:元素中的所有子元素和内容文本都在内容区中排列
width和height设置高度和宽度
设置边块至少下面三个元素
123456789 .box1{border-width: 10px; border-color ...
MySQL 索引
介绍
是帮助mysql高效的获取数据的数据结构(有序的)来指向原始数据,可以在这些数据结构上实现高级查找算法。
没有索引:
是按照上下顺序来直接查找的,会匹配整张表—叫做全表扫描
二叉树演示,会根据指向找到这条记录。,有索引的情况下搜索效率比较高
优缺点:提高排序效率,提高检索效率
会占用磁盘空间,但降低了表更新的速度
结构
mysql的索引是在引擎层实现的
b+tree索引 最常见的 都支持
hash索引 精确匹配 memory支持
r-tree索引 空间位置 myisam支持
full-text索引 除了memory不支持其他都支持
b-tree多路平衡查找树
几阶b-tree就最多有几个节点,会有n+1个指针
构建b-tree
满了中间元素向上分裂每一个key都会对应
构建b+tree
在b+树中所有的元素都会在叶子节点,叶子节点会形成一个单向链表,非叶子节点只会起到索引的作用
mysql的所有,会形成了一个带有顺序的指针b+tree
所有的数据都会在叶子节点,用来存储数据,存储在页中
hash索引
先算出每一行的hash值,将键值换成新的hash值,映射到对应 ...
sql
未读存储引擎
mysql的体系结构
连接层:连接的问题,授权认证的功能等
服务层:最主要的功能级别都是在这进行的
引擎层:存储的引擎,可插拔式的引擎
存储层:存储的,系统文件和日志在这一层
存储引擎
默认的存储引擎
1SELECT CREATE TABLE EMP;
RETURN:
1可以看到默认的存储引擎 Inndb
创建表的时候指定存储引擎
123456CREATE TABLE NAME(....)ENGINE = INNODB;
查看当前数据库支持的存储引擎
1show engines;
myisam早期版本的所使用的存储引擎
存储引擎介绍
innodb
dml操作遵循acid模型,支持事务
行级锁
支持外键
磁盘文件:
xxx.idb这是一个表空间文件,存放了表结构数据和索引的文件
参数:innodb_file_per_table,每张表都对应一个表空间文件
这个文件是二进制的
可以使用指令打开
1ibd2sdi xxxx.idb
打开文件里的数据
逻辑存储结构:
表空间
段
区
页
行
—进行sql优化使用
myisam
不支持事务
支持锁表,不支持行锁
...
事务
简介:
是一系列操作的集合,是一个不可分割的工作单位
要么同时成功要么同时失败
开始事务
错误了就回滚事务
然后提交事务
实例银行:
查询账户余额:
1SELECT & FROM ACCOUNT WHERE NAME = "A";
将账户余额-1000
1UPDATE ACCOUNT SET MONEY = MONEY -1000 WHERE NAME = 'A';
别人账户余额+1000
1UPDATE ACCOUNT SET MONEY = MONEY + 1000 WHERE NAME = 'B';
事务控制
12SELECT @@AUTOCOMMIT;SET @@AUTOCOMIIT = 0;
设置为手动提交
1commit;
提交
1rollback;
回滚事务
开启事务
1START TRANSACTION 或 BEGIN;
事务的四大特性
原子性:事务是不可分割的最小操作元,要么全部成功,要么全部失败
一致性:事务完成时,必须所有数据必须保持一致状态
隔离性:数据库提供隔离机制,事务不受外部并发 ...
Mysql练习
基础题
1.
从INS_SPR中选择SPR_FNM1 、SPR_SURN,其中SPR_CODE = ‘50200100’
1SELECT SPR_FNM1 , SPR_SURN FROM INS_SPR WHERE SPR_CODE = 50200100;
return:
SPR_FNM1
SPR_SURN
Tom
Cotton
2.
显示学生编号为 50200100 的学生在 2016/7 TR1 学期学习的模块代码和模块名称
12345SELECT CAM_SMO.MOD_CODE,INS_MOD.MOD_NAMEFROM INS_MOD JOIN CAM_SMO ON (INS_MOD.MOD_CODE=CAM_SMO.MOD_CODE)WHERE CAM_SMO.SPR_CODE = '50200100'AND CAM_SMO.AYR_CODE = '2016/7'AND CAM_SMO.PSL_CODE = 'TR1';
修改代码
模组名称
CSN08101
系统和服 ...
sql
未读多表查询
关系:
一对多
例如:部门和员工之间的关系
实现:在多的一方建立外键,指向一的一方
多对多
例如:学生和课程的关系
实现:建立第三张中间表,至少包含两个外键,分别关联两方
一对一
例如:用户与用户详情之间的关系
实现:在任意的一方加入外键,关联另一方的主键,并且设置外键是唯一的
1234567891011121314151617181920CREATE TABLE IF NOT EXISTS tb_user ( id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户ID', name VARCHAR(10) COMMENT '姓名', age INT COMMENT '年龄', ge ...
web
未读CSS
网页分为三个部分:
结构:html
表现:css
行为:js
书写样式
内联样式
1234567891011121314<!DOCTYPE html><html lang="en`"> <head> <meta charset="utf-8"> <meta name="test" content="width-device-width"> <meta http-equiv="x-ua-compatible" content="ie-edge"> <time datetime="gogog"></time> </head> <body> <p style="color: red; font-size: 60px;" ...
web
未读HTML
基础结构
标记:标记是什么东西
1<标签名>aaaa</标签名>
一对标签
aaaa标签的内容
标签有开始和结束,每一个标签都有自己的作用
123456<h1>题目</h1>#一级标题<h2>作者</h2>#二级标签<p>aaaaaa</p>#内容<p>aaaaaa</p><p>aaaaa</p>
123456789101112<html> <head>#头部,网页中的源数据,给浏览器看,搜索引擎看的,网页中不会显示 <title>诗</title> </head> <body>#网页的主题,可见的内容 <h1>题目</h1>#一级标题 <h2>作者</h2>#二级标签 <p>aaaaaa</p>#内容 <p>aaaaaa</p> <p>aaaa ...
MYSQL函数&&约束
函数
函数是指一段可以直接被另一程序调用的程序或者代码
字符串函数
CONCAT(S1,S2…)将字符串拼接,S1,S2…拼接成一个字符串
LOWER(STR) 将STR全部转变为小写
UPPER(STR) 将STR全部转变为大写
LPAD(STR,N,PAD) 左填充,用字符串PAD对STR的左边进行填充,达到n个字符串的长度
RPAD(STR,N,PAD) 右填充,用字符串PAD对STR的右边进行填充,达到n个字符串的长度
TRIM(STR) 去掉字符串头部和尾部的空格
SUBSTRING(STR,START,LEN) 返回从字符串str从start位置起的len个长度的字符串
12SELECT CONCAT('HELLO','MYSQL');#HELLO MYSQL
12SELECT LPAD('01',5,'-'); #---01SELECT RPAD('01',5,'-'); #01---
12SELECT TIRM ...