mysql 查询表的key_MySQL学习笔记-查看表,修改表,删除表
/*看表*/
describe test --查看表的结构
show create table test --查看表的创建语句
show create table test \G --将创建的语句查询出来,并规范化显示(只在console下支持此命令,因为只有console下会错乱显示...)
/*改表*/
alter table test rename to testo; --将test改名为testo
alter table example0 rename to user;
select table_name from information_schema.tables where table_schema = 'test'--从整个系统中查询table_schema(数据库名)为test的所有表名(table_name)
---test消失,取而代之的是排在最后的是testo
describe user;--先查看下原来user表Name属性的数据类型
alter table user modify name varchar(30); --将testo表的name属性改为varchar(30)的数据类型
describe user;--验证一下,修改成功
----创建一个实验用表example1,补坑
create table example1(stu_id int(11) not null primary key,
stu_name varchar(20), --不指定default值,默认就是default null
stu_sex tinyint(1)
)
---修改表中字段的字段名与类型
use test;
describe example1--先查看下原来exmaple表stu_sex属性的数据类型
alter table example1 change stu_sex sex tinyint(2);--同时更改字段名和字段的数据类型
describe example1 --验证一下,,Complete
---增加字段
alter table user add phone varchar(20);--增加无约束的字段
describe user --检查结果,ok
alter table user add age int(4) NOT NULL --增加完整性约束的字段
/*增加字段时,如果能够加上完整性约束条件,一定要加上,可以保证此字段的安全性*/
describe user --检查结果,ok
alter table user add num int(8) primary key first--乖乖,这里出错了,之前自己抖机灵给Id定成主键了,现在无法增加num主键字段了。。
--先学习删除主键吧
alter table user drop primary key--改动user表drop掉其primary key
--重新增加新的主键字段
alter table user add num int(8) primary key--报错,提示出现组合字段
--查看一下
describe user --竟然没有drop掉主键。。‘一个表中,只可有一个自增字段,且那个字段必须被定位成主键’
--所以,先想法删除自增字段,貌似只能重新定义字段,但是在生产环境下怎么办、?先备份再insert into a select * from b?
alter table user change id id int(11)
--再看一下
describe user--ok,去掉了自增属性
--现在尝试删主键
alter table user drop primary key--ok,Command(s) completed successfully.
--重新尝试增加新的主键字段
alter table user add num int(8) primary key --ok,Command(s) completed successfully. --后面忘记加first位置限定了
--检查一下
describe user --num字段成功的加到了表中,但排到了最后一个字段...
alter table user add address varchar(30) not null after phone --在phone字段后面增加一个address字段
/*删除字段*/
alter table user drop id --drop掉user表的Id字段
--检查一下
describe user --没有了
/*修改字段的排列位置*/
alter table user modify num int(8) first --先把之前的坑填上
describe user --改得很不错,润物细无声
alter table user modify name varchar(30) first
describe user --恩,这个也改对了
/*修改字段到指定位置*/ /*注意,modify时把数据类型也附上*/
alter table user modify sex tinyint(1) after age --将user表的sex字段修改到age字段之后
--如果不加字段类型行不行?
describe sc --找个临时表实验一下
alter table user modify grade after sNo --不行,看来数据类型起到隔断的作用。。。
/*修改存储引擎*/
show create table user --修改之前先查看下创建语句是如何定义存储引擎的
--engine=InnoDB
alter table user engine = MyISAM--更改存储引擎为myisam,Command(s) completed successfully.
--查看修改之后的创建语句
show create table user --engine=MyISAM
/*删除外键约束*/
show create table example3 --先查找外键的名称,为'c_fk'
alter table example3 drop foreign key c_fk --无引号'',Command(s) completed successfully.
--检查一下
show create table example3--没有外键定义了
/*删除表*/
--删之前先确认下有没有
describe example5--还真没有
--创建一个吧
create table example5(id int(11) not null primary key,
stu_id int(11) default null unique,--如图,key列是UNI,是唯一性约束
name varchar(20)
)
--删除表
drop table example5 --Command(s) completed successfully.
--看看还有么有
describe example --OK,不存在了ErrorMessage: Table 'test.example' doesn't exist
/*删除被外键依赖着的表*/
--先补坑
create table example4(id int(11) primary key,
name varchar(20) not null,
stu_id int(11) default null,
constraint d_fk foreign key(stu_id) references example1(stu_id)--报错,此处的外键名称不应加''
) ENGINE = INNODB default charset = utf8
--试试被删除的主表example1
drop table example1 --报错,ErrorMessage: Cannot delete or update a parent row: a foreign key constraint fails
--先删除被关联的子表外键
alter table example4 drop foreign key d_fk--Command(s) completed successfully.
--检查子表外键是否被删除
use test
show create table example4 --外键定义语句被删除
--继续删除被依赖的主表
drop table example1 --Command(s) completed successfully.
--查看是否被删除
describe example1--OK,ErrorMessage: Table 'test.example1' doesn't exist
mysql 查询表的key_MySQL学习笔记-查看表,修改表,删除表相关推荐
- Mysql基础知识:创建、查看、修改和删除表
Mysql 创建.查看.修改和删除表 1. 创建表 创建表的语法形式: CREATE TABLE 表名 ( 属性名 数据类型 约束条件,属性名 数据类型 约束条件,...) ENGINE=存储引擎名 ...
- MySQL学习笔记-约束以及修改数据表
MySQL学习笔记-约束以及修改数据表 约束: 按功能划为: NOT NULL , PRIMARY KEY , UNIQUE KEY , DEFAULT , FOREIGN KEY 按数据列的数目划为 ...
- 《姜承尧的MySQL实战宝典》学习笔记
<姜承尧的MySQL实战宝典>学习笔记 1 表结构设计 1.1 数字类型 1.1.1 整形类型 1.1.2 浮点类型和高精度型 1.1.3 实战--整型类型与自增设计 1.1.4 实战-- ...
- mysql的sql语言学习笔记总结
文章目录 SQL -1.SQL通用语法 -2.SQL分类 -3.DDL -4.DML -5.DQL -6.DCL SQL -1.SQL通用语法 SQL语句可以单行或多行书写,以分好结尾 SQL语句可以 ...
- MySQL实战45讲学习笔记
文章目录 MySQL实战45讲-学习笔记 01 基础架构:一条SQL查询语句是如何执行的? mysql逻辑架构 连接器 查询缓存 分析器 优化器 执行器 02 日志系统:一条SQL更新语句如何执行 r ...
- Windows保护模式学习笔记(八)—— 页目录表基址/页表基址
Windows保护模式学习笔记(八)-- 页目录表基址/页表基址 要点回顾 一.页目录表基址 实验:拆分线性地址C0300000,并查看其对应的物理页 第一步:打开一个进程,获得它的Cr3 第二步:查 ...
- 从零开始带你成为MySQL实战优化高手学习笔记(一)
重复是有必要的. 很多新入职的小朋友可能和现在的我一样,对数据库的了解仅仅停留在建库建表增删改查这些操作,日常工作也都是用封装好的代码,别说底层原理了,数据库和系统之间是如何工作都不是很懂. 长此以往 ...
- 【EF学习笔记07】----------加载关联表的数据 贪婪加载
[EF学习笔记07]----------加载关联表的数据 贪婪加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 贪婪加载 //贪婪加载 using (var db = new Entitie ...
- HiveQL学习笔记(三):Hive表连接
本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...
最新文章
- 鸿蒙os电视是安卓,适配鸿蒙OS系统的机型又增加了!和安卓系统相比鸿蒙有哪些特点?...
- zabbix自动发现规则实现批量监控主机的TCP监听端口
- 现在c++链接oracle,C++ 连接Oracle
- 项目开发时前端及数据库遇到的问题
- QT的QWizard类的使用
- 老李说事:性能测试服务日记
- 基于Verilog的4-PAM
- Linux基础——Linux 基本指令 nano 和 cat
- Python中__init__和__del__方法介绍
- 6个文件写出Tomcat核心功能(新手必看)
- 大数据hadoop入门 总结图
- 三菱plcascll转换16进制_三菱ASCII码指令
- stm32编程初始化设备步骤
- STM32F103C8T6核心开发板下,通过TIM3和TIM4输出PWM波形实现2个 LED呼吸灯的效果
- 计算机软件卡死,必看!电脑运行卡或软件卡死无响应,怎么办?
- 二极管在电路设计中的应用
- Jenkins+Jmeter+Ant 生成接口测试报告并发送邮件
- ITPUB一周精选2007.11.16
- ssm基于Java和MySql的产业信息管理系统的设计与实现毕业设计源码260839
- 《Adobe After Effects CC完全剖析》——时间设置