
SQL
文章平均质量分 66
Claroja
这个作者很懒,什么都没留下…
展开
-
python FastDFS
docker run -d --network=host --name tracker -v /root:/var/root delron/fastdfs trackerdocker run -d --network=host --name storage -e TRACKER_SERVER=172.18.0.1:22122 -v /root:/var/root -e GROUP_NAME=group1 delron/fastdfs storage原创 2020-08-12 23:53:45 · 163 阅读 · 0 评论 -
数据库设计
主键:唯一编号,不能使用业务数据(比如手机号,虽然唯一,但是可能会更改)id(PK)user_id(FK)如果没有自己设置主键,innodb会自动设置rowid在表中建立(is_enable)等字段,做逻辑删除,不要做物理删除遵循范式设计 又要反范式设计(用空间换时间)int(10)括号内是显示长度,如果不够可以使用zerofill填充char(11) 定长,如果不够11则自动补全,比较效率高varchar(11)不定长,如果不够不占用空间,比较效率低是否为空默认值注释COMMENT原创 2020-08-12 23:53:31 · 282 阅读 · 0 评论 -
mysql 分组group
mysql> SELECT year, SUM(profit) AS profit FROM sales GROUP BY year;+------+--------+| year | profit |+------+--------+| 2000 | 4525 || 2001 | 3010 |+------+--------+原创 2020-08-12 20:28:50 · 5513 阅读 · 0 评论 -
mysql 事务
DML(insert、update、delete)操作是原子单位,事务是一系列的DML。开启事务:Start Transaction事务结束:End Transaction提交事务:Commit Transaction回滚事务:Rollback Transactioninnodb引擎默认是开启事务的,在我们输入一条sql语句时,默认自动开启事务和提交事务查看是否开启事务,默认是开启,onshow variables like autocommit;``关闭自动事务```sqlset a原创 2020-08-12 20:28:36 · 236 阅读 · 0 评论 -
mysql 事务隔离级别
1.事务的并发问题1)脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据2)不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。3)幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。2.事务隔离级别事务隔离级别脏读原创 2020-08-12 20:28:19 · 233 阅读 · 0 评论 -
mysql 分库分表
分库分表的顺序应该是先垂直分,后水平分。1.垂直拆分1.垂直分表也就是“大表拆小表”,基于列字段进行的。一般是表中的字段较多,将不常用的, 数据较大,长度较长(比如text类型字段)的拆分到“扩展表“。2.垂直分库垂直分库针对的是一个系统中的不同业务进行拆分,比如用户User一个库,商品Producet一个库,订单Order一个库。2.水平拆分1.水平分表针对数据量巨大的单张表(比如订单表),按照某种规则(RANGE,HASH取模等),切分到多张表里面去。 但是这些表还是在同一个库中,所以库原创 2020-08-12 20:28:02 · 313 阅读 · 0 评论 -
mysql 主从复制
1.主从复制1)master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events),本质就是sql语句;2)slave将master的binary log events拷贝到它的中继日志(relay log);3)slave重做中继日志中的事件,将改变反映它自己的数据。2.对事务的影响对于写操作包括开启事务和提交或回滚要在一台机器上执行,分散到多台master执行后数据库原生的单机事务就失效了。对于事务中同时包含读写操作,与事务隔离级原创 2020-08-12 20:27:42 · 267 阅读 · 0 评论 -
mysql 聚合函数
mysql> SELECT year, SUM(profit) AS profit FROM sales GROUP BY year;+------+--------+| year | profit |+------+--------+| 2000 | 4525 || 2001 | 3010 |+------+--------+2.聚合方法上例中的sum既是聚合方法,要配合group来使用NameDescription...原创 2020-08-11 20:24:10 · 506 阅读 · 0 评论 -
mysql 数据库操作
1.创建数据库:CREATE DATABASE menagerie;2.进入数据库:USE menagerie # 进入数据库3.直连数据库:mysql -h host -u user -p menagerie # 连接到指定数据库,不然每次都要使用use来进入原创 2020-08-11 20:23:35 · 421 阅读 · 0 评论 -
mysql 表操作
1.查看所有表SHOW TABLES;2.查看表DESCRIBE table_name;3.创建表CREATE TABLE table_nameCREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `i1` int(3) unsigned zerofill DEFAULT NULL, `i2` int(6) unsigned zerofill DEFAULT NULL, PRIMARY原创 2020-08-11 20:23:22 · 278 阅读 · 0 评论 -
mysql 增删改
1.增加一行INSERT INTO 表名称 VALUES (值1, 值2,…)2.增加一行,并指明字段INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL); # 插入一行...原创 2020-08-11 20:23:10 · 262 阅读 · 0 评论 -
mysql 连接查询
1.inner joinSELECT a.*,b.*FROM table_a aINNER JOIN table_b bON a.id=b.id2.left joinSELECT a.*,b.*FROM table_a aLEFT JOIN table_b bON a.id=b.id3.right joinSELECT a.*,b.*FROM table_a aRIGHT JOIN table_b bON a.id=b.id4.左内联SELECT a.*,b.*FRO原创 2020-08-11 20:22:57 · 259 阅读 · 0 评论 -
备份&还原
1.likeSELECT * FROM pet WHERE name LIKE ‘b%’; 以b开头的名字SELECT * FROM pet WHERE name LIKE ‘%fy’; 以fy结尾的SELECT * FROM pet WHERE name LIKE ‘%w%’; 包含w的SELECT * FROM pet WHERE name LIKE ‘_____’; 姓名长度为5的 一个_代表一个字符2.REGEXP_LIKE()SELECT * FROM pet WHERE REGEXP原创 2020-08-11 20:22:40 · 278 阅读 · 0 评论 -
mysql limit&orderby
1.limitSELECT name, birth FROM pet limit 2,3;2.orderbySELECT name, birth FROM pet ORDER BY birth DESC;原创 2020-08-11 20:22:18 · 282 阅读 · 0 评论 -
sqlalchemy 过滤
1.逻辑判断1)逻辑或from sqlalchemy import or_User.query.filter(or_(User.mobile=='13911111111', User.name.endswith('号'))).all()2)逻辑与from sqlalchemy import and_User.query.filter(and_(User.name != '13911111111', User.mobile.startswith('185'))).all()3)逻辑非fro原创 2020-08-11 20:22:00 · 331 阅读 · 0 评论 -
mysql 查询
SELECT * FROM table_nameSELECT 字段1,字段2 FROM table_name原创 2020-08-11 20:21:42 · 265 阅读 · 0 评论 -
mysql 索引
1.创建索引1).普通索引CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX indexName (username) );2).唯一索引CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE indexNam原创 2020-08-11 20:21:13 · 270 阅读 · 0 评论 -
Pandas Groupby Apply&Agg
import pandas as pddf = pd.DataFrame({ 'A' : ['男', '女', '男', '女','男', '女', '男', '男'], 'B' : ['优秀', '优秀', '及格', '差','及格', '及格', '优秀', '差'], 'C' : [15,14,15,12,13,14,15,16]})sorting分组后排序...原创 2019-11-14 21:22:02 · 206 阅读 · 0 评论 -
centos7 安装mysql 5.6.26
tar -xvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.taryum -y install autoconfrpm -e mariadb-libs-1:5.5.60-1.el7_5.x86_64 --nodepsyum install -y perl.x86_64rpm -ivh MySQL-server-5.6.26-1.linu...原创 2019-11-14 21:17:30 · 895 阅读 · 0 评论 -
centos7 安装mysql8
清空之前的安装# 卸载包rpm -qa | grep -i mysqlrpm -e –nodeps 包名# 卸载文件find / -name mysqlrm -rf /var/lib/mysql# 卸载配置文件/etc/my.cnf安装1.添加yum源https://dev.mysql.com/downloads/repo/yum/ 选择合适的rmp包,用来添加源sud...原创 2019-11-14 21:16:53 · 608 阅读 · 0 评论 -
psql sql语法
表名和列名,使用双引号"" ,SELECT "column_name" FROM public."table_name"字符串常量 使用单引号''参考文献:http://www.postgres.cn/docs/10/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS...原创 2019-11-14 21:15:01 · 408 阅读 · 0 评论 -
MySQL Control Flow Functions(控制流)
名称描述CASECase operatorIF()If/else constructIFNULL()Null if/else constructNULLIF()Return NULL if expr1 = expr2SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END; # if else语句 ...原创 2019-11-14 21:14:10 · 330 阅读 · 0 评论 -
MySQL String Functions and Operators(字符串处理)
NameDescription例子ASCII(str)返回字符ascii码SELECT ASCII('2'); # -> 50BIN(N)返回字符的二进制值SELECT BIN(12); # -> '1100'BIT_LENGTH()Return length of argument in bitsCHAR(N,... [USING ...原创 2019-11-14 21:13:42 · 507 阅读 · 0 评论 -
MySQL Mathematical Functions(数学方法)
NameDescription例子ABS(X)绝对值SELECT ABS(-32); # -> 32ACOS(X)反余弦SELECT ACOS(1); # -> 0ASIN(X)反正弦SELECT ASIN(0.2); # -> 0.20135792079033ATAN(X)反正切SELECT ATAN(2); # ->...原创 2019-11-14 21:13:19 · 308 阅读 · 0 评论 -
psql 高级特性
1.视图创建一个视图用来保存查询的中间结果,以后可以反复使用。CREATE VIEW myview AS SELECT city, temp_lo, temp_hi, prcp, date, location FROM weather, cities WHERE city = name;SELECT * FROM myview;2.外键约束一个...原创 2018-10-02 20:26:29 · 192 阅读 · 0 评论 -
psql 数据类型
1.数值类型名字存储尺寸描述范围smallint2字节小范围整数-32768 to +32767integer4字节整数的典型选择-2147483648 to +2147483647bigint8字节大范围整数-9223372036854775808 to +9223372036854775807decimal可变用户指定精度,精确...原创 2018-10-02 20:25:59 · 2036 阅读 · 0 评论 -
SQL数据表字段类型与属性总结(DDL)
1.SQL字段类型 类型 空间大小(字节) 实际大小 其他 tinyint(显示) 1 0-255 unsign、zerofill smallint(显示) 2 65535 unsign、zerofill int(显示) 4 40亿 unsign、zerofill float(M,D) 4 6精度 unsign、zerof原创 2016-12-20 11:04:41 · 1137 阅读 · 0 评论 -
psql 元命令
命令参数描述\a如果当前的表输出格式是非对齐的,则切换成对齐格式。如果不是非对齐格式,则设置成非对齐格式。\c[ dbname [ username ] [ host ] [ port ] ]切换数据库或者用户\cd[ directory ]把当前工作目录改为directory。如果不带参数,则切换到当前用户的主目录。要打印当前的工作目录,可以使用! ...原创 2018-10-02 20:27:03 · 980 阅读 · 0 评论 -
psql 客户端
psql是PostgreSQL 的交互式客户端工具。使用方法:psql [选项]… [数据库名称 [用户名称]]通用选项:-c,–command=命令 执行单一命令(SQL或内部指令)然后结束-d, --dbname=数据库名称 指定要连接的数据库 (默认:“Administrator”)-f, --file=文件名 从文件中执行命令然后退出-l, --l...原创 2018-10-02 20:27:37 · 1371 阅读 · 0 评论 -
数据库 分布式
参考文献:https://www.cnblogs.com/adeng/p/9012301.html原创 2019-06-04 21:00:36 · 132 阅读 · 0 评论 -
postgresql user表
在postgresql中,默认有一张user表用来存放postgresql的用户,当我们自己建立一个user表的时候,优先访问系统默认的user表SELECT * FROM user WHERE id = 1当我们想访问自己创建的user表的时候,需要加public前缀SELECT * FROM public.user WHERE id = 1...原创 2019-06-04 21:01:23 · 4054 阅读 · 1 评论 -
postgres 密码更改
1.停止postgres服务2.修改登录配置文件将ipv4和ipv6的“md5”改为“trust”,既将md5加密的密码改为不需要密码。3.重启服务4.修改密码5.停止服务,并将“trust”修改为“md5”...原创 2019-06-04 21:02:02 · 409 阅读 · 0 评论 -
psql 约束
1.约束1.检查约束CREATE TABLE products ( product_no integer, name text, price numeric CHECK (price > 0));2.非空约束CREATE TABLE products ( product_no integer NOT NULL, name text NOT ...原创 2018-10-02 20:25:18 · 401 阅读 · 0 评论 -
psql 基础操作
create database mydb;drop database mydb;原创 2018-10-02 20:24:44 · 338 阅读 · 0 评论 -
sqlalchemy Column Elements
| 方法 | 参数 | 返回 | 描述 || -- | -- | -- | -- || and_(*clauses) | 条件 | | 且,and_(User.name == “wang”,User.id ==1) || any_(expr) | | | || asc(c翻译 2018-01-15 14:22:25 · 348 阅读 · 0 评论 -
sqlalchemy session
sessionmaker()class sqlalchemy.orm.session.sessionmaker(bind=None, class_=class 'sqlalchemy.orm.session.Session'>, autoflush=True, autocommit=False, expire_on_commit=True, info=None, **kw)# glob原创 2018-01-15 13:19:17 · 1105 阅读 · 0 评论 -
sqlalchemy filter
方法 orm equals query.filter(User.name == ‘wang’) not equals query.filter(User.name != ‘wang’) LIKE query.filter(User.name.like(‘%ed%’)) IN query.filter(User.name.in_([‘ed’, ‘wendy’, ‘ja翻译 2018-01-15 13:28:10 · 1905 阅读 · 0 评论 -
sqlalchemy query
方法 参数 返回 描述 all() list 返回所有查询的对象,list列表里是查询的对象地址 count() 使用from sqlalchemy import func来代替 filter(*criterion) User.name==’wang’, User.id>3 first() 单个查翻译 2018-01-15 11:43:45 · 1749 阅读 · 0 评论 -
sqlalchemy 初始化数据库
初始化数据库 方法1from sqlalchemy import create_engine, MetaDataengine = create_engine('sqlite:///foo.db', echo=True)metadata = MetaData(engine)metadata.create_all()方法2from sqlalchemy import c原创 2018-01-12 10:33:30 · 3125 阅读 · 0 评论 -
SQLite
命令 描述 .databases 列出该数据库的路径 .dbinfo 该数据的详细信息 .exit 退出 .fullschema 查看所有表的详细信息 .help 查看帮助信息 .open 打开新的数据库 .quit 退出 .show 查看数据库的配置 .tables 查看所有的表原创 2018-01-12 10:56:14 · 340 阅读 · 0 评论