欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL之終端Terminal(dos界面)管理數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)的基本操作

 更新時間:2015年03月24日 21:27:19   作者:GarveyCalvin  
這篇文章主要介紹了MySQL之終端(Terminal)管理數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)的基本操作,需要的朋友可以參考下

MySQL有很多的可視化管理工具,比如“mysql-workbench”和“sequel-pro-”。 現(xiàn)在我寫MySQL的終端命令操作的文章,是想強化一下自己對于MySQL的理解,總會比使用圖形化的理解透徹,因為我本來就比較喜歡寫代碼。同時寫出來這些文章,是想要給大家當(dāng)個參考,希望也能對大家有所幫助,有所提升,這就是我為什么要寫終端操作MySQL的文章了。

 

注意:MySQL數(shù)據(jù)庫命令不區(qū)分大小寫。但在MAC的終端,如果你想使用tab自動補全命令,那么你就必須使用大寫,這樣MAC的終端才會幫你補全命令,否則你按N遍tab都不會有響應(yīng)。

1、數(shù)據(jù)庫(database)管理

1.1 create 創(chuàng)建數(shù)據(jù)庫

1.2 show 查看所有數(shù)據(jù)庫

1.3 alter 修改數(shù)據(jù)庫

1.4 use 使用數(shù)據(jù)庫

1.5 查看當(dāng)前使用的數(shù)據(jù)庫

1.6 drop 刪除數(shù)據(jù)庫

2、數(shù)據(jù)表(table)管理

2.1 create 創(chuàng)建表

2.2 show 顯示表

2.3 desc 查看表結(jié)構(gòu)

2.4 alter 修改表結(jié)構(gòu)(增、刪、改)

2.4.1 insert 在表中添加列(字段)

2.4.2 alter 修改表(列)字段

2.4.3 delete 刪除表(列)字段

2.4.4 rename 重命名表名

2.5 create 利用已有數(shù)據(jù)創(chuàng)建新表

3、數(shù)據(jù)的操作及管理

3.1 增加數(shù)據(jù)(增)

3.2 刪除數(shù)據(jù)(刪)

3.3 修改數(shù)據(jù)(改)

3.4 查詢數(shù)據(jù)(查)

4、管理視圖

1、數(shù)據(jù)庫(database)管理

1.1 create 創(chuàng)建數(shù)據(jù)庫

create database firstDB;

1.2 show 查看所有數(shù)據(jù)庫

mysql> show databases;

+--------------------+
| Database      |
+--------------------+
| information_schema |
| firstDB      |
| mysql       |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

1.3 alter 修改數(shù)據(jù)庫

alter 命令修改數(shù)據(jù)庫編碼:

默認創(chuàng)建的數(shù)據(jù)庫默認不支持中文字符,如果我們需要它支持中文字符,則將它的編碼設(shè)置為utf8格式:

mysql> ALTER DATABASE testDB CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)

1.4 use 使用數(shù)據(jù)庫

mysql> use firstDB;
Database changed

1.5 查看當(dāng)前使用的數(shù)據(jù)庫

mysql> select database();
+------------+
| database() |
+------------+
| firstdb  |
+------------+
1 row in set (0.00 sec)

1.6 drop 刪除數(shù)據(jù)庫

mysql> drop database firstDB;
Query OK, 0 rows affected (0.00 sec)

2、數(shù)據(jù)表(table)管理

我們首先創(chuàng)建一個數(shù)據(jù)庫,提供我們往后的使用:

mysql> create database testDB;
Query OK, 1 row affected (0.00 sec)

創(chuàng)建后記得用use命令進入(使用)數(shù)據(jù)庫,不然后面的操作都會不成功的。

2.1 create 創(chuàng)建表

mysql> create table PEOPLE (
-> ID int AUTO_INCREMENT PRIMARY KEY,
-> NAME varchar(20) not null,
-> AGE int not null,
-> BIRTHDAY datetime);
Query OK, 0 rows affected (0.01 sec)

2.2 show 顯示表

顯示當(dāng)前數(shù)據(jù)庫所有的數(shù)據(jù)表

mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| PEOPLE      |
+------------------+
1 row in set (0.00 sec)

2.3 desc 查看表結(jié)構(gòu)

mysql> desc PEOPLE
-> ;
+----------+-------------+------+-----+---------+----------------+
| Field  | Type    | Null | Key | Default | Extra     |
+----------+-------------+------+-----+---------+----------------+
| ID    | int(11)   | NO  | PRI | NULL  | auto_increment |
| NAME   | varchar(20) | NO  |   | NULL  |        |
| AGE   | int(11)   | NO  |   | NULL  |        |
| BIRTHDAY | datetime  | YES |   | NULL  |        |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

2.4 alter 修改表結(jié)構(gòu)(增、刪、改)

默認創(chuàng)建的表不支持中文字符,所以需將表編碼設(shè)置為utf8:

mysql> ALTER TABLE KEYCHAIN CONVERT TO CHARACTER SET UTF8;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0

2.4.1 insert 在表中添加列(字段)

mysql> alter table PEOPLE add star BOOL;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

提示:在MySQL里,布爾類型會自動轉(zhuǎn)換為tinyint(1)類型。

我們不妨使用desc去查看一下PEOPLE表結(jié)構(gòu):

mysql> desc PEOPLE;
+----------+-------------+------+-----+---------+----------------+
| Field  | Type    | Null | Key | Default | Extra     |
+----------+-------------+------+-----+---------+----------------+
| ID    | int(11)   | NO  | PRI | NULL  | auto_increment |
| NAME   | varchar(20) | NO  |   | NULL  |        |
| AGE   | int(11)   | NO  |   | NULL  |        |
| BIRTHDAY | datetime  | YES |   | NULL  |        |
| star   | tinyint(1) | YES |   | NULL  |        |
+----------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

現(xiàn)在,你該相信我了吧?

2.4.2 alter 修改表(列)字段

mysql> alter table PEOPLE MODIFY star int;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

也可以指定 int(n) 的長度,比如 int(2)。

我們再次使用desc查看PEOPLE表結(jié)構(gòu):

mysql> desc PEOPLE;
+----------+-------------+------+-----+---------+----------------+
| Field  | Type    | Null | Key | Default | Extra     |
+----------+-------------+------+-----+---------+----------------+
| ID    | int(11)   | NO  | PRI | NULL  | auto_increment |
| NAME   | varchar(20) | NO  |   | NULL  |        |
| AGE   | int(11)   | NO  |   | NULL  |        |
| BIRTHDAY | datetime  | YES |   | NULL  |        |
| star   | int(11)   | YES |   | NULL  |        |
+----------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

2.4.3 delete 刪除表(列)字段

mysql> alter table PEOPLE DROP column star;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

刪除后,再次查看PEOPLE表結(jié)構(gòu):

mysql> desc PEOPLE;
+----------+-------------+------+-----+---------+----------------+
| Field  | Type    | Null | Key | Default | Extra     |
+----------+-------------+------+-----+---------+----------------+
| ID    | int(11)   | NO  | PRI | NULL  | auto_increment |
| NAME   | varchar(20) | NO  |   | NULL  |        |
| AGE   | int(11)   | NO  |   | NULL  |        |
| BIRTHDAY | datetime  | YES |   | NULL  |        |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

刪除字段成功,現(xiàn)在我們已經(jīng)不能看到star的字段了。

2.4.4 rename 重命名表名

mysql> RENAME TABLE PEOPLE TO NEW_PEOPLE;
Query OK, 0 rows affected (0.00 sec)

2.4.5 null or not null

修改表字段允許為空或不允許為空:

mysql> ALTER TABLE PEOPLE MODIFY AGE INT(3) NULL;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

把 PEOPLE 表的 AGE 字段設(shè)置成“允許為空”,即插入記錄時這個字段可以不錄入。否則相反。

它的格式為:ALTER TABLE <TALBE_NAME> MODIFY <CLOUMN> <NULL 'OR' NOT NULL>

2.5 create 利用已有數(shù)據(jù)創(chuàng)建新表

mysql> create table newTable select * from PEOPLE;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

我們查看一下目前數(shù)據(jù)庫存在的表:

mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| PEOPLE      |
| newTable     |
+------------------+
2 rows in set (0.00 sec)

3、數(shù)據(jù)的操作及管理

數(shù)據(jù)表的基本操作,包含增、刪、改、查數(shù)據(jù)。

以下命令均在PEOPLE表上操作。

3.1 增加數(shù)據(jù)(增)

PEOPLE表目前是沒有數(shù)據(jù)的,它是空的數(shù)據(jù)表,我們現(xiàn)在先添加一些數(shù)據(jù)。

insert into 命令添加數(shù)據(jù):

mysql> insert into PEOPLE VALUES (null, 'Anny', 22, '1992-05-22');
Query OK, 1 row affected (0.00 sec)

使用select命令查看表(會在后面介紹),現(xiàn)在我們查看PEOPLE數(shù)據(jù)表的數(shù)據(jù):

mysql> select * from PEOPLE;
+----+------+-----+---------------------+
| ID | NAME | AGE | BIRTHDAY      |
+----+------+-----+---------------------+
| 1 | Anny | 22 | 1992-05-22 00:00:00 |
+----+------+-----+---------------------+
1 row in set (0.00 sec)

數(shù)據(jù)表現(xiàn)在有一條數(shù)據(jù)。

我們多添加幾條數(shù)據(jù),如:

mysql> select * from PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME  | AGE | BIRTHDAY      |
+----+--------+-----+---------------------+
| 1 | Anny  | 22 | 1992-05-22 00:00:00 |
| 2 | Garvey | 23 | 1991-05-22 00:00:00 |
| 3 | Lisa  | 25 | 1989-05-22 00:00:00 |
| 4 | Nick  | 24 | 1990-05-22 00:00:00 |
| 5 | Rick  | 24 | 1991-05-22 00:00:00 |
+----+--------+-----+---------------------+
5 rows in set (0.00 sec)

3.2 刪除數(shù)據(jù)(刪)

delete 命令刪除數(shù)據(jù):

mysql> delete from PEOPLE where name = 'Lisa';
Query OK, 1 row affected (0.01 sec)

再次查詢PEOPLE表:

mysql> select * from PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME  | AGE | BIRTHDAY      |
+----+--------+-----+---------------------+
| 1 | Anny  | 22 | 1992-05-22 00:00:00 |
| 2 | Garvey | 23 | 1991-05-22 00:00:00 |
| 4 | Nick  | 24 | 1990-05-22 00:00:00 |
| 5 | Rick  | 24 | 1991-05-22 00:00:00 |
+----+--------+-----+---------------------+
4 rows in set (0.00 sec)

已經(jīng)看不到名為“Lisa”的數(shù)據(jù)了。

3.3 修改數(shù)據(jù)(改)

update 命令修改數(shù)據(jù):

mysql> update PEOPLE set name='Calvin' where name = 'Garvey';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

查詢PEOPLE表內(nèi)容:

mysql> select * from PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME  | AGE | BIRTHDAY      |
+----+--------+-----+---------------------+
| 1 | Anny  | 22 | 1992-05-22 00:00:00 |
| 2 | Calvin | 23 | 1991-05-22 00:00:00 |
| 4 | Nick  | 24 | 1990-05-22 00:00:00 |
| 5 | Rick  | 24 | 1991-05-22 00:00:00 |
+----+--------+-----+---------------------+
4 rows in set (0.00 sec)

名為“Garvey”的記錄已經(jīng)修改為“Calvin”。

3.4 查詢數(shù)據(jù)(查)

select 命令查詢數(shù)據(jù),最簡單的就是查詢表的所有數(shù)據(jù),也就是我們最初使用到的那條命令:

mysql> select * from PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME  | AGE | BIRTHDAY      |
+----+--------+-----+---------------------+
| 1 | Anny  | 22 | 1992-05-22 00:00:00 |
| 2 | Calvin | 23 | 1991-05-22 00:00:00 |
| 4 | Nick  | 24 | 1990-05-22 00:00:00 |
| 5 | Rick  | 24 | 1991-05-22 00:00:00 |
+----+--------+-----+---------------------+
4 rows in set (0.00 sec)

格式:select * from <表名>,*代表所有字段。

查詢數(shù)據(jù)時也可指定顯示的(列)字段:

mysql> select NAME, AGE, BIRTHDAY from PEOPLE;
+--------+-----+---------------------+
| NAME  | AGE | BIRTHDAY      |
+--------+-----+---------------------+
| Anny  | 22 | 1992-05-22 00:00:00 |
| Calvin | 23 | 1991-05-22 00:00:00 |
| Nick  | 24 | 1990-05-22 00:00:00 |
| Rick  | 24 | 1991-05-22 00:00:00 |
+--------+-----+---------------------+
4 rows in set (0.00 sec)

格式:select <字段名,字段名,...> from <表名>。

select查詢命令還有很多的高級用法,比如用來查找不重復(fù)(distinct)的數(shù)據(jù),使數(shù)據(jù)按條件排序(order by),按查詢條件顯示數(shù)據(jù)(where)等等。這些都會在下一篇文章作重點介紹,請大家繼續(xù)留意我的博客,謝謝。

4、管理視圖

創(chuàng)建視圖

視圖是從數(shù)據(jù)庫里導(dǎo)出一個或多個表的虛擬表,是用來方便用戶對數(shù)據(jù)的操作。

mysql> CREATE VIEW PEOPLE_VIEW (
-> NAME, AGE)
-> AS SELECT NAME, AGE FROM PEOPLE;

創(chuàng)建成功后查看視圖。

PEOPLE     PEOPLE.AGE   PEOPLE.BIRTHDAY PEOPLE.ID    PEOPLE.NAME
mysql> SELECT * FROM PEOPLE_VIEW
-> ;
+--------+-----+
| NAME  | AGE |
+--------+-----+
| Anny  | 22 |
| Calvin | 23 |
| Nick  | 24 |
| Rick  | 24 |
+--------+-----+
4 rows in set (0.00 sec)

我們也可以使用 DESC 命令查看視圖的結(jié)構(gòu)。

mysql> DESC PEOPLE_VIEW;
+-------+---------+------+-----+---------+-------+
| Field | Type  | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| ID  | int(11) | NO  |   | 0    |    |
+-------+---------+------+-----+---------+-------+
1 row in set (0.01 sec)

替換視圖

創(chuàng)建或替換原有視圖。

mysql> CREATE OR REPLACE VIEW PEOPLE_VIEW(PEOPLE_ID,PEOPLE_NAME,PEOPLE_AGE) AS SELECT ID,NAME,AGE FROM PEOPLE;
Query OK, 0 rows affected (0.00 sec)

創(chuàng)建或替換后查看視圖。

mysql> SELECT * FROM PEOPLE_VIEW;
+-----------+-------------+------------+
| PEOPLE_ID | PEOPLE_NAME | PEOPLE_AGE |
+-----------+-------------+------------+
|     1 | Anny    |     22 |
|     2 | Calvin   |     23 |
|     4 | Nick    |     24 |
|     5 | Rick    |     24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)

操作視圖

當(dāng)視圖數(shù)據(jù)有變化時(增、刪、改),真實的表數(shù)據(jù)也會隨著改變。也就是說,對視圖的操作就是對表的數(shù)據(jù),所以我們可以把視圖當(dāng)作表。

例:往視圖插入一條數(shù)據(jù)。

mysql> INSERT INTO PEOPLE_VIEW VALUES(NULL, 'Kerry', '33');
Query OK, 1 row affected (0.00 sec)

插入數(shù)據(jù)成功后查看視圖。

mysql> SELECT * FROM PEOPLE_VIEW ;
+-----------+-------------+------------+
| PEOPLE_ID | PEOPLE_NAME | PEOPLE_AGE |
+-----------+-------------+------------+
|     1 | Anny    |     22 |
|     2 | Calvin   |     23 |
|     4 | Nick    |     24 |
|     5 | Rick    |     24 |
|     6 | Kerry    |     33 |
+-----------+-------------+------------+
5 rows in set (0.00 sec)

可以在視圖上看到我們剛剛插入的數(shù)據(jù),現(xiàn)在我們就來驗證一下真實的表是否也會作出變化。

mysql> SELECT * FROM PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME  | AGE | BIRTHDAY      |
+----+--------+-----+---------------------+
| 1 | Anny  | 22 | 1992-05-22 00:00:00 |
| 2 | Calvin | 23 | 1991-05-22 00:00:00 |
| 4 | Nick  | 24 | 1990-05-22 00:00:00 |
| 5 | Rick  | 24 | 1991-05-22 00:00:00 |
| 6 | Kerry | 33 | NULL        |
+----+--------+-----+---------------------+
5 rows in set (0.00 sec)

可見,真實的表數(shù)據(jù)也已經(jīng)有所改變,剛剛往視圖里插入的那一條數(shù)據(jù)存在于真實表中,真理便是:對視圖的操作就是對表的數(shù)據(jù)。

刪除視圖

mysql> DROP VIEW PEOPLE_VIEW;
Query OK, 0 rows affected (0.00 sec)

到這文章就結(jié)束了,希望對大家有幫助。

相關(guān)文章

  • Linux/Mac MySQL忘記密碼怎么辦

    Linux/Mac MySQL忘記密碼怎么辦

    Linux/Mac MySQL忘記密碼怎么辦?這篇文章主要介紹了MySQL忘記密碼的解決方法,命令行進行修改,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • mysql found_row()使用詳解

    mysql found_row()使用詳解

    在參考手冊中對found_rows函數(shù)的描述是: it is desirable to know how many rows the statement would have returned without the LIMIT. 也就是說,它返回值是如果SQL語句沒有加LIMIT的情況下返回的數(shù)值。
    2016-05-05
  • mysql 8.0.25 解壓版安裝配置方法圖文教程

    mysql 8.0.25 解壓版安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.25 解壓版安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • MySQL系列之十一 日志記錄

    MySQL系列之十一 日志記錄

    這篇文章主要介紹了MySQL日志文件詳解,本文分別講解了錯誤日志、二進制日志、通用查詢?nèi)罩?、慢查詢?nèi)罩?、Innodb的在線redo日志、更新日志等日志類型和作用介紹,需要的朋友可以參考下
    2021-07-07
  • 分享101個MySQL調(diào)試與優(yōu)化技巧

    分享101個MySQL調(diào)試與優(yōu)化技巧

    隨著越來越多的數(shù)據(jù)庫驅(qū)動的應(yīng)用程序,人們一直在推動MySQL發(fā)展到它的極限。這里是101條調(diào)節(jié)和優(yōu)化MySQL安裝的技巧。一些技巧是針對特定的安裝環(huán)境的,但這些思路是通用的。我已經(jīng)把他們分成幾類,來幫助你掌握更多MySQL的調(diào)節(jié)和優(yōu)化技巧
    2017-05-05
  • MySQL 8.0用戶和角色管理原理與用法詳解

    MySQL 8.0用戶和角色管理原理與用法詳解

    這篇文章主要介紹了MySQL 8.0用戶和角色管理,結(jié)合實例形式分析了MySQL 8.0用戶和角色管理相關(guān)概念、功能、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • 詳解MySQL的內(nèi)連接和外連接

    詳解MySQL的內(nèi)連接和外連接

    這篇文章主要介紹了詳解MySQL的內(nèi)連接和外連接,mySQL包含兩種聯(lián)接,分別是內(nèi)連接(inner join)和外連接(out join),但我們又同時聽說過左連接,交叉連接等術(shù)語,本文就帶大家來了解一下,需要的朋友可以參考下
    2023-05-05
  • mysql 列轉(zhuǎn)行,合并字段的方法(必看)

    mysql 列轉(zhuǎn)行,合并字段的方法(必看)

    下面小編就為大家?guī)硪黄猰ysql 列轉(zhuǎn)行,合并字段的方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • MySQL 錯誤處理例子[譯]

    MySQL 錯誤處理例子[譯]

    MySQL 錯誤處理例子,國外人寫的,大家可以參考下。
    2009-10-10
  • 解決MySQL啟動報錯:ERROR 2003 (HY000): Can''t connect to MySQL server on ''localhost'' (10061)

    解決MySQL啟動報錯:ERROR 2003 (HY000): Can''t connect to MySQL serv

    這篇文章主要介紹了解決MySQL啟動報錯:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061),本文解釋了如何解決該問題,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論