日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql行级视图与列级视图_[数据库]--DML、DDL、TCL语言

發布時間:2024/10/8 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql行级视图与列级视图_[数据库]--DML、DDL、TCL语言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DML語言(數據操作語言)

1.插入語句insert

語法1:

insert into 表名(列名...) values(值...)

注意:

1.插入的值的字段必須和值匹配

2.插入的值的類型必須和字段的數據類型一致

3.不可以為null(非空)的列必須插入值

可以為null的列如何插入數據信息

(1)給出列名并填寫null值

(2)列名和值名都不寫

4.列的順序可以進行調換(數值順序也要跟隨列內容調換)

5.列數和值的個數一致與否

6.可以省略列名,默認所有列,

一定要注意插入信息列的順序和表中的列的順序一致

語法2:

insert into 表名 set 列名=值,......

兩種寫法的區別,第一種插入數據寫法支持:

1.批量添加數據

2.支持子查詢

2.修改語句update

修改表記錄

(1)修改單表記錄

對于單個或者多個列名都可以修改相應的值

語法:

update 表名

set 列名=值,列名=值...

where 篩選條件;

(2)修改多表記錄

注意:表必須寫別名

語法:

sql92標準:

update 表1 別名,表2 別名

set 列=值......

where 連表條件

and 篩選條件;

sql99標準:

update 表1 別名

inner/left/right 表2 別名

on 連表條件

set 列=值......

where 篩選條件;

3.刪除語句delete、truncate

(1)delete:整行刪除,一刪一行

1.1單表刪除

語法:

delete from 表名 where 篩選條件;

1.2多表刪除

語法:

sql92標準:

delete 表1 別名,表2 別名

from 表名

where 連表條件

and 篩選條件;

sql99標準:

delete 表1 別名,表2 別名

from 表1 別名,

inner/left/right 表2 別名

on 連表條件

where 篩選條件;

(2)truncate:整表刪除(清空整表)

語法:

TRUNCATE TABLE 表名;

delete和truncate的區別:

1.delete可以加where 篩選條件,truncate不能加

2.truncate刪除的效率高

3.假如需要刪除的表中有自增長列

如果用delete刪除后,再插入數據,自增長列的值從斷點開始。

用truncate刪除后,再插入數據,自增長列的值從1開始

4.truncate刪除沒有返回值,delete刪除有返回值

5.truncate刪除不能回滾,delete刪除能回滾

DDL語言(數據定義語言)

創建 create

修改 alter

刪除 drop

1.庫的管理

創建

CREATE DATABASE IF NOT EXISTS books;

修改庫名

RENAME DATABASE 舊庫名 TO 新庫名;

修改庫的字符集

ALTER DATABASE 庫名 CHARACTER SET 字符集;

刪除

DROP DATABASE 庫名;

2.表的管理

創建

語法:

CREATE TABLE 表名(

列名 列的類型[(長度),約束]

列名 列的類型[(長度),約束]

列名 列的類型[(長度),約束]

......);

修改

(1)修改表名

ALTER TABLE 舊表名 RENAME TO 新表名;

(2)修改列名

ALTER TABLE 表名 CHANGE COLUMN 舊列名 新列名 列的類型;

(3)修改列的類型

ALTER TABLE 表名 MODIFY COLUMN 列名 新類型;

(4)添加新列add

ALTER TABLE 表名 ADD COLUMN 新列名 類型;

(5)刪除列drop

ALTER TABLE 表名 DROP COLUMN 列名;

刪除表

DROP TABLE IF EXISTS 表名;

復制

復制表的結構

CREATE TABLE copy LIKE 表名;

復制表的結構和數據

CREATE TABLE copy2 SELECT * FROM 表名;

復制表的部分數據

CREATE TABLE copy3 SELECT 字段1,字段2 FROM 表名 WHERE nation='中國';

復制表的部分字段

CREATE TABLE copy4 SELECT 字段1,字段2 FROM 表名 WHERE 1=2;

3.完整性約束:

3.1主鍵約束

表中有一列或者多列的組合,要求主鍵字段的數據的唯一性,并且不能為空。

單字段約束:

在定義字段的同時定義主鍵

字段名 數據類型 primary key

->字段名1 數據類型(字段約束條件) primary key,

在定義完字段后定義主鍵

primary key(字段名);

多字段約束:

primary key(字段名1,字段名2,...)

3.2主鍵自增約束:

每次插入新的信息時,系統會自動遞增生成字段的主鍵值

在一個表上自動遞增的字段只有一個

字段名 數據類型 primary key auto_increment;

3.3外鍵約束:

外鍵就是在不同的表之間建立鏈接,一個表可以有一個或者多個外鍵

外鍵不一定是本表的主鍵,但對應的是另一個表的主鍵

與外鍵關聯的字段不允許被刪除,如果必須要刪除首先要將外鍵撤銷

foreing key(字段名) reference 主表名(主鍵字段);

3.4非空約束:

字段值不能為空

字段名 數據類型 not null;

3.5唯一性約束:

對某字段使用此約束,允許為空,但是只出現一個空值

字段名 數據類型 unique;

4.約束

含義:一種限制,用來限制表中的數據,為了保證數據的可靠性和準確性

常見約束(六大約束)

NOT NULL:非空約束,用來保證該字段對應的值不能為空(姓名、學號)

DEFAULT:默認約束,用來保證該字段有默認值(性別)

PRIMARY KEY:主鍵約束,用來保證該字段的值具有唯一性,并且非空(員工編號),約束性最強

UNIQUE:唯一約束,保證該字段的值具有唯一性,對應的值能為空(座位號)

CHECK:檢查約束,【mysql中不支持check約束】(性別) 約束性條件

FOREIGN KEY:外鍵約束,用來限制兩個表的關系

要有保證兩表連接的字段

用來保證該字段的值必須來自于主表的關聯列

CREATE TABLE 表名(

字段名1 字段類型 列級約束

字段名2 字段類型 列級約束

表級約束

)

4.1添加約束的時機:

1.創建表時

2.修改表時

4.2約束的分類:

1.列級約束

支持六大約束,外鍵約束沒有效果

2.表級約束

除了非空、默認約束以外其他都支持

4.3創建表時添加約束:

4.3.1列級約束:直接在字段名和類型后面追加約束類型

支持默認、非空、唯一、主鍵

4.3.2表級約束:在所有字段的最后面

CONSTRAINT 約束名 約束類型(字段名)

4.4修改表時添加約束:

4.4.1列級約束:

ALTER TABLE 表名 MODIFY COLUMN 字段 字段類型 新約束;

4.4.2表級約束:

ALTER TABLE 表名 ADD 新約束(字段);

4.5修改表時刪除約束

4.5.1刪除外鍵約束

ALTER TABLE 表名 DROP FOREIGN KEY 外鍵連接名;

5.標識列

含義:類似于約束的自增長列

可以不用手動插入值,系統提供默認的序列值

auto_increment_increment 每次增長的步長值

auto_increment_offset 偏移量(起始值)

特點:1.一個表里的標識列至多只有一個

2.標識列不一定和主鍵一起使用

標識列必須和約束一起使用

3.標識列可以進行數據設置

SET auto_increment_increment=步長值

添加標識列的時機:

1.創建表時

CREATE TABLE tab_indentity(

id INT PRIMARY KEY auto_increment,

NAME VARCHAR(20)

);

2.修改表時

ALTER TABLE 表名 MODIFY COLUMN 字段 約束 auto_increment;

3.修改表時刪除標識列

ALTER TABLE 表名 DROP 約束 auto_increment;

TCL語言(事務控制語言)

1.事務:一個或者一組sql語句組成一個執行單元,這個執行單元

要么全部不執行,相互依賴

2.事務處理

數據庫的存儲引擎

回滾:事務執行失敗,所有受到影響的數據將回到事物開始之前的狀態

反之如果單元中的所有sql語句都執行成功,則事務被順利執行

3.事務的特性ACID:

3.1原子性(Atomicity)

一個事物不可分割,執行單元要么全部執行,要么全部不執行

3.2一致性(Consistency)

一個事物會使數據從一個統一狀態切換到另一個統一狀態

3.3隔離性(Isolation)

事物之間的各自sql語句執行過程不受其他事物打擾

3.4持久性(Durability)

一個事物一旦提交,則會永久的改變數據庫的數據

4.事物創建

檢查事務提交的狀態

4.1隱式事務的創建:事務沒有明顯的開啟和結束的標記

insert update delete

4.2顯式事務的創建:事務有明顯的開啟和結束的標記

1.注意,顯式事務的創建之前必須禁用自動提交功能

SET autocommit=0;

2.開啟事務

SET autocommit=1;

START TRANSACTION;(可選)

3.編寫事務中sql語句(select insert update delete)

語句一;

語句二;

......

4.結束事務

Rollback;回滾

Commit;提交

Savepoint;設置節點保存

5.視圖的講解

含義:虛擬的表,和數據庫中普通表一樣使用

創建:

create view 視圖名

as

查詢語句;

刪除:

DROP VIEW 視圖名

本文地址:https://blog.csdn.net/qq_45207305/article/details/107419072

如您對本文有疑問或者有任何想說的,請點擊進行留言回復,萬千網友為您解惑!

總結

以上是生活随笔為你收集整理的mysql行级视图与列级视图_[数据库]--DML、DDL、TCL语言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。