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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL进阶(DDL与DML)

發布時間:2025/3/15 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL进阶(DDL与DML) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.DDL

1.1對庫的管理

1.2對表的操作

1.3常用的數據類型(補充)

1.4約束

2.DML

2.1.向表中插入數據:(兩種方式)

2.2.修改語句:

2.3.刪除語句

2.4.delete? PK? ? truncate【面試題】


????????人生百味,世事無常,猶如多端的天氣,生活窘迫、工作壓抑,只不過是人生中的風雨罷了。陽光,總在風雨后只要你堅持著目標,堅持著自己的理想,總會在風雨過后,擁抱屬于自己的燦爛陽光。

前面講解了數據庫知識中,對表中的數據進行增刪改查,接下來將為大家介紹兩種新語法:DDL,DML它們是對庫和表進行操作。如果大家需要請自行收藏起來。

1.DDL

? ? ? ? DDL語言也就是數據庫定義語言,就是用來操作數據庫和對表的管理,比如對數據庫的增刪改查表的增刪改查

1.1對庫的管理

1.庫的創建:

創建數據庫并指定字符集: create database if not exists 數據庫名 character set 字符集名

2.庫的查看:

查詢所有數據庫名稱: show databases;

3.查詢或者修改某個數據庫的字符集:

查詢某個數據庫的字符集: show create database 數據庫名;修改數據庫字符集: alter database 數據庫名 character set 字符集名

4.刪除數據庫:

刪除數據庫: drop database if exists 數據庫名;

5.查看當前正在使用的數據庫:

查看當前正在使用的數據庫: select database()

6.庫的使用:

use 數據庫名稱

1.2對表的操作

1.創建表:

表的創建: create table 表名(字段名 數據類型 【字段約束】);

2.查看當前庫中所有表:

查看當前庫中所有表: show tables ;

3.查看表的結構:

desc 表名;

4.修改表的名稱:

修改表名: alter table 表名 rename to 新的表名

5.修改表的字符集:

alter table 表名 character set 字符集名

6.添加列:

添加列: alter table add column 列名 數據類型 【約束】

7.修改列的名稱和類型:

修改列名稱 類型: alter table 表名 change 列名 新列別 新數據類型;alter table 表名 modify 列名 新數據類型;

8.刪除列和刪除表:

刪除列:alter table 表名 drop 列名;刪除表:drop table if exists 表名;

1.3常用的數據類型(補充)

1.int 整型

2.double 小數類型

3.date 日期型:只包含年月日。yyyy-MM-dd

4.datetime 日期,包含年月日時分秒 yyyy-MM-dd HH:mm:ss

5.timestamp 時間搓類型 包含年月日時分秒?yyyy-MM-dd HH:mm:ss

注意:

????如果將來不給這個字段賦值,或賦值為null,則默認使用當前的系統時間,來自動賦值

6.varchar 字符串

1.4約束

1.概念

?對表中的數據進行限定,保證數據的正確性、有效性和完整性。

2.分類

1.主鍵約束?primary key

2.非空約束 not null

3.唯一約束unique

4.外鍵約束 foreign key

具體代碼實現:

? ? ? ? 1.列級約束

用法: CREATE TABLE 表名(字段名 字段類型 約束,字段名 字段類型,表級約束);舉例: CREATE TABLE stuinfo(id INT PRIMARY KEY,stuname VARCHAR(20) NOT NULL,gender CHAR(1) CHECK(gender='男' OR gender='女'),seat INT UNIQUE,age INT DEFAULT 18,majorid INT REFERENCES major(id));

? ? ? ? 2.表級約束

語法:在所有字段的最下面:constraint 約束名 約束類型 (字段名)舉例: CREATE TABLE stuinfo(id INT ,stuname VARCHAR(20),gender CHAR(1) ,seat INT,age INT ,majorid INT ,CONSTRAINT pk PRIMARY KEY(id),CONSTRAINT uq UNIQUE(seat),CONSTRAINT pk FOREIGN KEY(majorid) REFERENCES major(id)

? 3.通用格式

CREATE TABLE 表名(id INT PRIMARY KEY,stuname VARCHAR(20) NOT NULL,gender CHAR(1) CHECK(gender='男' OR gender='女'),seat INT UNIQUE,age INT DEFAULT 18,majorid INT ,CONSTRAINT pk FOREIGN KEY(majorid) REFERENCES major(id)

?這是創建表時,添加約束,當然修改表時依然能夠添加約束,這里簡單的提一下:

1.列級約束(不支持外鍵)
alter table 表名 modify column 字段名 ?字段類型 新約束
2.表級約束(非空,默認不支持)
alter table 表名 add ?【constraint 約束名】 約束類型(字段名)【外鍵引用】

?

1.添加非空約束 ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL2.添加默認約束 ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 183.添加主鍵 ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;ALTER TABLE stuinfo ADD COLUMN PRIMARY KEY(id);4.添加唯一鍵ALTER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;5.添加外鍵ALTER TABLE stuinfo ADD FOREIGN KEY(majorid) REFERENCES major(id);

4.修改表時刪除約束:

1.刪除非空約束 ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL2.刪除默認約束 ALTER TABLE stuinfo MODIFY COLUMN age INT 3.刪除主鍵 ALTER TABLE stuinfo DROP PRIMARY KEY;4.刪除唯一鍵ALTER TABLE stuinfo DROP INDEX seat ;5.刪除外鍵ALTER TABLE stuinfo DROP FOREIGN KEY(majorid) ;

==================================================================================================================================================

補充

? ? ? ? 標識列:?又叫自增長列
含義:可以不用手動的插入值,系統提供默認的序列值
特點:
1.標識列不一定和主鍵搭配,但要求是一個key
2.一個表至多一個
3.標識列的類型只能是數值型
4.標識列可以通過set auto_increment_increment=3設置步長

代碼實現:

一.設置步長(一般不設置):SET auto_increment_increment=3;二.修改表時設置標識列:ALTER TABLE tab_id MODIFY COLUMN id INT PRIMARY KEY AUTO_INCREMENT;三.修改表時刪除標識列:ALTER TABLE tab_id MODIFY COLUMN id INT ;

2.DML

?DML?是對數據庫的增刪改操作,即添加表中的數據,刪除表中的數據,修改表中的數據。
主要關鍵字,insert(添加),delete(刪除),update(修改)。

2.1.向表中插入數據:(兩種方式)

語法一: insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);舉例: INSERT INTO `beauty` VALUES(14,'劉哲銘','女','1990-12-12','189888888',NULL,2), (15,'吳寶生','女','1990-12-12','189888888',NULL,2); ================================================================= 語法二: insert into 表名 set 列名=值,列名=值......舉例: INSERT INTO `beauty` SET id=19,NAME='劉濤',phone='999';

2.2.修改語句:

1.修改單表的記錄:update 表名 set 列=值,列=值...... where 篩選條件 例子: UPDATE `beauty` SET `phone`='321321' WHERE `name`='某某';2.修改多表的記錄(SQL99語法): update 表一 別名 inner |left|right| join 表二 別名 on 連接條件 set 列=值 where 篩選條件;例子: 修改張無忌的女朋友的手機號為11111:UPDATE `beauty` b INNER JOIN `boys` bo ON b.`boyfriend_id`=bo.`id` SET b.`phone`='111111111111111111' WHERE bo.`boyName`='張無忌';

2.3.刪除語句

方式一:delete 語法: 單表的刪除:delete from 表名 where 篩選條件多表的刪除【補充】 sql92:delete 表一的別名 from 表一 別名 where 連接條件 and 篩選條件sql99: delete 表一的別名 ,表二的別名 from 表一 別名 inner | left | right| join 表二 別名 on 連接條件 where 篩選條件#方式二:truncate 清空數據,刪除所有條件 truncate table 表名

2.4.delete? PK? ? truncate【面試題】

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

2.truncate刪除,效率高一丟丟

3.加入說要刪除的表中有自增長列
如果用delete 刪除后。在插入數據,自增長列的值從斷點開始,而truncate刪除后,在插入數據。自增長列的值從1開始。

4.truncate 刪除沒有返回值

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

=========================================================================? ? ? ? 心靈毒雞湯:沒有一條路是平坦的,沒有一座山是毫無崎嶇的,而大海更不會是風平浪靜的。人生之路,荊棘遍地,坎坷泥濘不可計數,唯有堅強者才能披荊斬棘,掃平坎坷走到路的盡頭 。? ? ??

總結

以上是生活随笔為你收集整理的MySQL进阶(DDL与DML)的全部內容,希望文章能夠幫你解決所遇到的問題。

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