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指令

相关推荐
一 乐28 分钟前
民宿|基于java的民宿推荐系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·源码
鹏码纵横30 分钟前
已解决:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常的正确解决方法,亲测有效!!!
java·python·mysql
美林数据Tempodata2 小时前
大模型驱动数据分析革新:美林数据智能问数解决方案破局传统 BI 痛点
数据库·人工智能·数据分析·大模型·智能问数
野槐2 小时前
node.js连接mysql写接口(一)
数据库·mysql
Zzzone6833 小时前
PostgreSQL日常维护
数据库·postgresql
chxii3 小时前
1.13使用 Node.js 操作 SQLite
数据库·sqlite·node.js
冰刀画的圈3 小时前
修改Oracle编码
数据库·oracle
这个胖子不太裤3 小时前
Django(自用)
数据库·django·sqlite
麻辣清汤3 小时前
MySQL 索引类型及其必要性与优点
数据库·mysql
2501_915374354 小时前
Neo4j 图数据库安装教程(2024最新版)—— Windows / Linux / macOS 全平台指南
数据库·windows·neo4j