首页 > 编程语言 >python基础day42

python基础day42

时间:2023-07-11 16:46:50浏览次数:36  
标签:insert python create 基础 id int table t1 day42

针对表的SQL语句

有表的前提是先有库

什么是表?

  表相当于是文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段。

ps:先有库

select database()  查看当前所在的库

use db1;                   选择库

1. 查看表

show tables;

show create table t1;  查看表结构

describe t1;   格式化之后的表结构

desc t1;   

2. 创建表

create table t1 (id int(11),name varchar(20),age int);

3. 修改表

alter table t1 rename tt1;

4. 删除表

drop table t1;

针对记录的SQL语句

select、insert、update、delete

1. 查看表中的数据

  select * from t1;

  select id from t1;

  selest id , name from t1;

  select id, name, age from t1;

2.增加数据

  insert into t1 values(1,'kevin', 18);  单条全字段增加数据

  insert into t1 values(2, 'tank', 20), (3,'oscar',21), (4, 'jack', 22);  多条全字段增加数据

  insert into t1 (id, name) values(5,'jerry');  非全字段增加数据

3. 修改数据

update 表名 set 字段名='字段值' where 条件

update t1 set name='kevin' where age=18;

update t1 set name='jack', age=20 where id=1;

update t1 set name='tom', age = 21, k=v, k1=v1 where id = 3;

update t1 set name = 'tank' where id= 2 and age=20;

update t1 set name='aaa';  全表改,一定不能使用

ps:以后再更新语句的时候,一定别忘了检测更新条件

  以后千万要有安全意识

4. 删除数据

delete from t1 where id = 1;

delete from t1 where id=1 and name ='';

 

存储引擎(存储数据的地方)

存储引擎就是存储数据的地方

MySQL中有哪些存储数据的方式:

  show engines

总共支持9种存储引擎,我们需要掌握2种

MyISAM :

  它是MySQL5.5及以前版本默认的存储引擎,它的存储速度更快,但是数据相对InnoDB不够安全

InnoDB:

  它是MySQL5.6及以前版本默认的存储引擎,它的存储速度相对MyISAM更慢了,但是数据相对MyISAM更加安全

MEMORY(了解):

  他的数据是在内存中存着的,内存是基于电工作的,所以断电数据丢失,重启服务端也会丢失数据

验证以上三个存储引擎所产生的文件

create table t2(id int) engine=MyISAM;

create table t3(id int) engine=InnoDB;

create table t4(id int) engine=MEMORY;

 

MyISAM:

  产生三个文件

  .frm:这个文件村表结构

  .MYD: 这个文件存数据 data

  .MYI: 这个文件存数据的索引 index >>> 类似是书的目录 >>> 加快查询速度的

InnoDB

  产生两个文件

  .frm: 这个文件存表结构

  .ibd: 这个文件存数据的索引和数据 index>>> 类似是书的目录 >>> 加快查询速度的

MEMORY

  产生一个文件

  .frm: 这个文件存表结构

  数据存在内存中

数据类型(重要)

1. 整型

tinyint  smallint  mediumint  int  bigint

不同的类型存储的范围不一样

存储范围比较

tinyint: 1个字节------>8位------>2 **8----> 256----->0-255----->-128-127

smallint:2个字节----->16位---->2 ** 16 ----> 65536----->0-65535---->-32768-32767

int:4个字节------>32位----->2 ** 32----> 21...---->

bigint:8个字节----->64为----->2 ** 64---->

 

默认情况整形是否带负号

create table t5(id tinyint);

create table t5(id smallint);

create table t5(id int);

create table t5 (id bigint);

 

insert into t5 values(999);

insert into t5 values(-129);

得出结论:默认情况整型是带负号的

2. 浮点型(小数)

float  double  decimal

语法格式

float(255, 30);  255表示的是存储的位数,30代表的是小数位数

double(255, 30);  255表示的是存储的位数,30代表的是小数位数

decimal(65, 30);  65表示的是存储的位数,30代表的是小数位数

 

decimal(8, 2)  表示的最大范围是 999999.99

 

这三个有什么区别?

create table t6(id float(255,30));

create table t7(id double(255,30));

create table t8(id decimal(65,30));

插入数据

insert into t6 values(1.1111111111111111);

insert into t7 values(1.1111111111111111);

insert into t8 values(1.1111111111111111);

得出结论:精确度不一样

decimal >>>double>>>float

ps : 以后就使用decimal

  要求更高精度就只能使用字符串了

3. 字符串

char(4)  varchar(4)

这两个都是用来存储字符串使用的

char(4):他是定长,那么就存4位,如果没有超出4位,空格填充到4位,超出4位,报错或者最大存4位

varchar(4):可变长的,不超出4位,有几位存几位,超出4位,报错或者最大存4位

验证

create table t9(id int, name char(4));

create table t10(id inr,name varchar(4));

 

insert into t9 values(1,'kevin');

insert into t10 values(1, ''kevin);

如果想要报错,需要设置严格模式

如何查看严格模式

1. select @@sql_mode;

2. show variables like '%mode%'  模糊查询,变量中带有mode的

 

设置严格模式

1. 永久修改:需要改配置文件

2. 临时修改:

  set global sql_mode= 'STRICT_TRANS_TABLES, PAD_CHAR_TO_FULL_LENGTH';

 

研究定长和可变长

insert into t9 values(2, 'k');

insert into t10 values(2, 'k');

验证存储的长度

select char_length(name) from t9;

select char_length(name) from t10;

以后大多数情况下用的都是varchar,如果你的存储数据就是固定的。就用char

 

4. 日期类型

datetime    date    time  year

年月日 时分秒  年月日  时分秒  年份

create table t14 (id int,reg_time datetime, update_time date, delete_time time, bieth year);

insert into t14 values(1,'2023-10-01 11:11:11', '2023-07-10', '11:11:11', '2023');

 

5. 枚举类型

enum:多选一(没有填enum后面的就报错)

create table t15 (id int, hobby enum('tangtou', 'xijiao', 'spa', 'hejiu'));

insert into t15 values(1, 'tangtou');

 

set:多选多

create table t16 (id int, hobby set('tangtou', 'xijiao', 'spa', 'hejiu'));

 

整型中的数字代表的是什么意思

char(4)

varchar(4)  括号里的数字代表的就是存储的长度

int

tinyint

smallint

整型的存储范围跟括号中的数字没有关系

整型的存储范围完全是跟关键字相关,int, smallint

create table t11(id int(3));

insert into t12 values(99999);

整形中括号中的数字代表的是数据展示的位数

create table t12 (id int(3) zerofill);  zerofill:用0填充

insert into t12 values(9);

 

create table t13 (id int(11) zerofill);

insert into t13 values(9);

 

创建表的完整语法结构

create table 表名(
字段名1 数据类型 约束条件 约束条件 约束条件,
字段名2 数据类型 约束条件 约束条件 约束条件,
字段名3 数据类型 约束条件 约束条件 约束条件,
字段名4 数据类型 约束条件 约束条件 约束条件,
字段名5 数据类型 约束条件 约束条件 约束条件,
);

create table t17(id int, name varchar(16), age int);

注意事项

1. 字段名和数据类型是必须要写的

2. 约束条件是可选的,有就写,没有就不写

3. 最后一个字段的末尾不能加逗号

 

标签:insert,python,create,基础,id,int,table,t1,day42
From: https://www.cnblogs.com/zfq132/p/17545197.html

相关文章

  • 基于python+django的宠物商店-宠物管理系统设计与实现
    该系统是基于python+django开发的宠物商店-宠物管理系统。是给师妹开发的课程作业。现将源码开放给大家。大家学习过程中,如遇问题可以在github咨询作者。演示地址前台地址:http://pet.gitapp.cn后台地址:http://pet.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin12......
  • 基于python+django的家教预约网站-家教信息管理系统设计与实现
    该系统是基于python+django开发的家教预约网站。是给师妹做的课程作业。大家在学习过程中,遇到问题可以在github给作者留言。效果演示前台地址:http://jiajiao.gitapp.cn后台地址:http://jiajiao.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin123源码地址https:......
  • 基于python+django的旅游信息网站-旅游景点门票管理系统设计与实现
    该系统是基于python+django开发的旅游景点门票管理系统。是给师弟做的课程作业。大家学习过程中,遇到问题可以在github咨询作者演示地址前台地址:http://travel.gitapp.cn后台地址:http://travel.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin123源码地址https://......
  • 机器学习实战-基于Python3和C++(4)-opencv(1)
    目录读取图片Mat读取图片#include<opencv2/core.hpp>#include<opencv2/imgcodecs.hpp>#include<opencv2/highgui.hpp>#include<iostream>usingnamespacecv;intmain(){std::stringimage_path=samples::findFile("starry_night.jpg"......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-6-元素定位大法-下篇
    1.简介上一篇主要是讲解我们日常工作中在使用Playwright进行元素定位的一些比较常用的定位方法的理论基础知识以及在什么情况下推荐使用。今天这一篇讲解和分享一下,在日常中很少用到或者很少见的定位,但是遇到了我们也要会,俗话说:手里有粮心里不慌。2.阴影定位-ShadowDOM在做web......
  • 「Python」load和loads的区别
    在Python中,load和loads都是用于处理JSON数据的函数,但它们的使用场景和功能略有不同:json.load():用于从文件中读取JSON数据并将其解析为Python对象。它接受一个文件对象作为参数,并返回解析后的JSON数据。示例:importjson#从文件中读取JSON数据withopen('dat......
  • opencv-python形态学计算
    形态学运算包括腐蚀,膨胀,开运算,闭运算,形态学梯度,顶帽运算,底帽运算7种,其中膨胀与腐蚀是最常用的两种基础形态学方法,可以用来消除噪声,元素分割和连接,形态学运算主要在图像去噪,图像分割等方面有着广泛的运用。形态学指一系列处理图像形状特征的图像处理技术,形态学的基本思想是利用一......
  • Python: Yield & With/As
    Howtouseyield:https://www.runoob.com/w3cnote/python-yield-used-analysis.htmlHowtousewith/ashttps://www.jianshu.com/p/c00df845323c......
  • VUE基础01-响应式
    SFC(Single-FileComponent,缩写为SFC)SFC是一种可复用的代码组织形式,它将从属于同一个组件的HTML、CSS和JavaScript封装在使用.vue后缀的文件中。响应式reactive()reactive()只适用于对象(包括数组和内置类型,如Map和Set)。import{reactive}from'vue'const......
  • 唯一进程限制(Python)
    一、序在一些条件下,一个设备只需要运行一个进程,Python打包的exe只能运行一次的情况二、实现思路获取所有进程,判断是否已经有了该线程。没有输出1,有输出0三、实现代码实现代码defonlyOneSelf():pids=psutil.pids()#获取所有进程PIDlist=[]......