赞
踩
数据库管理系统:DataBaseManagement System(DBMS),操纵和管理数据库的大型软件
SQL:Structured Query Language,操作关系向数据库的编程语言,定义了一套操作关系型数据库统一标准(可以操作所有数据库)
本机数据库:
企业级开发使用方式
开发的步骤:前端功能-后端
DDL
create database xxx;建库
drop database xx;删除数据库
show databases;查询数据库
use xxx;切换、使用数据库
select database();查看当前数据库
mysql>exit;结尾退出
上述语法在=中database可以替换成schema
//查看
show tables;查询指定表
show create table 表名;
//修改表结构
删除表数据之前可以先copy保留历史数据放在drop table语句的后面
表操作:图形化界面添加用户,然后绿色的update按钮和更新
【约束】
generate表示自动整张,update后自动从1生成
age tinyint unsigned
score double(4,1)
phone char(11) username varchar(10)
日期时间类型birthday date update_time datetime
Data Manipulation Language(数据操作语言),用来对数据库中标的数据记录进行增删改操作
需求:包含文字,时间范围查询,升降排序,数据量大时分页显示
语法:console是新建Query Console
select * from 表名 where 条件;
#条件查询 select * from tb2_user where age!=17; select * from tb2_user where age in (17,18); #模糊查询用下划线 select * from tb2_user where name like '___'; #%表示没有字符数限制,查找姓A的用户 select * from tb2_user where name like 'A%';
select 聚合函数(字段列表) from 表名;
第一个字段相同时,才到第二个字段
#分页查询 limit起始索引,查询记录数 -- 第一页,每页展示两条记录 select * from tb2_user limit 0,2; -- 起始索引的计算公式=(页码-1)*每页展示数
后端拿到数据返回给前端,前端实现可视化
Apache Echart:一个基于JavaScript的开源可视化图表库 找到对应代码复制粘贴?
#函数 -- if(表达式,tvalue,fvalue):当表达式为true时,取值为tvalue;当表达式为false时,取值为fvalue; -- (case expr wehn value1 then result1 when value2 then value2then rensult2...] end) 别名
蓝色钥匙
create table tb2_user_card ( id int unsigned primary key auto_increment comment 'ID', id_card char(18) not null comment '身份证号', user_id int unsigned not null unique comment '用户id', constraint fk_user_id foreign key (user_id) references tb2_user(dept_id) ); insert into tb2_user_card values (1,'789',1),(2,'456',2);
需要建立中间表
笛卡尔积:两个集合的所有集合,即下图a表和b表的所有组合情况
增加条件消除无用的笛卡尔积
6.1内连接查询
6.2外连接查询
6.3子查询
- #事务控制操作:防止其一事务运行失败导致集合事务数据不一致
- -- 1.开启事务:start transaction ;/begin ;
- start transaction ;
- -- 2.事务集合
- delete from tb2_user where dept_id=2;
- delete from tb_dept where id=2;
- -- 3.提交事务
- commit ;
- -- 4.回滚事务
- rollback ;
- #索引:帮组数据库高效获取数据的数据结构;无索引是全局扫描,索引是二叉树查询更快;
- #索引会占用存储空间(很小),提高查询效率但也降低了增删改的效率(查询功能更重要)
- #创建索引:当表的数据量很大,查询耗时很长:在Output里看时长
- create index idx_user_id on tb2_user(id);
- -- 创建索引后再查看耗时
- select * from tb2_user where id='2';
- -- 查询节点
- show index from tb2_user;
- -- 删除索引
- drop index idx_user_id on tb2_user;
二叉搜索树,很容易偏向一边,如果保存数据降序、升序会形成单项列表,搜索性能大打折扣;此时应该寻找平衡二叉树或者红黑树来解决,但MySQL并没有使用以上:因为大数据量下,层级深检索速度慢。
B+Tree(多路平衡搜索树)
特点1.一个节点可以存储n个key 和n个指针,一个页占16kb ;
特点2.所有数据都存储在叶子节点,非叶子节点仅用于索引数据,;
特点3.叶子节点形成一串双向链表,便于数据的排序和区间范围查询,试着查询53,29;这样树比较矮
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。