码迷,mamicode.com
首页 > 数据库 > 详细

Python学习第95天(MySQL数据表操作)

时间:2020-06-01 23:30:48      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:unsigned   uniq   day   lex   base   多个   user   float   直接   

  昨天已经完成了在数据库中创建库和创建表,下面将详细介绍一下,针对穿件完成后的database之后,我们use database(select database切换),然后create table table_name(filed type1,。。。。。)

  基础操作,主要是增删改查  

-- 1.创建表(类似于一个excel表)

        create table tab_name(
            field1 type[完整性约束条件], not null限定非空
                       auto_increment随内容增加,主键实现自动迭代增加 field2 type, ... fieldn type )[character
set xxx]; -- 创建一个员工表employee create table employee( id int primary key auto_increment ,  这里的primary key 就是设定主键的意思,主键要求,非空且唯一 name varchar(20), gender bit default 1, -- gender char(1) default 1 ----- 或者 TINYINT(1) birthday date, entry_date date, job varchar(20), salary double(4,2) unsigned, resume text -- 注意,这里作为最后一个字段不加逗号 ); /* 约束: primary key (非空且唯一) :能够唯一区分出当前记录的字段称为主键! unique not null auto_increment 主键字段必须是数字类型。 外键约束 foreign key */ -- 2.查看表信息 desc tab_name 查看表结构 可以查看有哪些字段,和字段对应的信息 show columns from tab_name 查看表结构 show tables 查看当前数据库中的所有的表 show create table tab_name 查看当前数据库表建表语句 查看字段在创建时候的信息 -- 3.修改表结构 -- (1)增加列(字段) alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
      这里的first表示放在第一个,after+字段名表示放在某个字段后面 alter table user add addr varchar(
20) not null unique first/after username; #添加多个字段 alter table users2 add addr varchar(20), add age int first, add birth varchar(20) after name;
       使用逗号进行隔开即可
-- (2)修改一列类型 alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
    直接输入新的类型即可 alter table users2 modify age tinyint
default 20; alter table users2 modify age int after id; -- (3)修改列名 alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名]; alter table users2 change age Age int default 28 first; -- (4)删除一列 alter table tab_name drop [column] 列名; -- 思考:删除多列呢?删一个填一个呢? alter table users2 add salary float(6,2) unsigned not null after name, drop addr; -- (5)修改表名 rename table 表名 to 新表名;
    此时操作针对表格
-- (6)修改该表所用的字符集 alter table student character set utf8; -- 4.删除表 drop table tab_name; ---5 添加主键,删除主键 alter table tab_name add primary key(字段名称,...) alter table users drop primary key; eg: mysql> create table test5(num int auto_increment); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key create table test(num int primary key auto_increment); -- 思考,如何删除主键? alter table test modify id int; -- auto_increment没了,但这样写主键依然存在,所以还要加上下面这句 alter table test drop primary key;-- 仅仅用这句也无法直接删除主键 -- 唯一索引 alter table tab_name add unique [index|key] [索引名称](字段名称,...) alter table users add unique(name)-- 索引值默认为字段名show create table users; alter table users add unique key user_name(name);-- 索引值为user_name -- 添加联合索引 alter table users add unique index name_age(name,age);#show create table users; -- 删除唯一索引 alter table tab_name drop {index|key} index_name

  关于主键有两点要说:

    <1> 一张表只能有一个主键

    <2> 主键类型不一定非是整型

接着是表内容的增删改查,刚才主要针对表格和表格的字段,现在针对具体内容,如何添加。

  查暂时还不说,我没看完  

-- 1.增加一条记录insert

      /*insert [into] tab_name (field1,filed2,.......) values (value1,value2,.......);*/


      create table employee_new(
                 id int primary key auto_increment,
                 name varchar(20) not null unique,
                 birthday varchar(20),                 salary float(7,2)
                             );

       insert into employee_new (id,name,birthday,salary) values
                     (1,yuan,1990-09-09,9000);

       insert into employee_new values
       (2,alex,1989-08-08,3000);

       insert into employee_new (name,salary) values
       (xialv,1000);

      -- 插入多条数据
       insert into employee_new values
       (4,alvin1,1993-04-20,3000),
       (5,alvin2,1995-05-12,5000);

以上这部分必须做到一一对应的要求。
-- set插入: insert [into] tab_name set 字段名=值 insert into employee_new set id=12,name="alvin3"; -- 2.修改表记录 update tab_name set field1=value1,field2=value2,......[where 语句] /* UPDATE语法可以用新值更新原有表行中的各列。 SET子句指示要修改哪些列和要给予哪些值。 WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行。*/ update employee_new set birthday="1989-10-24" WHERE id=1; --- 将yuan的薪水在原有基础上增加1000元。 update employee_new set salary=salary+4000 where name=yuan; -- 3.删除表纪录 delete from tab_name [where ....] /* 如果不跟where语句则删除整张表中的数据 delete只能用来删除一行记录 delete语句只能删除表中的内容,不能删除表本身,想要删除表,用drop TRUNCATE TABLE也可以删除表中的所有数据,词语句首先摧毁表,再新建表。此种方式删除的数据不能在 事务中恢复。*/ -- 删除表中名称为’alex’的记录。 delete from employee_new where name=alex; -- 删除表中所有记录。 delete from employee_new;-- 注意auto_increment没有被重置:alter table employee auto_increment=1; -- 使用truncate删除表中记录。 truncate table emp_new;

以上是所有信息,因为数据库主要用在查上面,所以明天才是重点啊。。。

Python学习第95天(MySQL数据表操作)

标签:unsigned   uniq   day   lex   base   多个   user   float   直接   

原文地址:https://www.cnblogs.com/xiaoyaotx/p/13028262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!