美文网首页
数据表的操作

数据表的操作

作者: 赵桓熠_科院 | 来源:发表于2019-07-25 19:41 被阅读0次

    02数据表的操作

    01显示表

    这个没啥说的,就像显示所有数据库一样,命令简短。

    语法:

    show tables;
    

    02创建表

    就像创建数据库一样,有两类语句,简单的和复杂的。如果你曾经创建过名为A的数据库,当你再次创建数据表A时,会报错,但是如果加上 if not exists就不会再报错了,if not exists的意思是:如果不存在。如果你要创建的数据表名恰好是关键字,创建时会报错,加上一个反引号``将数据表名括起来就不会报错了。

    语法:

    create table [if not exists] `数据表名`(
        `字段名` 数据类型 [not null | null] [auto_increment] [primary key] [comment] ,
        `字段名` 数据类型 [default]
    ) engine = innodb;
    

    解释一下:

    1. 第二行的字段名相当于表格中的表头(比如姓名、班级、id之类的词)。
    2. 第二行数据类型涉及内容比较多,下篇文章会讲。
    3. 第二行not nullnull指的是是否可以为空,比如申请账号,密码不能为空,但是个性签名可以为空,就是数据是否能空着。
    4. 第二行的[]符号表示可以省略不写。
    5. 第二行auto_increment表示自增(自动增加),比如id,你创建下一条数据时,将id设为自增,则id会随着你创建的数据自动增加。
    6. 第二行primary key表示主键,一个数据表往往会有一个字段名是主键。
    7. comment是备注的意思,表示字段名的备注。
    8. 第三行default表示默认值,可以设置默认值,比如如果设置成绩的默认值为缺考,则填写成绩时,把某名同学的成绩空着不填,系统会自动填写缺考。
    9. 第四行engine表示引擎为innodb(一般初学者选择这个引擎就可以了)。除此之外,引擎还有myisam,memory引擎不同,存储数据的方式不同。

    说了这么多,不如举个例子:创建一个名为student的数据表,分别有id,name,phone,add,几个字段名。

    -- 简单写
    create table student (
        id int ,
        name varchar(20),
        phone varchar(20),
        `add` varchar(100)
    );
    -- 完整写
    create table student (
        id int auto_increment primary key comment '主键',
        name varchar(20) not null comment '姓名',
        phone varchar(20) comment '电话号码',
        `add` varchar(100) default '地址不详' comment '地址'
    ) engine = innodb;
    
    注意点:

    如果表中内容有中文,且在语法内容无误情况下在cmd中输入总是报错,此时或许你需要加一句set names gbk

    多学一招:

    如果你想在当前数据库中为别的数据库创建数据表,可以用点来实现,比如你当前使用的是AAschool数据库,你想为数据库BBschool创建一个数据表student,实现语句是create table BBschool.student;

    语法:
    create table 数据库名.数据表名;
    

    03显示创建表的语句

    语法:

    show create table `数据库名` [\G];
    

    \G与不写的区别是,后者显示结果显示的更清晰一些。

    04查看表结构

    -- 简单写
    desc `数据表名`;
    -- 复杂写
    describe `数据表名`;
    

    descdescribe的缩写,一般缩写更常用。

    05删除表

    语法:

    drop table [if exists] `表1` , `表2`;
    

    方括号表示可省略,内容简单,不再解释!

    06修改表

    要想修改表,首先要有表,详见附录一,修改表的例子基于附录一。

    (1)添加字段

    语法:

    alter table `表名` add [clumn] 字段名 数据类型 [完整性约束条件] [位置];
    #位置用[first | after 字段名]插在首列或字段名的后面
    

    关键词: addfirstafter

    比如:我想在name后插入性别sex,使用关键词after

    alter table student add sex char(1) comment '性别' after name;
    

    如果想在id的前面插入iid,使用first关键词插入首列。

    alter table student add iid int first;
    

    如果既不写关键词first也不写关键词after,默认插在最后。

    alter table student add last int ;
    

    (2)删除字段

    语法:

    alter table `表名` drop [clumn] `字段名`;
    

    比如:删除字段add

    alter table `student` drop `add`;
    

    (3)修改字段之改名改类型

    语法:

    alter table `表名` change [clumn] 字段名(改前) 字段名(改后) 数据类型;
    

    关键词:change

    例如:将phone改为cellPhone默认值666666.

    alter table student change phone cellPhone varchar(20) default '666666' comment '座机';
    

    注意:改过之后,你会发现Null属性变了,之前为no,不能为空,现在变为了YES可以为空,是因为改的时候,它自动改为默认的了。如果改的时候你没有写字段的约束性条件,会自动改为默认值。

    (4)修改字段之只改类型

    语法:

    alter table `表名` modify `字段名` [改后的数据类型] [改后的完整性约束性条件];
    

    关键词:modify

    例如:改nameint型,默认值为123。

    alter table student modify name int not null default 123;
    

    (5)修改引擎

    语法:

    alter table `表名` engine = 新引擎;
    

    (6)修改表名

    语法:

    alter table `表名` rename [to] `新表名`;
    

    过于简单,不再举例。

    附录一:

    create database if not exists `t_e_s_t` ;  #创建数据库t_e_s_t
    
    use `t_e_s_t`; #选择使用数据库t_e_s_t
    
    create table if not exists student ( #创建表student
        id int auto_increment primary key comment '主键',
        name varchar(20) not null comment '姓名',
        phone varchar(20) not null comment '电话号码',
        `add` varchar(100) default '地址不详' comment '地址'
    ) engine = innodb;
    
    desc student;
    

    相关文章

      网友评论

          本文标题:数据表的操作

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