MySQL表操作

表操作

创建表:

create table 表名
(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
...
);

查看表结构(有多少列,每一列的属性):

desc 表名;

查看表的创建过程(创建表的时候使用的语句):

show create table + 表名;

修改表的名称:

rename table 原名称 to 新名称;
alert table 原名称 rename 新名称;

添加字段(列):

alert table 表名 add 新增字段名 类型;

删除表:

drop table 表名;

修改字段:

        更改字段名:change

alert table 表名 change 旧字段名 新字段名 数据类型;

        更改数据类型属性:modify

alert table 表名 modify 字段名 新数据类型;

        更改字段位置:modify

alert table 表名 modify 字段名1 数据类型 first|after 字段名2;

插入数据:

insert into 表名(字段名1,字段名2,...) values(数值1,数值2,...);
insert into 表名 values(数值1,数值2,...);

 表的复制:

create table 新表名 select * from 要复制的表;

查询:

select 字段1,字段2,... from 表名;
select * from 表名;(*表示所有字段)

修改数据:

update 表名 set 字段名=新值 where 条件;
update test set 数学成绩=90 where 姓名="lisi";

删除记录:

        删除指定的记录:

delete from 表名 where 条件;

        删除表的所有记录:

delete from 表名;

增删改查 

增:

create database 库名;                        建库
create table 表名;                           建表
alert table 表名 add 新增字段名 类型;        添加字段

插入数据
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
insert into values(值1,值2,...);

删:

drop database 库名;
drop table 表名;
alert table 表名 drop 字段名;        删除字段
delete from 表名 where 条件;
delete from 表名;

改:

rename table 原名称 to 新名称;
alert table 原名称 rename 新名称:
alert table 表名 change 旧字段名 新字段名 数据类型;
alert table 表名 modify 字段名 新数据类型;
update 表名 set 字段=新数据 where 条件;

查:

show databases;
select database();       查询当前所在的数据库
show tables;
show table status like '表名'\G;     查看表状态
desc 表名;
show create table 表名;
select 字段1,字段2,... from 表名;  (*代表所有字段)

约束条件

unsigned

作用:使整数范围无正负号
关键字:unsigned

实例:
    create table t1(id int unsigned);

zerofill

作用:不够位数使用0填充
关键字:zerofill

实例:
    create table t1(id int(8) unsigned zerofill);
    insert into t1 values(2222);

not null

作用:not null  非空(不能为空)
关键字:not null


实例:

正常添加:
        create table t4(id int,name varcher(16));
        insert into t4 values(name) values('gary');   只指定给name字段添加数据
结果:id位null

        create table t4(id int not null,name varcher(16));    限制id不能为空
        insert into t4 values(name) values('gary');           只给name字段添加数据

default

作用:默认值(用户给了数据就用用户的,用户不给就用默认的)
关键字:default

实例:
    create table t6(id int,name varchar(16) default '匿名用户');
    insert into t6 values(1,'gary');        正常传值
    insert into t6(id) values(2);           只给id传值则name字段使用默认值

unique

作用:唯一(保证字段(一个或多个)在整个表中没有重复的数据)
关键字:unique
unique分为单列唯一和多列唯一

单列唯一:只控制单列不能重复
实例:
    create table t7(id int,name varchar(16) unique);
    insert into t7 values(1,'gary')(2,'gary');
多列唯一(联合唯一):控制多列结合不能重复

实例:ip加端口唯一
创建表:
create table t8(
    id int,
    host varchar(32) comment 'ip地址',
    port varchar(32) comment '端口',
    unique(host,port)
);

添加数据:
        insert into t8 values(1,'127.0.0.1','3306'),
            (2,'127.0.0.1','3307'),
            (3,'127.0.0.2','3306');
不报错:只要host和port字段结合不重复可以存储

primary key

作用:
1、单从约束条件上而言主键相当于not null + unique(非空且唯一)
2、主键的功能目前简单的理解为能够加快数据的查询速度相当于书的目录
3、innodb存储引擎规定每张表都必须有且只有一个主键
    3.1、如果表中没有任何的主键和其它约束条件
            innodb默认会采用一个隐藏字段作为表的主键
    3.2、如果表中没有主键但是有not null + unique(非空且唯一的字段)
            innodb会自动将该字段升级为主键

结论:每张表都必须要有一个 'id' 字段(序号字段)并且该字段就是主键(通常在第一列)

关键字:primary key
可分为单列主键和多列主键(联合主键)
单列主键:验证非空且唯一

create table t9(
id int primary key,
name varchar(32)
);

insert into t9(name) values('gary');           报错
insert into t9 values(1,'gary'),(1,'tom');     报错



单列主键:验证not null + unique 是否自动升级为主键

create table t10(
id int not null unique,
age int not null unique,
phone bigint not null unique,
num int not null unique
);
多列主键(联合主键):两个字段联合起来是一个主键(不常用)
create table t11(
id int,
age int,
name varchar(16),
primary key(id,age)
);

auto_increment

作用:自增(专门配合主键一起使用的 让主键能够自增)
关键字:auto_increment

实例:
    创建表:
            create table t12(
                id int primary key auto_increment,
                name varchar(32)
            );

    存储数据:
            insert into t12(name) values('tom'),('kaka'),('jack'),('gary');
这样我们在存储数据的时候就不需要考虑是第几个id编号了

主键自增特性

主键的自增是不会受到delete from删除操作的影响

如果删除某一个字段的话他还是保持原来的自增顺序依次自增

比如:
删除3字段,那么4字段就会填充到3字段的位置,再来数据就是以5字段开始

truncate关键字既可以清空表数据也会重置主键值(但是没这个必要,一般不会重置数据,如果重置重新创建一个表就好了)
eg:truncate t1; (清空t1表的数据并且重置主键)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值