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 ‘%’; 查找匹配字符串所在記錄




發佈了40 篇原創文章 · 獲贊 14 · 訪問量 1383
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章