首页 > 数据库 >自娱自乐,sqlite3 数据库查看脚本

自娱自乐,sqlite3 数据库查看脚本

时间:2024-08-01 18:05:50浏览次数:7  
标签:自娱自乐 name 数据库 db echo MODE OUTPUT sqlite3 table

  1. 创建数据库
#!/bin/bash

sqlite3 example.db <<EOF
-- 创建表
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT UNIQUE NOT NULL,
    age INTEGER
);

CREATE TABLE orders (
    order_id INTEGER PRIMARY KEY,
    user_id INTEGER,
    product TEXT NOT NULL,
    amount INTEGER,
    FOREIGN KEY(user_id) REFERENCES users(id)
);

-- 插入一些示例数据
INSERT INTO users (name, email, age) VALUES ('Alice', '[email protected]', 30);
INSERT INTO users (name, email, age) VALUES ('Bob', '[email protected]', 25);
INSERT INTO users (name, email, age) VALUES ('Charlie', '[email protected]', 35);

INSERT INTO orders (user_id, product, amount) VALUES (1, 'Laptop', 1200);
INSERT INTO orders (user_id, product, amount) VALUES (2, 'Smartphone', 800);
INSERT INTO orders (user_id, product, amount) VALUES (3, 'Tablet', 300);
INSERT INTO orders (user_id, product, amount) VALUES (1, 'Monitor', 200);

-- 查询数据
SELECT * FROM users;
SELECT * FROM orders;
EOF

  1. sqlite3 数据库脚本

sqlite3_beautify_show.sh

#!/bin/bash
# sqlite3
db_name=$1

OUTPUT_MODE="column"  # 默认输出模式

# 定义颜色
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
MAGENTA='\033[35m'
CYAN='\033[36m'
RESET='\033[0m'


function color_echo() 
{
    color_str=`echo $1 | tr '[:upper:]' '[:lower:]'`
    msg=$2

    case "$color_str" in
        red)
            echo -e "${RED}${msg}${RESET}"
            ;;
        green)
            echo -e "${GREEN}${msg}${RESET}"
            ;;
        yellow)
            echo -e "${YELLOW}${msg}${RESET}"
            ;;
        blue)
            echo -e "${BLUE}${msg}${RESET}"
            ;;
        magenta)
            echo -e "${MAGENTA}${msg}${RESET}"
            ;;
        cyan)
            echo -e "${CYAN}${msg}${RESET}"
            ;;
        *)
            echo -e "${msg}"
            ;;
    esac
}


function Usage()
{
    color_echo normal "Usage:${0} [db_path]"
    exit 0
}

if [[ ${db_name} == "" ]];then
    Usage
fi

if [[ ! -e ${db_name} ]];then
    color_echo red "db:${db_name} not found"
    Usage
else
    clear
    color_echo green "find db:${db_name}"
fi

# 延时回到main
function screen_pause()
{
    # echo -e "\npress any key to return"
    read -e OPERATION
}

# 展示表名
function show_table_names() 
{
    color_echo green "Tables in the database $DATABASE:"
    echo -e ".tables\n.exit\n"|sqlite3 tms.db |tr ' ' '\n'|awk '{print $1}'|column
    screen_pause
}


# 展示表结构
function show_table_detail()
{
    echo "Input a table_name:"
    read -e table_name
    color_echo green "\n------------------ TABLE_INFO:${table_name} ------------------"
    echo -e ".mode ${OUTPUT_MODE}\n pragma table_info(${table_name});\n.exit\n"|sqlite3 tms.db
    screen_pause
}

# 展示所有表
function show_all_tables_detail()
{
    color_echo green "\n------------------ DB INFO:${db_name} ------------------"
    tables=`sqlite3 ${db_name} ".tables"`
    for table_name in $tables; do
         color_echo green "TABLE:${table_name}"
         echo -e ".mode ${OUTPUT_MODE}\n pragma table_info($table_name);\n.exit\n"|sqlite3 ${db_name}
    done
    screen_pause
}

# 展示表中的数据
function show_table_data()
{
    echo "Input a table_name:"
    read -e table_name
    color_echo green "\n ------ TABLE_DATA:${table_name} ------ "
    echo -e ".mode ${OUTPUT_MODE}\nselect * from ${table_name};\n.exit\n"|sqlite3 ${db_name}
    screen_pause
}

# 选择 sqlite3 输出格式
function choose_mode() {
    # ascii box column csv html insert json line list markdown quote table tabs tcl
    echo -e "------ MODE LIST ------"
    echo "1. column"
    echo "2. box"
    echo "3. csv"
    echo "4. html"
    echo "5. insert"
    echo "6. line"
    echo "7. list"
    echo "8. tabs"
    echo "9. json"
    echo -e "----------------------"
    echo "Choose a mode:"
    read -e MODE_CHOICE
    case $MODE_CHOICE in
        1|column) OUTPUT_MODE="column";;
        2|box) OUTPUT_MODE="box";;
        3|csv) OUTPUT_MODE="csv";;
        4|html) OUTPUT_MODE="html";;
        5|insert) OUTPUT_MODE="insert";;
        6|line) OUTPUT_MODE="line";;
        7|list) OUTPUT_MODE="list";;
        8|tabs) OUTPUT_MODE="tabs";;
        9|json) OUTPUT_MODE="json";;
        *) color_echo red "Invalid choice";;
    esac
    echo "Output mode set to $OUTPUT_MODE"
    screen_pause
}


# 主程序
function main()
{
    while true; do
        clear
        echo -e "\n------ OPTIONS ------"
        echo "1. show_table_names"
        echo "2. show_table_detail"
        echo "3. show_all_tables_detail"
        echo "4. show_table_data"
        echo "5. choose_mode"
        echo "6. exit"
        echo -e "---------------------"
        color_echo green "DB: ${db_name}, MODE_NOW: ${OUTPUT_MODE}"
        echo "Choose an option:"
        read -e OPTION
        case $OPTION in
            1) show_table_names;;
            2) show_table_detail;;
            3) show_all_tables_detail;;
            4) show_table_data;;
            5) choose_mode;;
            6|exit|quit) exit;;
            *) color_echo red "Invalid choice: ${OPTION}";;
        esac
    done
}

main

标签:自娱自乐,name,数据库,db,echo,MODE,OUTPUT,sqlite3,table
From: https://www.cnblogs.com/brian-sun/p/18337218

相关文章

  • ThinkPHP6支持金仓数据库(Kingbase)解决无法使用模型查询问题
    参考了很多前人的文章,最后只支持Db::query原生查询,不支持thinkphp数据模型方法,这在实际项目中是很难接受的,特分享出解决方案。先按照流程配置如下:1.准备工作首先确认PHP支持金仓数据库的扩展,可以去金仓官网下载,安装配置(详细配置略过……)。使用php-m命令检查,显示有pdo_kdb......
  • 5分钟掌握软件测试必会mysql数据库知识(数据类型和数据约束
    mysql常用数据类型mysql的常用数据类型,主要有四种,需要我们重点掌握。1整型int整型分成两类,一类是有符号的,就是负数,一类是无符号的,就是正整数。很多时候我们需要的就是无符号的。比如年龄。2小数decimal小数的设置需要我们特别去了解一下。例如:decimal(4,2)这是表示......
  • JSP学生宿舍管理系统599o3(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
    系统程序文件列表用户功能:宿管,学生,班级,宿舍楼宇,宿舍分配,来访登记开题报告内容JSP学生宿舍管理系统开题报告一、选题背景与意义1.选题背景随着我国经济的飞速发展和科学技术的全面进步,以计算机技术、通信技术和数据库技术为基础的信息系统正处于蓬勃发展的黄金时......
  • JSP学生宿舍管理系统66a58(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
    系统程序文件列表项目功能:学生,公寓信息,公寓类型,寝室类型,寝室信息,卫生检查,住宿信息,充值信息,违纪信息,学生账户开题报告内容JSP学生宿舍管理系统开题报告一、引言1.1研究背景随着高校招生规模的不断扩大,学生宿舍管理日益成为高校后勤工作的重要组成部分。传统的......
  • JSP学生宿舍管理系统24fu4(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
    系统程序文件列表项目功能:学生,宿舍信息,卫生检查,电费信息,报修申请,换寝申请,寄存申请,留言信息,检修信息,检修评价,公告信息开题报告内容JSP学生宿舍管理系统 开题报告一、引言1.1研究背景随着高校教育事业的快速发展,学生宿舍作为学生在校期间的重要生活空间,其管......
  • JSP学生宿舍管理系统2z933(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
    系统程序文件列表项目功能:班级,学生,维修人员,宿舍公告,宿舍信息,宿舍安排,报修评价,报修处理,报修信息,在线咨询开题报告内容JSP学生宿舍管理系统 开题报告一、引言1.1研究背景随着高校招生规模的不断扩大,学生宿舍管理面临着诸多挑战,如宿舍分配、日常管理、安全监控......
  • 独“数”一帜 双证加冕!TeleDB亮相可信数据库发展大会
    近日,2024可信数据库发展大会在北京召开,主题为“自主、创新、引领”。大会重磅发布多项中国信通院及中国通信标准化协会大数据技术标准推进委员会(CCSATC601)在数据库领域最新研究和实践成果。一众数据库领域的专家、学者、创业者汇聚一堂,围绕金融、电信、能源与政务领域的数据库应......
  • ETL数据集成丨快速将MySQL数据迁移至Doris数据库
    随着大数据技术的迅速发展,越来越多的企业开始寻求高效、灵活的数据存储与分析解决方案。ApacheDoris(原名Palo)作为一款高性能的MPP(大规模并行处理)分析型数据库,凭借其在OLAP场景下的卓越表现,逐渐成为数据仓库和商业智能领域的优选方案之一。本文旨在详细介绍如何利用ETLCloud平台,......
  • 权限管理和数据库备份
    权限管理和数据库备份用户管理用户表:mysql.user本质:对这张表进行增删改查--创建用户CREATEUSER用户名IDENTIFIEDBY'密码'CREATEUSERkuangshenIDENTIFIEDBY'123456'--修改密码--当前用户SETPASSWORD=PASSWORD('123456')--指定用户SETPASSWORDFOR......
  • 数据库的归约,三大范式(规范数据库设计)
    数据库的归约,三大范式(规范数据库设计)为什么要设计糟糕的数据库设计:数据冗余,浪费空间数据库插入和删除都会麻烦、异常【屏蔽使用物理外键】程序性能差良好的数据库设计:节省内存空间保证数据库的完整性方便我们开发软件开发中,关于数据库的设计分析需求:分析业务和需......