1. 程式人生 > 其它 >MySQL資料庫管理(增刪改查)

MySQL資料庫管理(增刪改查)

MySQL資料庫管理

一、資料庫常用資料型別

二、檢視資料庫結構

三、SQL語句

四、建立及刪除資料庫和表

五、管理表中的資料記錄

六、修改表名和表結構

一、資料庫常用資料型別

型別 說明
int 整型(定義整數型別資料)
float 單精度浮點,4位元組32位,準確到小數點後六位
double 雙精度浮點,8位元組64位
char 固定長度的字元型別,定義字元類資料
varchar 可變長度的字元型別
text 文字
image 圖片
decimal (5,2) 5個有效長度數字,小數點後面有2位,指定長度陣列
Value CHAR(4) Storage VARCHAR(4) Storage Required
' ' '  ' 4 bytes ' ' 1 byte
'ab' 'ab ' 4 bytes 'ab' 3 bytes
'abcd' 'abcd' 4 bytes 'abcd' 5 bytes
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes

1.char為固定長度值,不足的以空格替代。
2.varchar為可變值,最大為設定的長度值,當不足時,即為當前長度大小。
3.例如:定義char(4)和varchar(4) ,當輸入ab時,char的長度就為4,雖然不足,但是不足的部分使用了空格進行補充;而varchar的長度就為3,因為ab兩個位元組再加一個結尾字元也算一個位元組。

二、檢視資料庫結構

2.1 進入資料庫

mysql -uroot -p密碼
-u 連線資料庫的使用者名稱
-p 後面跟的是連線資料庫的密碼(不能有空格)

例:

1.檢視當前伺服器中的資料庫
SHOW DATABASES;						#大小寫不區分,分號“;”表示結束

2.檢視資料庫中包含的表
USE 資料庫名;
SHOW TABLES;

3.查看錶的結構(欄位)
USE 資料庫名;
DESCRIBE [資料庫名.]表名;
可縮寫成:DESC 表名;

例:

三、SQL語句

SQL語句用於維護管理資料庫,包括資料查詢、資料更新、訪問控制、物件管理等功能。

SQL語言分類:


DDL資料定義語言,用於建立資料庫物件,如庫、表、索引等。
DML資料操縱語言,用於對錶中的資料進行管理。
DQL資料查詢語言,用於從資料表中查詢符合條件的資料記錄。
DCL資料控制語言,用於設定或者更改資料庫使用者或角色許可權。

四、建立及刪除資料庫和表

1.建立新的資料庫
CREATE DATABASE 資料庫名;

2.建立新的表
CREATE TABLE 表名 (欄位1 資料型別,欄位2 資料型別[,...][,PRIMARY KEY (主鍵名)]);
#主鍵一般選擇能代表唯一性的欄位不允許取空值(NULL),一個表只能有一個主鍵。

例:
CREATE DATABASE kgc;
USE kgc;
CREATE TABLE KY08 (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT '',PRIMARY KEY (id));

DESC KY08;

3.刪除指定的資料表
DROP TABLE [資料庫名.]表名;				#如不用USE進入庫中,則需加上資料庫名

4.刪除指定的資料庫
DROP DATABASE 資料庫名;

|表字段名|說明|
|field|欄位|
|type|型別|
|not null|不允許為空|
|default ‘’|預設為空|
|primary key|主鍵(一般選擇沒有重複且不為空的欄位)|

例:

建立庫

建立表並寫入內容

刪除表

刪除庫

五、管理表中的資料記錄

1.向資料表中插入新的資料記錄
INSERT INTO 表名(欄位1,欄位2[,...]) VALUES(欄位1的值,欄位2的值,...);

例:
INSERT INTO KY08(id,name,score,passwd) values(1,'zhangsan',70.5,PASSWORD('123456'));
#PASSWORD('123456'):查詢資料記錄時,密碼字串以加密形式顯示;若不使用PASSWORD(),查詢時以明文顯示。

INSERT INTO KY08 VALUES(2,'lisi',90.5,654321);

SELECT * FROM KY08;					#查詢表的資料記錄

2.查詢資料記錄
SELECT 欄位名1,欄位名2[,...] FROM 表名 [WHERE 條件表示式];

例:
SELECT * FROM KY08;
SELECT id,name,score FROM KY08 WHERE id=2;

select name from KY08\G					#以列表方式豎向顯示
select * from KY08 limit 2;				#只顯示頭2行
select * from KY08 limit 2,3;			#顯示第2行後的前3行


3.修改、更新資料表中的資料記錄
UPDATE 表名 SET 欄位名1=欄位值1[,欄位名2=欄位值2] [WHERE 條件表示式];

例:
UPDATE KY08 SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE KY08 SET name='wangxiaoer',passwd='' WHERE id=3;

4.在資料表中刪除指定的資料記錄
DELETE FROM 表名 [WHERE 條件表示式];

例:
DELETE FROM KY08 WHERE id=4;

例:

插入表中資料

檢視資料記錄

修改,更新資料表中的資料記錄

在資料表中刪除指定的資料記錄

六、修改表名和表結構

1.修改表名
ALTER TABLE 舊錶名 RENAME 新表名;

例:
ALTER TABLE KY08 RENAME CLASS08;
ALTER TABLE CLASS08 RENAME KY08;

2.擴充套件表結構(增加欄位)
ALTER TABLE 表名 ADD address varchar(50) default '地址不詳';
#default '地址不詳':表示此欄位設定預設值 地址不詳;可與 NOT NULL 配合使用

3.修改欄位(列)名,新增唯一鍵
ALTER TABLE 表名 CHANGE 舊列名 新列名 資料型別 [unique key];

例:
ALTER TABLE KY08 CHANGE name user_name varchar(10) unique key;
#CHANGE可修改欄位名、資料型別、約束等所有項。

4.刪除欄位
ALTER TABLE 表名 drop 欄位名;

例:
ALTER TABLE KY08 drop passwd;


案例擴充套件:
use kgc;
create table if not exists info (
id int(4) zerofill primary key auto_increment,				#指定主鍵的第二種方式
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
if not exists:表示檢測要建立的表是否已存在,如果不存在就繼續建立
int(4) zerofill:表示若數值不滿4位數,則前面用“0”填充,例0001
auto_increment:表示此欄位為自增長欄位,即每條記錄自動遞增1,預設從1開始遞增;自增長欄位資料不可以重複;自增長欄位必須是主鍵;如新增的記錄資料沒有指定此欄位的值且新增失敗也會自動遞增一次
unique key:表示此欄位唯一鍵約束,此欄位資料不可以重複;一張表中只能有一個主鍵, 但是一張表中可以有多個唯一鍵
not null:表示此欄位不允許為NULL

例:

修改表名

擴充套件表結構(增加欄位)

修改欄位(列)名,新增唯一鍵

刪除欄位