MySQL表的操作

创建表

语法:

sql 复制代码
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field表示列名
  • datatype表示列的类型
  • character set字符集,如果不指定字符集,默认为当前数据库的字符集
  • collate校验规则
  • engine搜索引擎,如果不指定,则选用配置文件的引擎

创建表示例

sql 复制代码
create  table  users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;

此时在MySQL的默认存储路径/var/lib/mysql/,对应我们当前数据库user_db的路径/var/lib/mysql/user_db下就会新增三个文件:

  • .sdi是数据库镜像文件
  • .MYD是表数据
  • .MYI是表索引
  • 8.0以前的MySQL没有.sdi文件而是 .frm表结构

我们可以以默认形式创建一个表:

sql 复制代码
create  table  users2 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
);

此时我们的搜索引擎就是InnoDB。

可以看到InnoDB引擎形式创建的表只会生成一个.ibd文件。

  • .ibd 文件是 MySQL InnoDB 存储引擎的独立表空间文件

查看表的结构

语法:

sql 复制代码
desc 表名;
  • Fileld 字段名字
  • Type 字段类型
  • Null 是否允许为空
  • Key 索引类型
  • Default 默认值
  • Extra 扩充

此外,我们还能用:

sql 复制代码
show create table 表名;

来显示创建语句:

有很多-妨碍我们,我们可以在show create table 表名后加上\G去掉这些字符:

此时\G后面就不用跟;了。

注意到我们的user2就是默认字符集,默认引擎。

修改表

我们可以修改表的名字,字段名字,字段大小之类的。

语法:

sql 复制代码
ALTER TABLE  tablename ADD (column datatype [DEFAULT expr][,column 
datatype]...);
ALTER TABLE  tablename MODIfy (column datatype [DEFAULT expr][,column 
datatype]...);
ALTER TABLE  tablename DROP (column);

如我们先在users中插入两条数据:

sql 复制代码
insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');
  1. 此时我们可以添加一个字段来存储图片保存路径:
sql 复制代码
alter table users add img_path varchar(100) comment '图片路径' after birthday;

这里的after就是指img_path这一列在birthday之后.

  1. 修改name的类型长度:
sql 复制代码
alter table users modify name varchar(60);

注意我们再查看创建语句:

细心的读者已经发现了,我们的comment描述被覆盖了。所以modify是覆盖式的修改,因此我们修改的时候要把类型打全哦,包括之前的comment。

  1. 删除password列:
sql 复制代码
alter table users drop password;

此时password的数据都丢失了,所以不要随意删除列。

4.修改表名

sql 复制代码
alter table users rename (to) employee;

此时我们的文件名也会跟着一起修改:

5.将name列修改为xingming:

sql 复制代码
alter table employee change name xingming varchar(60);

注意把类型带上哦。

删除表

语法:

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

如:

以上我们对表操作,除了插入数据都是DDL【data definition language】数据定义语言。

相关推荐
倔强的石头_1 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
阿巴斯甜1 天前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker1 天前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95271 天前
Andorid Google 登录接入文档
android
黄林晴1 天前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab2 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android
阿巴斯甜2 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇2 天前
AOSP15 Input专题InputReader源码分析
android