Python 高级 14(2)数据库增删改查

数据表操作、DDL 数据表的增删改、DML 数据表中数据的增删改、MySQL 常用字段类型

2.4 数据表操作

学习目标

  1. 能够熟练对数据表进行创建,修改,删除等操作

  2. 能够说出什么是约束

  3. 能够说出有哪些约束

--------------------------------------------------------------------------------

2.4.1 数据表操作介绍

和数据库操作一样,在数据表在操作中,也是是围绕增删改查来操作。

但是在这一章节主要讲解数据表的增删改操作。

查询操作是数据库中最为重要的操作。会单独一章节讲解。

2.4.2 数据表操作

DDL 数据表的增删改总结:

  <1>显示所有的数据表

      show tables;

  <2>创建数据表

      create table 表名( 字段名 字段类型,[字段名 字段类型]…);

  <3>显示表创建信息

      show create table 表名;

  <4>添加字段

      alter table 表名 add 字段名 字段类型;

  <5>删除字段

      alter table 表名 drop 字段名;

  <6>修改字段数据类型

      alter table 表名 modify 字段名 字段数据类型;

    <7>修改字段名和数据类型

      alter table 表名 change 旧字段名  新字段名 字段类型;

    <8>显示数据表的结构

      desc 表名;

  <9>删除数据表

      drop table 表名;

DML 数据表中数据的增删改总结:

  <1>查询数据表内的数据 就是通过客户端通过 DBMS 从数据库中取出满足条件的数据。

      语法:select 字段名列表 from 表名;查询指定字段的数据

      语法:select * from 表名;查询数据表的全部数据

      select * from stu;

  <2>向数据表中插入数据

      语法:insert into 表名 [(字段名列表, ...)] values(值列表, ...)

        插入所有字段数据(可以不指定插入的字段,直接写入插入的数据)

          ■ insert into tStudent values(1,'tom',20)

      插入指定字段(可以插入指定的字段,指定字段顺序和列中顺序可以不同,值顺序要和指定的列顺序相同。)

          ■ insert into stu(sage,sname) values(20,'jack');

      插入多条数据

          ■  insert into stu values(2,'rose',20),(3,'tony',22);

  <3>修改数据表内的数据 根据指定的条件,修改更新满足条件的数据

      语法: update 表名 set 字段=值 [条件] (如果不设置条件默认更新全部)

      注意:

如果修改数据为空null的值,使用where 字段名 is null 或者 where 字段名 is not null 或者 where not 字段名 is null

不能用where id=null

  1>更新所有的数据

      update stu set sAge=25;

  2>更新满足条件的数据

      update stu set sname='alice' where name='tony';

  <4>将数据从数据表中删除

      语法1:truncate 表名

      语法2:delete from 表名 [条件] (如果不设置条件默认删除全部)

      删除全部数据 truncate 表名

          ■ truncate stu;

          ■ 注意:

不经事务,删除不可恢复

不需要加条件,也不能加条件,删除全部数据,重置自动编号到默认值,没有事务,速度快。

  删除全部数据delete from 表名;

      delete from stu;

      注意:

可以用在事务操作中,在事务中没有提交时,可撤消

相当于 truncate stu,但是delete操作有事务操作,所以速度慢,而且不会重置自动编号。

    删除满足条件的数据

      delete from 表名 [条件]

      delete from stu where snumber = 1;

详解:

  查看表 作用:查看所选数据库中所有的表 语法: show tables;

      show tables;

  创建表 作用:在数据库中创建一张新表 语法: create table 表名(字段1 字段类型,字段2 字段类型,字段3 字段类型……);

      create table stu(sid int,sname char(20),sage int);

  显示创建表信息 作用:用来显示创建表时的信息 语法:show create table 表名;

      语法1:show create table 表名;

      以表格的形式显示,窗口太小排版乱

          ■ show create table stu;

      语法2:show create table 表名 \G

      使用\G,格式化,以记录条目形式显示,更清晰,\G后不用加;

          ■ show create table stu \G

  增加字段 作用:为已存在的表添加一个新字段 语法:alter table 表名 add 列名 数据类型

      alter table stu add gender char(4);

  删除字段 作用:在表中删除一个已存在的字段 语法:alter table 表名 drop 列名

      alter table stu drop gender;

  修改字段的数据类型 作用:修改表中现有字段的类型 语法:alter table 表名 modify 字段名 数据类型

      alter table stu modify sname varchar(20);

  修改列的数据类型并且改名 作用:修改表中现有字段的字段名和类型 语法:alter table 表名 change 原字段名 新字段名 数据类型

      alter table stu change sid snumber smallint;

  显示数据表的结构

      desc 表名;

2.4.3 MySQL 常用字段类型

数据表是由若干个字段组成的,每个字段表示不同类型的数据。

所以在创建表的时候,需要为每个字段指定相应的数据类型。

<1>数据类型

  整型

      tinyint 1 字节

      smallint 2 字节

      mediumint 3 字节

      integer 4 字节

      bigint 8 字节

  浮点类型

      float(长度,小数位数) 7位有效位

      double(长度,小数位数) 15位有效位

      decimal(长度,小数位数) 28位有效位

  字符串类型

      char(长度) 0-255字节 定长字符串

      varchar(长度) 0-65535字节 变长字符串

  枚举类型

      enum(枚举值1,枚举值2…)

      底层也是基于整型实现的

  时间类型

      DATE YYYY-MM-DD 日期值

      TIME HH:MM:SS 时间值

      DATETIME YYYY-MM-DD HH:MM:SS 日期时间值

      YEAR YYYY 年份值

      TIMESTAMP 1970-01-01 00:00:00 到现在的秒数 时间戳

  整数类型

  小数类型

  字符串类型

  枚举类型 enum(枚举值1,枚举值2,...)

        enum('男','女')

  时间类型

2.4.4 查询数据

作用:查询数据就是通过客户端通过 DBMS 从数据库中取出满足条件的数据。

语法:select 字段名列表 from 表名;

    select * from stu;

2.4.5 插入数据

作用:向数据库中插入数据

语法:insert into 表名 [(字段名列表, ...)] values(值列表, ...)

  插入所有字段数据(可以不指定插入的字段,直接写入插入的数据)

      insert into tStudent values(1,'tom',20)

  插入指定字段(可以插入指定的字段,指定字段顺序和列中顺序可以不同,值顺序要和指定的列顺序相同。)

      insert into stu(sage,sname) values(20,'jack');

  插入多条数据

      insert into stu values(2,'rose',20),(3,'tony',22);

2.4.6 修改数据

作用: 可以根据指定的条件,修改更新满足条件的数据

语法: update 表名 set 字段=值 [条件]

如果修改数据为空null的值,使用where is null 或者 where is not null

不能用where id=null

  更新所有的数据

      update stu set sAge=25;

  更新满足条件的数据

      update stu set sname='alice' where name='tony';

2.4.7 删除数据

作用:将数据从数据表中删除

语法1:truncate 表名

语法2:delete from 表名 [条件]

  删除全部数据 truncate

      truncate stu;

注意:

不经事务,删除不可恢复

不需要加条件,也不能加条件,删除全部数据,重置自动编号到默认值,没有事务,速度快。

      delete from stu;

注意:

可以用在事务操作中,在事务中没有提交时,可撤消

相当于 truncate stu,但是delete操作有事务操作,所以速度慢,而且不会重置自动编号。

  删除满足条件的数据

      delete from stu where snumber = 1;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,777评论 5 116
  • 观其大纲 page 01 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 M...
    周少言阅读 3,150评论 0 33
  • 第一天 7月13日OCP笔记: Oracle Ocp11g准备资料: OracleFundmentals 书 管理...
    fjxCode阅读 2,797评论 0 4
  • 她就像是发昏月夜下的灯火 一点橘黄 纵愉摇曳 从街头跑到街角 把手里的包甩向天空 天真的像个孩子
    卿同学阅读 93评论 0 0
  • 在了解存储路径之前,先来看看Android QQ的文件管理界面,了解一下QQ的数据文件路径来源,到底是来源于什么地...
    大白栈阅读 59,152评论 3 82