首頁  >  文章  >  資料庫  >  MYSQL表操作

MYSQL表操作

齐天大圣
齐天大圣原創
2020-05-27 08:48:45134瀏覽

當一個函式庫建立好,接下來就需要建立表格了。建表不關要知道語法,還需要知道列類型、以及索引等。下面只講建表的語法,關於列類型等就不陳述了。

建表

建表語法:

CREATE TABLE [IF NOT EXISTS] 表名 (
    字段名1 列类型 [属性] [索引],
    字段名2 列类型 [属性] [索引],
    字段名3 列类型 [属性] [索引],
    ......
) [表类型] [表字符集]

這裡有個注意點,欄位名稱不要和mysql的關鍵字一致,如果真要這麼做的話,需要在字段名前後加上`符號,這個符號是在tab鍵的上面。

現在我們來建立一個user表,欄位有:使用者ID、使用者名稱、使用者密碼、手機號碼、性別、生日。

create table if not exists users(
  user_id int(10) unsigned auto_increment primary key,
  username varchar(16) not null default '' collate utf8mb4_bin comment '用户名',
  userpass char(32) not null collate utf8mb4_bin default '',
  mobile char(11) not null default '' unique,
  gender enum('未知', '男', '女') default '未知',
  birth date not null default '1900-01-01',
  index username(username)
) engine=innodb default charset utf8mb4 collate utf8mb4_general_ci;

通常,我們都會為每個表建立以唯一標識字段,這裡即user_id,方便以後的操作。這裡username及userpass欄位都設定了collat​​e,這是因為,這兩個欄位和其他不一樣,他們是區分大小寫的。另外,我們給該表建立了兩個索引,分別是mobile欄位以及username欄位。為mobile設定的是唯一索引,表示手機號碼不可以重複。給username建立一般索引,是為了加速透過username來找出的速度。

查看表格及表格結構

表建立完了後,我們想看看是不是真的建立成功了。可以透過show tables來查看目前庫下所有表。

mysql> show tables;
+---------------+
| Tables_in_job |
+---------------+
| users      |
+---------------+
1 row in set

該表確實生成成功了,但如果想看看表裡有哪些字段及屬性呢,那麼可以透過desc 表名來查看。

已清空及刪除表

#注意:刪除表是一個危險操作,謹慎操作!

刪除表格語法:DROP TABLE [IF EXISTS] 表格名稱

這裡就不做示範了。

清空表語法:TRUNCATE 表名

這裡和大家重點講下,透過truncate users和透過delete from users的差別。

  • truncate 相當於先將表格給刪除,然後再重新建立該表。表裡所有數據都重置了。

  • 而delete只是刪除表的數據,表的一些屬性信息,如自增id不會被重置。

修改表

#最後,我們來看看修改表是如何來做到的。把它放最後,是因為他的文法最繁雜,是表格操作中難度最大的一部分。它的語法如下:

ALTER TABLE 数据表名 alter_spec[,alter_spec] ... table options

我把常用操作做了整理,常見的語法及功能如下:

  • 新增欄位: ALTER TABLE 表名ADD 欄位名d1b29fdb464d56b7b3d73817f5909721 [FISRT|ALTER 列名]

  • #修改字段: ALTER TABLE 表名change|modify 列表d1b29fdb464d56b7b3d73817f5909721 注意:modify與change的差別,modify只能修改列類型,change除了修改列類型外還能改列名稱。

  • 刪除欄位: ... DROP 欄位名稱

  • # 新增索引名稱: ... ADD INDEX [INDEX_NAME] (index_col1,index_col2, ...)

  • 刪除索引: ...DROP INDEX INDEX_NAME

  • # 刪除主鍵: ... DROP PRIMARY KEY

  • # 新增主鍵: ... ADD PRIMARY KEY (INDEX_COL1,INDEX_COL2,...)

  • 新增唯一索引: ... ADD UNIQUE [index_name] (index_col1,index_col2,...)

  • 修改表名: RENAME newName

我們來實踐看看

##首先,新增欄位email,將它放在userpass後面。 ###
ALTER TABLE users ADD email VARCHAR(255) NOT NULL DEFAULT '' AFTER userpass;
###修改userpass,將長度改為64位元###
ALTER TABLE users MODIFY userpass CHAR(64) NOT NULL DEFAULT '' COMMENT '用户登录密码';
###修改userpass改為auth###
ALTER TABLE users CHANGE userpass `auth` char(32) NOT NULL DEFAULT '';
###給email新增普通索引###
ALTER TABLE users ADD INDEX eamil(email);
###刪除email索引###
ALTER TABLE users DROP INDEX eamil;
###刪除唯一索引,和刪除普通索引一樣###
ALTER TABLE users DROP INDEX mobile;
###新增唯一索引###
ALTER TABLE users ADD UNIQUE mobile(mobile);
或
ALTER TABLE users ADD UNIQUE (mobile);
###刪除主鍵,刪除前需要先將aoto_increment刪除才能刪除;###
ALTER TABLE users MODIFY user_id INT(10) NOT NULL;
ALTER TABLE users DROP PRIMARY KEY;
###添加主鍵###
ALTER TABLE users ADD PRIMARY KEY (user_id);
###上面只是講述了表格操作的一些語法,關於列類型以及索引等,大家有興趣的話可以翻閱相關資料。 ###

以上是MYSQL表操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn