mysql數據庫修改表數據?在我們學習數據庫之前,首先得有個數據庫,吃飯前咱先得先找個碗,下面我們來創建一個新的數據庫,創建數據庫的語法如下:,我來為大家科普一下關于mysql數據庫修改表數據?下面希望有你要的答案,我們一起來看看吧!
在我們學習數據庫之前,首先得有個數據庫,吃飯前咱先得先找個碗,下面我們來創建一個新的數據庫,創建數據庫的語法如下:
# 直接創建數據庫
create database 數據庫名;
下面我們通過命令行連接數據庫服務器,并創建一個新的數據庫,示例代碼如下:
mysql> create database study;
Query OK, 1 row affected (0.00 sec)
創建完成後,我們可以通過show databases,查看MYSQL服務器中所有的數據庫,示例代碼如下:
mysql> show databases;
--------------------
| Database |
--------------------
| finance |
| information_schema |
| mysql |
| performance_schema |
| study |
| sys |
--------------------
6 rows in set (0.00 sec)
從上面的結果中,我們就能找到我們新創建的study的庫了,但是如果此時已經有了一個study的數據庫了,我們創建就會報錯,示例如下:
mysql> create database study;
ERROR 1007 (HY000): Can't create database 'study'; database exists
那麼我們有沒有一種方式,在創建數據的時候,有個判斷呢,當數據庫已經存在時,就不創建,沒有才創建,當然有,語法如下:
# 如果數據庫存在則不創建,如果不存在則創建
create database if not exists 數據庫名;
此外當我們創建數據庫的時候,也可以設置字符集,如果不設置,數據庫會為其指定默認的字符集,設置字符集的語法如下:
# 創建數據庫的時候,為數據庫設置字符集
create database 數據庫名 character set 字符集;
當我們數據庫創建錯了,或者數據庫不需要了,我們此時就需要删除我們不需要的數據庫,語法如下:
drop database 數據庫名稱;
示例代碼如下:
mysql> drop database study;
Query OK, 0 rows affected (0.01 sec)
删庫的操作,要慎重,尤其在生産環境,删除導緻的損失太大,情節嚴重的要負法律責任的。
1.3 使用數據庫我們通過show databases;命令查詢出很多的數據庫,當我們使用的時候,需要先指定我們使用那個數據庫,語法如下:
use 數據庫名稱;
示例代碼如下:
mysql> use study;
Database changed
當你指定完數據庫後,你之後的所有操作(增删改查等)都是在指定的數據庫中進行的。在命令行模式下操作數據庫時,是不會顯示我們正在操作那個庫的,如果我們忘記了,可以通過如下命令,查詢當前使用的那個數據庫:
select database();
示例代碼如下:
mysql> select database();
------------
| database() |
------------
| study |
------------
1 row in set (0.00 sec)
創建表
我們上面創了數據庫,但是是一個空的數據庫,裡面沒有任何内容,我們都知道在數據庫中放着的是一張張表,創建表的語法如下:
create table if not exists 表名(
字段名 字段類型(長度) [約束],
字段名 字段類型(長度) [約束],
字段名 字段類型(長度) [約束],
...
);
我們都知道一張表,首先它得有一個表名,然後表格由行和列組成的,每一列都有個列名,列名就是我們這裡的字段名,同時我們需要指定列的數據類型、長度和約束,當然約束不是每個字段都需要的。下面我們以學生表為例,創建一張表:
mysql> CREATE TABLE student(
-> id INT PRIMARY KEY, # 編号
-> name CHAR(30), # 名字
-> age TINYINT #年齡
-> );
Query OK, 0 rows affected (0.03 sec)
在上面表中我們創建一張有3個字段的表,其中id字段增加了一個主鍵約束,表示該字段的值都是唯一的,不能重複且不能為空,值得注意的是,最後一個字段age,不需要加,,否則會報錯,除此之外,在創建表之前,需要先指定數據庫。
查看表
當我們表創建成功後,我們可以使用show tables;命令來查看數據庫中的所有表,示例如下:
mysql> show tables;
-----------------
| Tables_in_study |
-----------------
| student |
-----------------
1 row in set (0.01 sec)
mysql>
從上面的結果中,就可以找到我們創建的student表
修改表結構
我們在表創建完成後,突然想修改,比如想添加一個新的列,我們該怎麼做呢,語法如下:
ALTER TABLE 表名 ADD `列名` 數據類型;
比如我們想在上面的student表中,添加一個身高的列,示例代碼如下:
mysql> alter table student add `height` FLOAT;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
注意,添加的列名需要加上反引号,不是單引号。
上面我們新增了一個列,要是我們想修改已經存在的列怎麼辦呢,比如我們想把student表中height名稱修改成tall,語法如下:
ALTER TBALE 表名 CHANGE `舊列名` 新列名 字段類型;
示例代碼如下:
mysql> alter table student change `height` tall float;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student;
------- ---------- ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
------- ---------- ------ ----- --------- -------
| id | int | NO | PRI | NULL | |
| name | char(30) | YES | | NULL | |
| age | tinyint | YES | | NULL | |
| tall | float | YES | | NULL | |
------- ---------- ------ ----- --------- -------
4 rows in set (0.01 sec)
mysql>
上面我們說了都是修改列,我們也可删除表中的列,語法如下:
ALTER TABLE 表名 drop 列名;
示例代碼如下:
mysql> alter table student drop tall;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql>
除此之外,我們還可以對表進行重命名,我們可以使用如下語法:
rename table `舊表名` to 新表名;
示例代碼如下:
mysql> rename table `student` to stu;
Query OK, 0 rows affected (0.01 sec)
查看表結構
上面的表是我們創建的,所以我們知道表中有哪些字段和約束,但是如果是别人創建的表,或者時間長我們忘記了表的結構,此時我們可以通過desc 表名;來查看表結構,示例代碼如下:
mysql> desc student;
------- ---------- ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
------- ---------- ------ ----- --------- -------
| id | int | NO | PRI | NULL | |
| name | char(30) | YES | | NULL | |
| age | tinyint | YES | | NULL | |
------- ---------- ------ ----- --------- -------
3 rows in set (0.00 sec)
從上面的信息中,我們就知道這個表有哪些字段、字段的數據類型、是否為空、約束等信息。
删除表
當我們某張表不想要了,需要删除的時候,此時我們可以通過drop table 表名;的方式來删除表,示例代碼如下:
mysql> drop table student;
Query OK, 0 rows affected (0.02 sec)
本期的内容就到這裡了,如有不足之處還請大家多多指正,歡迎大家留言、關注、轉發、收藏,謝謝。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!