python数据库中表的介绍

表的介绍

数据库是有组织可共享的,持久存储和管理数据的容器。

数据表是由表名、表中的字段和表的记录三个部分组成的表。

数据存放在表里,表存放于库里.

表的创建用到的数据类型:

1.整形:

		1.tinyint(1字节) 有符号值:-128到127(-2^7~2^-1)
				    	 无符号值:0到255(0到2^8-1)
	
		2.smallint(2字节) 有符号值:-32768到32767(-2^15到2^15-1)
				     	  无符号值:0到65535(0到2^24-1)
	
		3.mediumint(3字节) 有符号值:-8388608到8388607(-2^23到2^23-1)
						   无符号值:0到16777215(0到2^24-1)
	
		4.int(4字节) 有符号值:-2147483648到2147483647(-2^31到2^31-1)
					 无符号值:0到16777215(0到2^32-1)
	
		5.bigint(8字节)	有符号值:-9223372036854775808到9223372036854775807(-2^63到2^63-1)
					    无符号值:0到18446744073709551615(0到2^64-1)
	
	2.浮点数(小数):
			1.float[(M,D)] -3.402823466E+38到-1.175494351E-38,0和1.175494351E-38到3.402823466E+38
						M是数字总位数,D是小数点后面的位数,如果M和D被忽略,
						根据硬件允许的限制来保存值。
						精度浮点数精确到大约7位小数位。
	
			2.double[(M,D)] -1.7976931348623157+308到-2.2250738585072014E-308,0和2.2250738585072014E-308到1.7976931348623157+308
			
			3.real[(M,D)]
	
			4.decimal[(M,D)]     


	3.时间日期型:
			year 1字节   '2017'
			time 3字节   '12:29:59'
			date 3字节	 '2020-01-01'
			datetime 8字节    '2020-01-01 12:29:59'
			timestamp 4字节   '1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC


	4.字符窜类型:
				char  固定长度字符串,如char(3),如果填充'ab'时会补一个空格为'ab '
				varchar	 可变长度字符串,如varchar(3),填充'ab'时就会存储'ab'
	
				文本:
					tinytext   占L+1个字节,L<2^8
					text 	占L+1个字节,L<2^16
					mediumtext 	 占L+1个字节,L<2^24
					longtext	占L+1个字节,L<2^32
					enum('value1', 'value2', ...)	1或2个字节,取决于枚举值的个数(最多65535个值)
					set('value1', 'value2', ...)	1,2,3,4或8个字节,取决于set成员的数目(最多64个成员)


	5.二进制:
			(blob可以用来保存数据量很大的二进制数据,如图片等)
			 tinyblob,blob,mediumblob,longblob
	
			(以下也是二进制类型)
			 binary,varbinary,bit
	常用7种约束:
	    unsigned: 无符号约束,指定数字不能为负数
	    		-- 数字(整数,小数) 		
	
	  not null: 非空约束,指定某列不为空  必须做数据插入
	
	    auto_increment: 自动增长约束,序号自动加一
				-- 注意:必须与主键组合使用
				-- 默认情况下,初始值为1,每次增量为1  
	
	  unique:  唯一约束,指定某列和几列组合的数据不能重复
				-- 唯一约束可以保证记录的唯一性
				-- 唯一约束的字段可以为空值(NULL)
				-- 每张数据表可以存储多个唯一约束
	
	  primary key:  主键约束,指定某列的数据不能重复、唯一
				-- 每张数据表只能存在一个主键
				-- 主键保证记录的唯一性
				-- 主键自动为NOT NULL
	
	  foreign key:  外键,指定该列记录属于主表中的一条记录,参照另一条数据
	
		default 0: 当插入数据的时候,如果字段没有数据,则自动插入默认值  set和enum不允许设置默认值
表的操作

create table 1706a_class(
num int auto_increment primary key,
name varchar(20) unique not null,
gender enum(“男”,“女”,“保密”),
age tinyint unsigned,
hobby char(30),
high decimal(5,2)
);
create table +表名(
列名 数据类型 约束,
列名 数据类型 约束,
列名 数据类型 约束,
列名 数据类型 约束 最后一列不加,
);

select * from 表名 查看表中数据 *表示选区全部的列

插入数据 insert into +表名(表中的字段,,)value(字段所对应的记录,,);
insert into 1706a_class (num,name,gender,age,hobby,high)value(2,‘呵呵’,1,19,‘呵呵’,166.50);
insert 表名 values();

删除表内数据,用 delete。格式为:
delete from 表名 where 删除条件;
delete from 表名 删除表中所有数据

alter table 表名 drop 列名 删除一列

drop table 表明 删除表

清除表内数据,保存表结构,用 truncate。格式为:
truncate table 表名;

show tables; 查看数据库中存在什么表

describe(desc) 表名; 显示表的结构

update 表名 set 字段名=‘新内容’ + where条件 修改添加表中数据

alter table 表明 add column 列名 varchar(45) not null(类型和约束); 添加一列(默认最后一列)

alter table 表名 add (column) 要添加的列名 varchar(45) not null(类型和约束) after 指定列名; 添加在指定的一列后面

alter table 表名 add column 添加的列明 varchar(45) not null first; 添加到第一列

rename table 原表名 to 新名; 修改表名

show create table 表名 查看创表语句(结构)

alert table 表名 change 列名 新列名 数据类型及约束; 修改列名

alter table 表名 modify 列名 类型

select 要列出的列名 from 列所在的表名 order by 排序的列名; 排序 正序
select 要列出的列名 from 列所在的表名 order by 排序的列名 desc; 排序 倒叙 limit 几到几 显示前几个

avg(列名) 求平均值

select * from 表名 where 列名 where like ‘%’; 查找匹配字符串所在记录




发布了34 篇原创文章 · 获赞 13 · 访问量 517

猜你喜欢

转载自blog.csdn.net/qq_45019159/article/details/103810736