首页 > 数据库 >2.mysql-库表行管理

2.mysql-库表行管理

时间:2022-11-17 14:46:23浏览次数:46  
标签:execute 管理 列名 mysql cursor 表名 库表行 数据库 conn

1.数据库管理

1.1 SQL语句

1.1.1 查看当前所有的数据库

show databases;

 

 

 

1.1.2 创建数据库

create database 数据库名;
create databse 数据库名 default charset utf8  # 支持中文

8.0版本默认就是utf编码

 

 

 

1.1.3 删除数据库

drop database 数据库;

 

 

 

1.1.4 进入数据库

只有进入某一个数据库,才能对指定数据库里面的数据表或者数据行操作

use 数据库名

 

 

 

1.2 python操作

无论通过何种方式取链接mysql,本质上发送的指令是相同的,只是链接的方式和操作形式不同而已

要想通过python操作mysql,我们需要导入第三方模块

pip install pymysql

 

 

 

# encoding:utf-8
# author:kunmzhao
# email:[email protected]

import pymysql

# 1.连接数据库
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='root', charset='utf8')
cursor = conn.cursor()

# 2. 查看数据库
cursor.execute("show databases")
print(cursor.fetchall())

# 3.创建数据库
cursor.execute('create database test2 default charset utf8')
conn.commit()

cursor.execute("show databases")
print(cursor.fetchall())

# 4.删除数据库
cursor.execute('drop database test2')
conn.commit()

cursor.execute("show databases")
print(cursor.fetchall())

# 5.进入数据库
cursor.execute('use mysql')
cursor.execute('show tables;')
print(cursor.fetchall())

cursor.close()
conn.close()

 

2.数据表管理

2.1 SQL语句

在操作数据表的时候首先需要进入对应的数据库

use 数据库名;

2.1.1 查看当前所有的表

show tables;

 

 

 

2.1.2 删除表

drop table 表名;

 

 

 

2.1.3 清空表

delete from 表名;

 

 

 

2.1.4 创建表

创建表必须要指定表名,列名称,列类型

create table 表名(
    列名字 类型,
    列名字 类型,
    列名字 类型,
);

create table user(
    id int primary key, -- 主键(不允许为空且唯一)
    name varchar(16) not null,  -- 不能为空
    age int default 18  -- 默认值为18
 );
  • 主键:一张表一般都有一个主键,primary key指定

  • 是否为空:代表以后该数据是否可以为空,默认为允许为空,not null指定不可为空

  • 默认值:代表着以后不主动添加该字段数据,设置为默认值, default指定

常见的列类型

  • int[(m)][unsigned][zerofill]

    int             表示有符号,取值范围:-2147483648 ~ 2147483647
    int unsigned 表示无符号,取值范围:0 ~ 4294967295
    int(5)zerofill 仅用于显示,当不满足5位时,按照左边补0,例如:00002;满足时,正常显示。
  • tinyint[(m)] [unsigned] [zerofill]

    有符号,取值范围:-128 ~ 127.
    无符号,取值范围:0 ~ 255
  • bigint[(m)][unsigned][zerofill]

    有符号,取值范围:-9223372036854775808 ~ 9223372036854775807
    无符号,取值范围:0 ~ 18446744073709551615
  • decimal[(m[,d])] [unsigned] [zerofill]

    准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。
  • char(m)

    定长字符串,m代表字符串的长度,最多可容纳255个字符。
    定长的体现:即使内容长度小于m,也会占用m长度
  • varchar(m)

    变长字符串,m代表字符串的长度,最多可容纳65535个字节。
  • text

    text数据类型用于保存变长的大字符串,可以组多到65535 (2**16 − 1)个字符。

    一般情况下,长文本会用text类型。例如:文章、新闻等。
  • longtext

    A TEXT column with a maximum length of 4,294,967,295 or 4GB (2**32 − 1)
  • datetime

    YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59)
  • date

    YYYY-MM-DD(1000-01-01/9999-12-31)
  • time

    HH:MM:SS('-838:59:59'/'838:59:59')
  • timestamp

    YYYY-MM-DD HH:MM:SS(1970-01-01 00:00:00/2037年)

MySQL还有很多其他的数据类型,例如:*set、enum、TinyBlob、Blob、MediumBlob、LongBlob 等*,详细见官方文档:https://dev.mysql.com/doc/refman/5.7/en/data-types.html

查看表结构

desc 表名

 

2.1.5 修改表

  • 添加列

    alter table 表名 add 列名 类型;
    alter table 表名 add 列名 类型 DEFAULT 默认值;
    alter table 表名 add 列名 类型 not null default 默认值;
    alter table 表名 add 列名 类型 not null primary key auto_increment;
  • 删除列

    alter table 表名 drop column 列名;
  • 修改列 类型 + 名称

    alter table 表名 change 原列名 新列名 新类型;
  • 修改列 默认值

    alter table 表名 alter 列名 set default 1000;
  • 删除列 默认值

    alter table 表名 alter 列名 drop default;
  • 添加主键

    alter table 表名 add primary key(列名);
  • 删除主键

    alter table 表名 drop primary key;

2.2 python操作

import pymysql

# 连接MySQL
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root123', charset="utf8")
cursor = conn.cursor()

# 1. 创建数据库
"""
cursor.execute("create database db4 default charset utf8 collate utf8_general_ci")
conn.commit()
"""

# 2. 进入数据库、查看数据表
"""
cursor.execute("use db4")
cursor.execute("show tables")
result = cursor.fetchall()
print(result)
"""

# 3. 进入数据库创建表
cursor.execute("use db4")
sql = """
create table L4(
    id int not null primary key auto_increment,
    title varchar(128),
    content text,
    ctime datetime
)default charset=utf8;
"""
cursor.execute(sql)
conn.commit()

# 4. 查看数据库中的表
"""
cursor.execute("show tables")
result = cursor.fetchall()
print(result)
"""

# 5. 其他 drop table... 略过


# 关闭连接
cursor.close()
conn.close()

 

3.数据行管理

数据行操作就是对数据表的内容进行增删改查,是学习mysql的重头戏,先简单学习,后续再深入学习

3.1 SQL语句

3.1.1 新增数据

insert into 表名(列名,列名,列名)    values(对应值,对应值,对应值);
# 插入一条数据
insert into user (id,name,age) values(1,'zhangsan', 18);

# 插入多条数据
insert into user (id,name,age) values(2,'lisi', 18),(3,'wangwu',20);

 

 

 

 

3.1.2 删除数据

delete from 表名 where 条件;
delete from user where name='zhangsan';
delete from user where id > 9;
delete from user where name='zhangsan' and id < 6;
delete from user where name='zhangsan' or id = 1;

 

3.1.3 修改数据

update 表名 set 列名=值 where 条件;
update user set name='kunmzhao' where id = 1;

 

3.1.4查询数据

select * from 表名;
select 列名,列名,列名 from 表名;
select 列名 as 别名,列名,列名 from 表名;
select 列名,列名,列名 from 表名 where 条件;
select * from user;
select id as ID, name as 姓名 from user where id =1;

 

3.2 python操作

import pymysql

# 连接MySQL,自动执行 use userdb; -- 进入数据库
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root123', charset="utf8", db='userdb')
cursor = conn.cursor()


# 1.新增(需commit)
cursor.execute("insert into tb1(name,password) values('武沛齐','123123')")
conn.commit()


# 2.删除(需commit)

cursor.execute("delete from tb1 where id=1")
conn.commit()


# 3.修改(需commit)

cursor.execute("update tb1 set name='xx' where id=1")
conn.commit()


# 4.查询

cursor.execute("select * from tb where id>10")
data = cursor.fetchone() # cursor.fetchall()
print(data)


# 关闭连接
cursor.close()
conn.close()

 

标签:execute,管理,列名,mysql,cursor,表名,库表行,数据库,conn
From: https://www.cnblogs.com/victor1234/p/16899268.html

相关文章

  • 项目终于收尾了,第一次体验到专业项目管理软件的魅力
    转眼到了年底,我跟进的项目也到了收尾阶段。之前陆陆续续给大家分享了入职新公司后,使用新引进的项目管理软件做项目的一些体会和心得,其中一些比较高效便捷的技巧和功能模块......
  • 安科瑞智能通讯管理机在能源计量行业的应用
    建筑能耗应用场景描述在电力监控系统能源计量中经常会运用到通信管理机,通信管理机也称作DPU,其具有多个下行通讯接口及一个或者多个上行网络接口,相当于前置机,即监控计算机,用......
  • docker inspect |mysql IPADRESS
    version:'3'services:db:#构建mysql镜像image:mysqlcontainer_name:mysql-db#容器名restart:alwaysenvironme......
  • mysql group by
    Error1140:InaggregatedquerywithoutGROUPBY,sql_mode=only_full_group_by MySQL5.5.27上跑没有问题,在MySQL5.7.24上就报了sql_mode=only_full_group_by的错误......
  • 1.mysql-简介及安装
    1.简介数据库管理系统可以帮助我们实现对数据进行管理,我们只要学习对应的指令即可,目前市面上有很多数据库管理系统产品MySqlOracleSQlitePostgreSQL.........
  • 案例解析:电商销售数据可视化管理系统
    电商行业的快速发展得益于数字化经济的快速发展,大家纷纷借助大数据、5G等技术将自己的企业精细化管理。 电商销售数据可视化操作一般分为4步:①了解拥有的数据②确定想......
  • 用户管理系统
    UserManagement这是通过SpringBoot完成的用户后台管理系统一些解释说明也在代码里面,源码及资源会放在文末哦!!!csdn:[点我获取资源](https://download.csdn.net/down......
  • mysql获取当前月,当前年天数(包含上个月,上一年天数)
     1、获取当前月天数:selectday(last_day(NOW())); 2、获取上一月天数:SELECTday(LAST_DAY(date_sub(curdate(),interval1MONTH)));  3、获取当前年的总......
  • MySql类型转换函数cast
    这两天处理一个现网的MySQL慢查询工单,学到了一个好用的MySQL函数:cast。事情是这样的:我们有两张表t_user和t_rule表,需要关联这两张表去查询,关联字段是t_user表的主键......
  • MySQL8 常用命令
    初始化(初始化之后的密码需要记一下,首次登录的时候需要用到)mysqld--initialize--console安装(服务名称可选,默认为MySQL)mysqldinstall服务名称启动服务netstar......