MySQL数据库基础

表结构的管理

  1. 数据类型

    • 整数类型
    • 小数类型
    • 字符串类型
    • 日期类型
    • 复合类型
    • 二进制类型

  1. 创建表

    使用表语句:use table(表名)
    

约束可分为:

  • 主键约束 (primary key)
  • 非空约束(not null)
  • 检查约束(check)
  • 默认约束(defualt)
  • 唯一性约束(unique)
  • 外键约束(foreign key)

  • 主键约束:
    1)单个主键: 以student表为例 ->>student_no char(11) primary key
    2)复合主键:primary key (字段名1,字段名2)

  • 外键约束: 用于定义表语表之间的某种关系
    - eg:
    表A外键字段的取值,要么是null,要么是表B主键字段的取值(A为B的子表,反之亦然)
    语法规范:
    constrain 约束名 foreign key (A字段名或字段列表)references B( 字段名或字段列表)[on delete 级联选项] [on update 级联选项]
    - 级联选项为四种:
    - cascade:父表作删除与更新时,子表与之对应的记录作同样操作
    - set null:父表作删除与更新时,子表与之对应的外键值自动设为null
    - no action :父表作删除与更新时,子表存在记录则操作失败
    - restrict :与 no action 一致,默认选项

ps:事实上MySQL并不支持检查约束,其他的约束基本跟主键约束的设置方式一样,可以百度解决下。。。。

设置自增字段:

    字段名 数据类型 auto_increment
    eg:
        class_no auto_increment primary key 

其他设置:

        1>engine=存储引擎
        2>default charset=字符集类型
        3>pack_keys=压缩类型 (1,0,default)->>可以百度下

3.清空表
truncate 表名


4.复制一个表结构

  • 方法一 : create table 新表名 like 源表名

    如: create table student1 like student 
    
  • 方法二: create table 新表名 select * from 源表

    如: create table student1 select * from student
    

    ps:这条语句可以将源表中的表结构和所有记录都复制到新表
    如果仅仅需要复制表结构:

     create table student1 select * from student where 1=2
    

以上的复制方法都无法复制表的约束条件,如需要可以借助mysqldump工具


5.修改表结构

对字段的操作:
    删: alter table 表名 drop 字段名
    添: alter table 表名 add 字段名-数据类型[约束条件][first|after旧字段名]
     alter table person_name char(10) not null after person_no
    修改:
    > 修改字段名和数据类型
        alter table 表名 旧字段名 新字段名 数据类型
    > 仅修改字段数据类型
        alter table 表名 modify 字段名 数据类型

约束条件的操作
    添: alter table 表名 add constraint  约束名 约束类型(字段名)
        alter table person add  constraint name unque (name) 
    删: alter table 表名 foreign key 约束名

修改表的其他操作

alter table 表名 engine = 新的存储引擎类型
alter table 表名 default charset = 新的字符集
alter table 表名 auto_increment = 新的初始值
alter table 表名 pack_keys = 新的压缩类型 (pack_keys仅对MyISAM存储引擎有效)
修改表名:
rename table 旧表名 to 新表名

对于表的删除这里不再罗列,如果存在约束时,注意删除表的顺序即可。


索引

  • 在已有表创建索引
    语法一:

    create [unique|fulltext] index 索引名 on 表名(字段名[长度] [asc|desc])
    

    语法二:

    alter table 表名 add [unique|fulltext] index 索引名(字段名[长度] [asc|desc])
    

    alter table course add fulltext index description_fulltext (description)  等同于 create fulltext index description fulltext on course (description)

删除索引:

drop index 索引名 on 表名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值