《剑指数据库:MySQL表法纵横录》

王柳  金牌会员 | 2025-2-20 06:22:10 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 992|帖子 992|积分 2976

​​​​​​​ 



一、前言 

           本文将为各人带来MySQL中常见 表的操作,盼望各人可以或许从中有所劳绩!!!
  二、表的操作

1. 创建表

语法:
  1. CREATE TABLE table_name (
  2. field1 datatype,
  3. field2 datatype,
  4. field3 datatype
  5. ) character set 字符集 collate 校验规则 engine 存储引擎;
复制代码
  阐明:
  ●field 表现列名
  ●datatype 表现列的类型
  ●character set 字符集,假如没有指定字符集,则以地点数据库的字符集为准
  ●collate 校验规则,假如没有指定校验规则,则以地点数据库的校验规则为准
  2. 创建表案例

  1. create  table users (
  2.   id int,
  3.   name varchar(20) comment '用户名',
  4.   password char(32) comment '密码是32位的md5值',
  5.   birthday date comment '生日'
  6. ) character set utf8 engine MyISAM;
复制代码
  阐明:
  差别的存储引擎,创建表的文件不一样。
  users 表存储引擎是 MyISAM ,在数据目中有三个差别的文件,分别是:
          ★ users.frm:表结构
          ★ users.MYD:表数据
          ★ users.MYI:表索引
  
  

3. 检察表的结构

  1. desc 表名;
复制代码
示例:

4. 修改表

   在项目实际开发中,经常修改某个表的结构,好比字段名字,字段大小,字段类型,表的字符集类型, 表的存储引擎等等。我们尚有需求,添加字段,删除字段等等。这时我们就必要修改表。
  1. ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
  2. datatype]...);
  3. ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
  4. datatype]...);
  5. ALTER TABLE tablename DROP (column);
复制代码
案例:
●在users表添加二条记录
  1. mysql> insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-
  2. 04');
复制代码
●在users表添加一个字段,用于保存图片路径
  1. mysql> alter table users add assets varchar(100) comment '图片路径' after
  2. birthday;
复制代码
  1. mysql> desc users;
  2. +----------+--------------+------+-----+---------+-------+
  3. | Field   | Type         | Null | Key | Default | Extra |
  4. +----------+--------------+------+-----+---------+-------+
  5. | id       | int(11)     | YES |     | NULL   |       |
  6. | name     | varchar(20) | YES |     | NULL   |       |
  7. | password | char(32)     | YES |     | NULL   |       |
  8. | birthday | date         | YES |     | NULL   |       |
  9. | assets   | varchar(100) | YES |     | NULL   |       |
  10. +----------+--------------+------+-----+---------+-------+
复制代码
插入新字段后,对原来表中的数据没有影响:
  1. mysql> select * from users;
  2. +------+------+----------+------------+-------+
  3. | id   | name | password | birthday   | assets |
  4. +------+------+----------+------------+-------+
  5. |   1 | a   | b       | 1982-01-04 | NULL |<= 原来的数据仍然存在
  6. |   2 | b   | c       | 1984-01-04 | NULL |
  7. +------+------+----------+------------+-------+
复制代码
●修改name,将其长度改成60
  1. mysql> alter table users modify name varchar(60);
复制代码
  1. mysql> desc users;
  2. +----------+--------------+------+-----+---------+-------+
  3. | Field   | Type         | Null | Key | Default | Extra |
  4. +----------+--------------+------+-----+---------+-------+
  5. | id       | int(11)     | YES |     | NULL   |       |
  6. | name     | varchar(60) | YES |     | NULL   |       |<= 长度变成60
  7. | password | char(32)     | YES |     | NULL   |       |
  8. | birthday | date         | YES |     | NULL   |       |
  9. | assets   | varchar(100) | YES |     | NULL   |       |
  10. +----------+--------------+------+-----+---------+-------+
复制代码
● 删除password列
   注意:删除字段肯定要小心,删除字段及其对应的列数据都没了
  1. mysql> alter table users drop password;
  2. mysql> desc users;
  3. +----------+--------------+------+-----+---------+-------+
  4. | Field   | Type         | Null | Key | Default | Extra |
  5. +----------+--------------+------+-----+---------+-------+
  6. | id       | int(11)     | YES |     | NULL   |       |
  7. | name     | varchar(60) | YES |     | NULL   |       |
  8. | birthday | date         | YES |     | NULL   |       |
  9. | assets   | varchar(100) | YES |     | NULL   |       |
  10. +----------+--------------+------+-----+---------+-------+
复制代码
●修改表名为employee
  1. mysql> alter table users rename to employee;
复制代码
  1. mysql> select * from employee;
  2. +------+------+------------+-------+
  3. | id   | name | birthday   | assets |
  4. +------+------+------------+-------+
  5. |    1 | a   | 1982-01-04 | NULL |
  6. |    2 | b   | 1984-01-04 | NULL |
  7. +------+------+------------+-------+
复制代码
to:可以省掉
●将name列修改为xingming
  1. mysql> alter table employee change name xingming varchar(60); --新字段需要完整
  2. 定义
复制代码
  1. mysql> desc employee;
  2. +----------+--------------+------+-----+---------+-------+
  3. | Field   | Type         | Null | Key | Default | Extra |
  4. +----------+--------------+------+-----+---------+-------+
  5. | id       | int(11)     | YES |     | NULL   |       |
  6. | xingming | varchar(60) | YES |     | NULL   |       |
  7. | birthday | date         | YES |     | NULL   |       |
  8. | assets   | varchar(100) | YES |     | NULL   |       |
  9. +----------+--------------+------+-----+---------+-------+
复制代码
5. 删除表

语法格式:
  1. DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
复制代码
示例:
  1. drop table t1;
复制代码
三、结语

           到此为止,本文关于MySQL中表的操作内容到此竣事了,如有不足之处,欢迎小同伴们指出呀!
           关注我 _麦麦_分享更多干货:_麦麦_-CSDN博客
           各人的「关注❤️ + 点赞
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表