上一篇主要講的是關於Mysql的分支MariaDB在Linux下的安裝 順利安裝完成的小伙伴,就可以接著來試試SQL的魅力了
紅色為命令 藍色為自定義名
查看數據庫
MariaDB [(none)]> show databases; #查看數據庫列表 +--------------------+ | Database | +--------------------+ | information_schema | #數據庫名稱 例:本地有四個數據庫 (數據庫裡保存的是table 數據表) | human | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.00 sec)
首先我們先創建一個數據庫
創建數據庫
MariaDB [(none)]> create database data_name; #創建數據庫 data_name為創建的自定義數據庫名字
(注:創建的database不加s後綴,新手可別把查看數據庫命令的databases搞混了) Query OK, 1 row affected (0.00 sec) #表示SQL語句執行成功
然後我們進入剛才創建的數據庫
MariaDB [(none)]> use data_name; #進入數據庫庫 data_name表示進入的數據庫名 Database changed #當前進入的數據庫已經更改
這裡首先要講的是簡單的創建
在數據庫中創建一個數據表
MariaDB [data_name]> create table table_name (id int not null ,name varchar(20)); #創建簡單數據表 table_name 表示創建的數據表名字 id表示這個數據表第一列的列名 int表示這列的可插入數據為整型 not null 設置約束為不可為空5種約束 name表示第二列的列名 varchar(20)為字符類型 20是這列數據字符長度只能最多是20 Query OK, 0 rows affected (0.06 sec)
查看一下我們數據庫裡新建的table表
MariaDB [data_name]> show tables; #查看當前數據庫的所有數據表(包括視圖表) +---------------------+ | Tables_in_data_name | +---------------------+ | table_name | # table數據表的名字 +---------------------+ 1 row in set (0.00 sec)
查看數據表的結構的兩種方式
方法一(適合查看此table數據表有什麼列名和約束)
describe 可以用desc縮寫來代替
MariaDB [data_name]> describe table_name; #查看table數據表結構的方法一 (直觀可以看清楚數據表的列與綁定的約束) +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | #field :列名 type:插入數據類型 null:是否為非空約束 NO說明不能為空(插入數據如果為空,插入SQL會失敗) +-------+-------------+------+-----+---------+-------+ #KEY: 主鍵約束或外鍵約束 (空表示沒有約束) default:表示當插入數據為空時默認插入 (空代表w為null) | id | int(11) | NO | | NULL | | #Extra: 中出現的信息一般不是太重要 對Extra等列意義深究的請查看別人的博客點擊此處 | name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
方法二(適合查看細節 查詢約束名的好辦法)
MariaDB [data_name]> show create table table_name; #查看table數據表的創建的SQL語句 (可以看出當時這個數據表創建而使用的SQL語句方便查閱約束名和設置的約束其他的細節) +------------+-------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +------------+-------------------------------------------------------------------------------------------------------------------------------+ | table_name | CREATE TABLE `table_name` ( # ENGINE: 表示這個表類型,目前Mysql最常用的是MyISAM、InnoDB兩種表類型 各有各優勢 兩表的區別點擊這裡 | `id` int(11) NOT NULL, # CHARSET: 表示這個表的字符編碼為Latin1(不支持中文)可以設置主流的gb2312 或utf8修改編碼的具體方式點擊這裡 | `name` varchar(20) DEFAULT NULL # 有關中文字符編碼的一勞永逸具體的設定解決辦法在這 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +------------+-------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
是不是感覺上面的表好難受,怎麼看都不爽,治療強迫症的患者們,myslq 提供了強迫症的治療方法 ↓
MariaDB [data_name]> show create table table_name\G # 這裡吧;改成了\G 發現顯示的樣式又不同了,更加養眼了(強迫症的福音) \G不光是這裡,
所有顯示的的SQL語句都可以用\G來代替; *************************** 1. row *************************** Table: table_name Create Table: CREATE TABLE `table_name` ( `id` int(11) NOT NULL, `name` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
************************************** 我是動感光波****************************************
數據表的字段修改
喝杯茶,休息一下
有一天項目經理說忘了告訴你這個表缺少重要的一個字段,友誼的小船說翻就翻,但是別擔心重做,SQL提供了反悔的機會可以任意添加或刪除列
數據表字段的添加
MariaDB [data_name]> alter table table_name add phone varchar(11); # 往數據表table_name添加一列 phone的 數據類型為字符串 最大長度為11 Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0
數據表字段的刪除
MariaDB [data_name]> alter table table_name drop phone; # 刪除數據表table_name中的phone列
(這比添加簡單多了,果然毀滅比創造要簡單多了 但是一切的創造不都是建立在毀滅之後嗎?) Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0
如果是一個列的設置出錯刪除再修改一遍不會是很麻煩嗎?這裡有懶人辦法 , 刪除添加二合一 小霸王修改機
數據表字段的修改
MariaDB [data_name]> alter table table_name change name username varchar(20); # 更改數據表table_name 的name字段名 為username 更改數據類型varchar 最大長度為20 Query OK, 0 rows affected (0.05 sec) 後面可以修改添加約束 Records: 0 Duplicates: 0 Warnings: 0
這裡還有其他方法,可以改變類型卻不能改變字段名的SQL語句方法
alter table table_name modify name char(20);
這種方法可以用change的新舊名字相同的方法來實現相同的效果,即change為小萬能
最後一個 懶人神器 ——模板建表
一 拓展表的好助手
MariaDB [data_name]> create table copy1_table_name like table_name; # 復制表結構table_name創建copy1_table_name 表(這種方法不復制此表的內部數據) Query OK, 0 rows affected (0.06 sec)
二 備份表的好助手
MariaDB [data_name]> create table copy2_table_name as select * from table_name; #復制表結構table_name創建copy1_table_name 表(這種方法復制此表的內部數據) Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0
這次的就到這,如果還缺少什麼,或寫錯什麼歡迎指出!