• 命令行客户端MySQL的使用(1)——Python


    1. 登录和登出数据库

    登录数据库:

    mysql -uroot -p

    说明:

    • -u 后面是登录的用户名
    • -p 后面是登录密码, 如果不填写, 回车之后会提示输入密码

    退出登录:

    quit 和 exit
    或ctrl+d

    登录成功后,输入如下命令查看效果:

    查看版本:select version();
    显示当前时间:select now();

    2. 数据库操作的SQL语句

    查看所有数据库 创建数据库 使用数据库 查看当前使用的数据库 删除数据库-慎重
    show databases;
    create database 数据库名 charset=utf8;
    例:
    create database python charset=utf8;
    use 数据库名;
    select database();
    drop database 数据库名;
    例:
    drop database python;

    3. 表结构操作的SQL语句

    查看当前数据库中所有表 创建表 查看创表SQL语句   查看创库SQL语句  删除表
    show tables;

    auto_increment表示自动增长

    CREATE TABLE table_name(
        column1 datatype contrai,
        column2 datatype,
        column3 datatype,
        .....
        columnN datatype,
        PRIMARY KEY(one or more columns)
    );

    示例:

    创建班级表:

    create table classes(
        id int unsigned auto_increment primary key not null,
        name varchar(10)
    );

    创建学生表:

    create table students(
        id int unsigned primary key auto_increment not null,
        name varchar(20) default '',
        age tinyint unsigned default 0,
        height decimal(5,2),
        gender enum('','','人妖','保密'),
        cls_id int unsigned default 0
    )
     
    show create table 表名;
    例:
    show create table students;
     
    show create database 数据库名;
    例:
    show create database mytest;
    drop table 表名;
    例:
    drop table students;
     
    修改表-添加字段 修改表-修改字段类型 修改表-修改字段名和字段类型 修改表-删除字段
    alter table 表名 add 列名 类型 约束;
    例:
    alter table students add birthday datetime;
    alter table 表名 modify 列名 类型 约束;
    例:
    alter table students modify birthday date not null;

    modify: 只能修改字段类型或者约束,不能修改字段名

    alter table 表名 change 原名 新名 类型及约束;
    例:
    alter table students change birthday birth datetime not null;

    change: 既能对字段重命名又能修改字段类型还能修改约束

    alter table 表名 drop 列名;
    例:
    alter table students drop birthday;

    4. 表数据操作的SQL语句

    增删改查(curd)

    curd的解释: 代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)

    查询数据 添加数据  修改数据  删除数据
    -- 1. 查询所有列
    select * from 表名;
    例:
    select * from students;
    -- 2. 查询指定列、可以使用as为列或表指定别名
    select 列1,列2,... from 表名;
    例:
    select id,name from students;
    -- 1. 全列插入:值的顺序与表结构字段的顺序完全一一对应
    insert into 表名 values (...)
    例:
    insert into students values(0, 'xx', default, default, '');
    -- 2. 部分列插入:值的顺序与给出的列顺序对应
    insert into 表名 (列1,...) values(值1,...)
    例:
    insert into students(name, age) values('王二小', 15);
    -- 3. 全列多行插入
    insert into 表名 values(...),(...)...;
    例:
    insert into students values(0, '张飞', 55, 1.75, ''),(0, '关羽', 58, 1.85, '');
    -- 4. 部分列多行插入
    insert into 表名(列1,...) values(值1,...),(值1,...)...;
    例:
    insert into students(name, height) values('刘备', 1.75),('曹操', 1.6);

    格式:INSERT [INTO] tb_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),

    说明:

    • 主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null或者default)
    • 在全列插入时,如果字段列有默认值可以使用 default 来占位,插入后的数据就是之前设置的默认值
     
    update 表名 set 列1=值1,列2=值2... where 条件
    例:
    update students set age = 18, gender = '' where id = 6;

    格式: UPDATE tbname SET col1={expr1|DEFAULT} [,col2={expr2|default}]...[where 条件判断]

     
    delete from 表名 where 条件
    例:
    delete from students where id=5;

    格式:DELETE FROM tbname [where 条件判断]

    问题:

    上面的操作称之为物理删除,一旦删除就不容易恢复,我们可以使用逻辑删除的方式来解决这个问题。

    -- 添加删除表示字段,0表示未删除 1表示删除
    alter table students add isdelete bit default 0;
    -- 逻辑删除数据
    update students set isdelete = 1 where id = 8;

    说明:

    • 逻辑删除,本质就是修改操作

    5. 数据备份&恢复 

    备份

     恢复

    运行mysqldump命令

    mysqldump –uroot –p 数据库名 > python.sql;
    
    # 按提示输入mysql的密码
    • 连接mysql,创建新的数据库
    • 退出连接,执行如下命令
     
    mysql -uroot –p 新数据库名 < python.sql
    
    # 根据提示输入mysql密码

    6. 小结

    • 登录数据库: mysql -uroot -p
    • 退出数据库: quit 或者 exit 或者 ctr + d
    • 创建数据库: create database 数据库名 charset=utf8;
    • 使用数据库: use 数据库名;
    • 删除数据库: drop database 数据库名;
    • 创建表: create table 表名(字段名 字段类型 约束, ...);
    • 修改表-添加字段: alter table 表名 add 字段名 字段类型 约束
    • 修改表-修改字段类型: alter table 表名 modify 字段名 字段类型 约束
    • 修改表-修改字段名和字段类型: alter table 表名 change 原字段名 新字段名 字段类型 约束
    • 修改表-删除字段: alter table 表名 drop 字段名;
    • 删除表: drop table 表名;
    • 查询数据: select * from 表名; 或者 select 列1,列2,... from 表名;
    • 插入数据: insert into 表名 values (...) 或者 insert into 表名 (列1,...) values(值1,...)
    • 修改数据: update 表名 set 列1=值1,列2=值2... where 条件
    • 删除数据: delete from 表名 where 条件
  • 相关阅读:
    vite启用host代理,自动无限刷新问题
    机器人语音交互
    让or使用索引
    leetcode 77. Combinations 组合(中等)
    leetcode 257. Binary Tree Paths 二叉树的所有路径(简单)
    leetcode 934. Shortest Bridge 最短的桥(中等)
    为什么 SQL 语句使用了索引,但却还是慢查询?
    leetcode 47. Permutations II 全排列 II(中等)
    leetcode 79. Word Search 单词搜索
    leetcode 126. Word Ladder II 单词接龙 II(困难)
  • 原文地址:https://www.cnblogs.com/zeon/p/13584545.html
Copyright © 2020-2023  润新知