04 表的操作

目录

  1. 创建
  2. 查看
  3. 修改
  4. 删除

1. 创建

语法:

CREATE TABLE table_name (

field1 datatype,

field2 datatype,

field3 datatype

) character set 字符集 collate 校验规则 engine 存储殷勤;

说明:

field,表示列名

datatype,表示列的类型

character set 字符集,如果没有指定,以数据库的字符集为准

collate 校验规则,如果没有指定,以数据库的校验规则为准

案例

创建一个表

create table users (

id int,

name varchar(20) comment '用户名',

password char(32) comment '密码是32位的md5值',

birthday date comment '生日'

) character set utf8 engine MyISAM;

最后一行可以省略,也可以写为charset=utf8这种形式

  • 说明

不同的存储引擎,创建表的文件不一样

users表存储是MyISAM,在数据目录中有三个不同的文件,分别是:

1.users.frm:表结构

2.users.MYD:表数据

3.users.MYI:表索引

备注:创建一个engine时innodb的数据库,观察存储目录

2. 查看

先确保所在的数据库是正确的

select database();

查看库里有哪些表

show tables;

查看表结构

desc 表名;

更详细的查看

show create table 表名 \G

加G可以将不需要的字符过滤掉

会自动将我们的语句转化为规范完整的操作记录存储起来,字段加单引号是为了防止和关键字重复

查看表内容

select * from 表名;

3. 修改

在实际开发中,经常修改某个表的结构,比如字段名字,字段大小,类型,表的字符集类型,表的存储引擎等。添加字段,删除字段等待,就需要修改表

ALTER TABLE tablename ADD (colum datatype [DEFAULT expr][,colum datatype]...); // 添加列

ALTER TABLE tablename MODIFY (column datatype [DEFAULT expr][,column datatype]...) // 修改列,需要完整定义

ALTER TABLE tablename DROP (column); // 删除列

ALTER TABLE tablename rename 表名; // 重命名

ALTER TABLE tbalename change name 列名 datatype; // 修改列名,新字段需要完整定义

案例

  • 添加两条记录

mysql> insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01

04');

  • 添加字段,保存图片路径

alter table users add assets varchar(100) comment '图片路径' after birthday;

ater表示插入在birthday的后面

插入后,对原有数据没影响,新增的这一列为空

  • 修改name,长度改为60

alter table users modify name varchar(60);

长度改的更长,不会影响原有数据,但之前的comment内容没有了

alter是覆盖操作,修改一列需要重新完整定义

  • 删除password列

alter table users drop password;

删除字段一定要小心,对应的列数据都没了

  • 修改表名为employee

alter table users rename to employee;


to可以省略

  • 将name列修改为xingming

alter table employee change name xingming varchar(60); // 新字段完整定义

4. 删除

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

drop table users;

一般不要轻易删除和修改,当项目到一定程度时,修改一点其他应用的东西要改很多。在前期创表的时候尽量都确定好

库和表的操作都属于定义类的操作,语言分类是DDL指令

相关推荐
superonion06203 分钟前
【DB2】SQL1639N 处理
数据库
x-cmd3 分钟前
[250521] DBeaver 25.0.5 发布:SQL 编辑器、导航器全面升级,新增 Kingbase 支持!
数据库·sql·编辑器·kingbase·dbeaver
GUIQU.10 分钟前
【node.js】数据库与存储
数据库·node.js
一勺菠萝丶1 小时前
Redis实现分布式锁的进阶版:Redisson实战指南
数据库·redis·分布式
Lucifer三思而后行1 小时前
OGGMA 21c 微服务 (MySQL) 安装避坑指南
mysql·adb·微服务
星辰离彬2 小时前
线上 Linux 环境 MySQL 磁盘 IO 高负载深度排查与性能优化实战
linux·运维·服务器·数据库·mysql·性能优化
Lao A(zhou liang)的菜园2 小时前
Oracle BUFFER CACHE内存不足的优化思路
数据库·oracle
伍六星2 小时前
基于JDBC的信息管理系统,那么什么是JDBC呢?
java·数据库·后端·jdbc·数据库连接
嘵奇3 小时前
AliSQL:阿里巴巴开源数据库的技术革新与应用实践
数据库·开源
声声codeGrandMaster6 小时前
Django之验证码功能
数据库·后端·python·django