一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL數據表基本操作實例詳解

MySQL數據表基本操作實例詳解

2019-07-07 15:35程志偉 Mysql

這篇文章主要介紹了MySQL數據表基本操作,結合實例形式較為詳細的分析了MySQL針對數據表的基本創建、表結構查看、修改、刪除等相關操作技巧,需要的朋友可以參考下

本文實例講述了MySQL數據表基本操作。分享給大家供大家參考,具體如下:

數據表的基本操作

1.主鍵約束要求主鍵列的數據唯一,并且不允許為空。主鍵能夠唯一地識別表中的一條記錄,可以結合外鍵來定義不同數據表之間的關系,并且可以加快數據庫查詢的速度。主鍵和記錄之間的關系如同身份證和人之間的關系。

2.字表的外鍵必須關聯父表的主鍵,且關聯字段的數據類型必須匹配。如果類型不一樣。創建子表時,就會出現錯誤:ERROR 1005(HY000):can't create table 'databases.tablesname'(error:150)

3.非空約束指字段的值不能為空。

4.唯一性約束:要求該列唯一,允許為空,但只能出現一個空值。唯一約束可以確保一列或者幾列不出現重復值。

5.unique和primary key 的區別:一個表中可以有多個字段聲明為unique,但只能有一個primary key聲明:聲明為關鍵字的列不允許為空值,但是聲明為unique的字段允許空值null的存在。

【例.1】創建員工表tb_emp1

選擇創建表的數據庫:

USE test_db;

創建tb_emp1表:

CREATE TABLE tb_emp1
(
id int(11),
name varchar(25),
deptId int(11),
salary float
);

【例.2】定義數據表tb_emp 2,其主鍵為id:

CREATE TABLE tb_emp2
(
id int(11) PRIMARY KEY,
name varchar(25),
deptId int(11),
salary float
);

【例.3】定義完所有列之后指定主鍵

定義數據表tb_emp 3,其主鍵為id:

CREATE TABLE tb_emp3
(
id int(11),
name varchar(25),
deptId int(11),
salary float,
PRIMARY KEY(id)
);

【例.4】定義數據表tb_emp4,創建多字段聯合主鍵SQL語句為:

CREATE TABLE tb_emp4
(
name varchar(25),
deptId int(11),
salary float,
PRIMARY KEY(name,deptId)
);

【例.5】定義數據表tb_emp5,并在tb_emp5表上創建外鍵約束

創建一個部門表tb_dept1:

CREATE TABLE tb_dept1
(
id int(11) PRIMARY KEY,
name varchar(22) NOT NULL,
location varchar(50)
);

定義數據表tb_emp5,讓它的鍵deptId作為外鍵關聯到tb_dept1的主鍵id:

CREATE TABLE tb_emp5
(
id int(11) PRIMARY KEY,
name varchar(25),
deptId int(11),
salary float,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);

【例.6】定義數據表tb_emp6,指定員工的名稱不能為空,SQL語句為:

CREATE TABLE tb_emp6
(
id int(11) PRIMARY KEY,
name varchar(25) NOT NULL,
deptId int(11),
salary float,
CONSTRAINT fk_emp_dept2 FOREIGN KEY (deptId) REFERENCES tb_dept(id)
);

【例.7】定義數據表tb_dept2,指定部門的名稱唯一,SQL語句為:

CREATE TABLE tb_dept2
(
id int(11) PRIMARY KEY,
name varchar(22) UNIQUE,
location varchar(50)
);

【例.8】定義完所有列之后唯一約束,

定義數據表tb_dept3,指定部門的名稱唯一,SQL語句為:

CREATE TABLE tb_dept3
(
id int(11) PRIMARY KEY,
name varchar(22),
location varchar(50),
CONSTRAINT STH UNIQUE(name)
);

【例.9】定義數據表tb_emp7,指定員工的部門編號默認為1111,SQL語句為:

CREATE TABLE tb_emp7
(
id int(11) PRIMARY KEY,
name varchar(25) NOT NULL,
deptId int(11) DEFAULT 1111,
salary float,
CONSTRAINT fk_emp_dept3 FOREIGN KEY (deptId) REFERENCES tb_dept(id)
);

【例.10】定義數據表tb_emp8,指定員工的編號自動遞增,SQL語句為:

CREATE TABLE tb_emp8
(
id int(11) PRIMARY KEY AUTO_INCREMENT,
name varchar(25) NOT NULL,
deptId int(11),
salary float,
CONSTRAINT fk_emp_dept5 FOREIGN KEY (deptId) REFERENCES tb_dept(id)
);
INSERT INTO tb_emp8 (name,salary) VALUES('Lucy',1000), ('Lura',1200),('Kevin',1500);
select * from tb_emp8;

【例.11】分別使用DESCRIBEDESC查看表tb_dept和表tb_emp1的表結構,操作過程如下:

DESCRIBE tb_dept;
DESC tb_emp1;

【例.12】使用SHOW CREATE TABLE查看表tb_emp1的詳細信息,SQL語句及相應的執行結果如下示:

SHOW CREATE TABLE tb_emp1;
SHOW CREATE TABLE tb_emp1\G;

查看數據表的結構

1.查看表基本結構語句describe或者desc +表名

2.查看表詳細結構語句 show create table。 如果不加‘\G'參數,顯示的結果可能非常混亂,加上參數‘\G'之后,可使顯示結果更加直觀,易于查看。

修改數據表

1.修改表名

【例.13】將數據表tb_dept3改名為tb_deptment3

ALTER TABLE tb_dept3 RENAME tb_deptment3;

2.修改字段的數據類型

【例.14】將數據表tb_dept1中name字段的數據類型由VARCHAR(22)的修改成VARCHAR(30)

ALTER TABLE tb_dept MODIFY name VARCHAR(30);

3.修改該字段名

【例.15】將數據表tb_dept1中的location字段名稱改為loc,數據類型保持不變。

ALTER TABLE tb_dept1 CHANGE location loc varchar(50);

【例.16】將數據表tb_dept1中的loc字段名稱改為location,同時將數據類型保持變為varchar(60)。

ALTER TABLE tb_dept1 CHANGE loc location varchar(60);

4.添加字段

【例.17】在數據表tb_dept中添加一個沒有完整性約束的int類型的字段managerId(部門經理編號),輸入SQL語句如下:

ALTER TABLE tb_dept ADD managerId int(10);

【例.18】在數據表tb_dept1中添加一個不能為空的varchar(12)類型的字段column1。輸入如下SQL語句,并執行:

ALTER TABLE tb_dept1 ADD column1 varchar(12) not null;

【例.19】在數據表tb_dept中添加一個int類型的字段column2。輸入如下SQL語句,并執行:

ALTER TABLE tb_dept ADD column2 int(11) FIRST;

【例.20】在數據表tb_dept1中name列后添加一個int類型的字段column3。輸入如下SQL語句,并執行:

ALTER TABLE tb_dept1 ADD column3 int(11) AFTER name;

5.刪除字段

【例.21】刪除數據表tb_dept1表中的column2字段

ALTER TABLE tb_dept1 DROP column2;

6.修改字段的排列位置

【例.22】將數據表tb_dept1中的column1字段修改為表的第一個字段

ALTER TABLE tb_dept1 MODIFY column1 varchar(12) FIRST;

【例.23】將數據表tb_dept1中的column1字段插入到location字段后面

ALTER TABLE tb_dept1 MODIFY column1 varchar(12) AFTER location;

7.刪除數據的外鍵約束

【例.25】刪除數據表tb_emp9中的外鍵約束

CREATE TABLE tb_emp9
(
id int(11) PRIMARY KEY,
name varchar(25),
deptId int(11),
salary float,
CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);
ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;

刪除數據表

【例.26】刪除數據表tb_dept2,輸入如下SQL語句并執行:

DROP TABLE IF EXISTS tb_dept2;

【例.27】刪除被數據表tb_emp關聯的數據表tb_dept2

CREATE TABLE tb_dept2
(
id int(11) PRIMARY KEY,
name varchar(22),
location varchar(50)
);
CREATE TABLE tb_emp
(
id int(11) PRIMARY KEY,
name varchar(25),
deptId int(11),
salary float,
CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept2(id)
);

直接刪除父表tb_dept2

DROP TABLE tb_dept2;

解除關聯子表tb_emp的外鍵約束

ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept;

希望本文所述對大家MySQL數據庫計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费精品视频在线 | 亚洲 欧美 另类 中文 在线 | 亚洲天堂2013 | jiujiure精品 | 亚洲va欧美va天堂v国产综合 | 日本一区二区免费在线 | 深夜在线看 | 201天天爱天天做 | 吃大胸寡妇的奶 | 亚洲欧美日韩精品高清 | 无限观看社区在线视频 | 欧美日韩看看2015永久免费 | 国内精品一区视频在线播放 | 欧美福利在线播放 | 91好色| 国产综合欧美日韩视频一区 | 91尤物在线 | 精品国产麻豆AV无码 | 精品国产成人AV在线看 | 韩国三级视频网站 | 国产精品亚洲片在线观看麻豆 | 欧美特黄特色aaa大片免费看 | 欧美精品一国产成人性影视 | 白丝出水 | 成人免费体验区福利云点播 | 91香蕉国产视频 | 俄罗斯bbbbbbxxxxxx| 好性20岁| 滑进了柔佳火热紧夹的 | 亚州成人| 我半夜摸妺妺的奶C了她软件 | 99热这里只有精 | 美女露尿口 | 521色香蕉网在线观看免费 | 岛国a香蕉片不卡在线观看 荡女淫春2古装 | 26uuu老色哥 236宅宅2021最新理论 | brazzers欧美教师 | 欧美 亚洲 综合 卡通 另类 区 | 国产图片综合区 | 日本男男gayxxxxx免费 | 9420高清完整版在线观看国语 |