美文网首页
Python 高级 14(2)数据库增删改查

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

作者: Cestine | 来源:发表于2018-11-28 19:29 被阅读0次

    数据表操作、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;

    相关文章

      网友评论

          本文标题:Python 高级 14(2)数据库增删改查

          本文链接:https://www.haomeiwen.com/subject/hnwzqqtx.html