程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql的基礎使用之SQL原生語句的使用:表的 創建 刪除 修改 (一),mysqlsql

Mysql的基礎使用之SQL原生語句的使用:表的 創建 刪除 修改 (一),mysqlsql

編輯:MySQL綜合教程

Mysql的基礎使用之SQL原生語句的使用:表的 創建 刪除 修改 (一),mysqlsql


上一篇主要講的是關於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

 

這次的就到這,如果還缺少什麼,或寫錯什麼歡迎指出!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved