首页 > 数据库 >2)MySQL表管理之创建删除、约束实施、自增长字段、复制表结构

2)MySQL表管理之创建删除、约束实施、自增长字段、复制表结构

时间:2023-05-23 20:12:21浏览次数:56  
标签:删除 格式 数据类型 约束 复制 MySQL table 字段名

一、表操作:

  • 创建表:
create table tablename(
    字段名1 数据类型,
    ...  
    字段名n 数据类型                    
);
  • 查看当前数据库中所有表:
show tables;
  • 查看指定表的结构:
desc[ribe] table_name;
  • 查看指定表的详细信息:
show create table table_name;
  • 删除表:
drop table table_name;

效果图:

二、 数据类型:

  • 整数类型:有五种类型, unsigned修饰无符号整数;

  •  小数类型:

精确小数类型;decimal(length, precision);

浮点数类型:float、double;

  • 字符串类型:

定长字符串:char(n)

边长字符串:varchar(n)

  • 日期时间类型:

三、 约束:

  • 主键约束 primary key

1)单一字段作主键格式:字段名数据类型 【其他约束条件】 primary key;

注意:主键字段的值不允许重复,不允许为空,一个表中不允许多个主键;

2)多个字段作主键格式:primary key(字段名1,字段名2);

绑定一起做主键;

组合键 class 与 日期 不能有同时重合的;

  • 非空约束 not null

格式:字段名 数据类型 not null

 可以看到null列下,字段stu_name显示no;

  • 默认约束 default

格式:字段名 数据类型 【其他约束条件】 default 默认值

  • 唯一约束 unique

格式:字段名 数据类型 unique

unique 可以为空,为空可以多个,

 

注意::::以上四个约束是一张表中的一个或多个字段进行约束;多个约束条件的约束顺序可以任意;

  • 外键约束 foreign key、references

这个是两张表之间的约束;主从表,主表定义字段可以取到的值,从表只能从这些值中取值,不能另外增加;一般是字段是唯一的,主键;

格式:constraint 约束名 foreign key(从表中的字段名或字段列表) references 主表(字段名或字段列表)

先创建主表,再创建从表;

 由上图可以看出,没有第三个班级,从表无法创建此类student 对象;

但是可以先置为空;

 删除表时,需要先删除从表,再删除主表;

四、自增长字段:

要求数据库表的某个字段依次递增,且不重复;可以使用自增长字段;类型必须是整形,第一次插入一个null值,或0,则在表中的记录为1;自增型字段必须是主键;

格式:字段名 数据类型 auto_increment

 五、复制表结构:

格式:第一种只复制表结构,有外界约束的字段无法复制;第二种复制表结构和数据;

create table 表名 like 源表
create table 表名 select * from 源表

第一种复制,就是复制空壳,除了外键约束之外的其他约束都会复制过来;

 第二种复制方式,就是备份数据,但是只有非空约束起作用,其他约束不会复制;

 

标签:删除,格式,数据类型,约束,复制,MySQL,table,字段名
From: https://www.cnblogs.com/xuan01/p/17425368.html

相关文章

  • MySQL学习基础篇Day8
    5.7多表查询案例数据环境准备:createtablesalgrade(gradeint,losalint,hisalint)comment'薪资等级表';insertintosalgradevalues(1,0,3000);insertintosalgradevalues(2,3001,5000);insertintosalgradevalues(3,5001,8000);insertin......
  • 双重循环----删除(避坑)
    1、双重for循环删除有坑要注意在正向遍历删除时,数组长度会变短,数据下标会变化,数据向前移动会漏掉一些数据的比对解决办法:换成逆向遍历2、js从一个数组中删除另一个数组中存在的元素//从一个数组中删除另一个数组中存在的元素letarray=[{id:11},{id:22},{id:33},{......
  • flask_SQLAlchemy 出现了 Lost connection to MySQL server during query Mysql主机连
    使用pythonflask框架 flask_sqlalchemy时出现了LostconnectiontoMySQLserverduringqueryMysql主机连接超时的问题由于Mysql会定时处理长时间未连接使用的连接池具体时长可通过查看showvariableslike'%timeout%' wait_timeout为超时时长,这里的时间时120秒......
  • MYSQL设置密码时显示Failed! Error: SET PASSWORD has no significance for user 'roo
    ​ 用这个命令进入mysqlsudomysql在sql命令行输入以下命令回车,你就可以把密码改成mynewpasswordALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordby'mynewpassword';exit回到终端命令行,输入:sudomysql_secure_installation输入刚才的......
  • MYSQL设置密码时显示Failed! Error: SET PASSWORD has no significance for user 'roo
    ​ 用这个命令进入mysqlsudomysql在sql命令行输入以下命令回车,你就可以把密码改成mynewpasswordALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordby'mynewpassword';exit回到终端命令行,输入:sudomysql_secure_installation输入刚才的......
  • MySQL多版本并发控制MVCC
    Iwillalwaysbehereforyou目录一,什么是MVCC二,MVCC的具体工作流程三,MVCC在不同隔离级别下的读取规则四,MVCC如何解决幻读五,next-keylock机制的具体实现六,next-keylock机制的优化规则和特殊情况的具体例子 一,什么是MVCCMVCC是多版本并发控制的缩写,是MySQL......
  • 支持复制粘贴word公式的百度HTML编辑器
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action名称 */    "wordFieldName":"upfile",/* 提交的......
  • mysql、redis、mongo本地docker部署命令备忘
    1mysqldocker环境部署####获取镜像dockerpullredis####启动mysqldockerrun--name=mysql-it-p3306:3306-eMYSQL_ROOT_PASSWORD=123456-dmysql####登录mysql-h127.0.0.1-P3306-uroot-p1234562redisdocker环境部署####官⽅方指引https://hub.docker.c......
  • MySQL数据库统计常用语句
    1、查看所有数据库容量大小selecttable_schemaas'数据库',sum(table_rows)as'记录数',sum(truncate(data_length/1024/1024,2))as'数据容量(MB)',sum(truncate(index_length/1024/1024,2))as'索引容量(MB)'frominformation_schema.tablesgro......
  • mysql高版本(8.0)sql_mode = only_full_group_by的解决办法
    1、原理层面这个错误一般发生在mysql5.7以及5.7以上的版本中,其原因是mysql的默认配置中,sql_mode=“ONLY_FULL_GROUP_BY”这个配置严格执行了‘SQL92标准’,所以很高网站维护人员在升级mysql版本时,都会修改sql_mode的配置,使其能兼容。2、sql层面从sql层面来说,输出的结果......