MYSQL表操作

齐天大圣
發布: 2020-05-27 09:05:14
原創
108 人瀏覽過

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

建表

建表語法:

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欄位都設定了collate,這是因為,這兩個欄位和其他不一樣,他們是區分大小寫的。另外,我們給該表建立了兩個索引,分別是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 欄位名 <建表語句> [FISRT|ALTER 列名]

  • #修改字段: ALTER TABLE 表名change|modify 列表 <建表語句> 注意: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中文網其他相關文章!

相關標籤:
1
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!