国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL數(shù)據(jù)表高級操作

這篇具有很好參考價值的文章主要介紹了MySQL數(shù)據(jù)表高級操作。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、克隆/復(fù)制數(shù)據(jù)表

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

方法一:

create table test2 like test;    #復(fù)制格式,通過LIKE方法,復(fù)制yyy表結(jié)構(gòu)生成yyy2表
insert into test2 select * from test;      #備份內(nèi)容

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

方法二:

CREATE TABLE test3 (SELECT * from test);   #復(fù)制test 表數(shù)據(jù)到test3中

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫
MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

二、清空表,刪除表內(nèi)的所有數(shù)據(jù)

方法一

delete from 表名;

DELETE清空表后,返回的結(jié)果內(nèi)有刪除的記錄條目; DELETE 工作時是一行一行的刪除記錄數(shù)據(jù)的;如果表中有自增長字段,使用DELETE FROM 刪除所有記錄后,再次新添加的記錄會從原來最大的記錄ID后面繼續(xù)自增寫入記錄。

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

方法二

truncate table 表名;

TRUNCATE清空表后,沒有返回被刪除的條目: TRUNCATE 工作時是將表結(jié)構(gòu)按原樣重新建立,因此在速度上TRUNCATE會比DELETE清空表快;使用TRUNCATE TABLE 清空表內(nèi)數(shù)據(jù)后,ID會從1開始重新記錄
MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

刪除小結(jié)

drop table 表名
  • 刪除速度快
  • 表和內(nèi)容和結(jié)構(gòu)刪除
  • 不可以帶 where
  • 不可回滾(無法恢復(fù))
  • 屬于 DDL
truncate table 表名
  • 刪除速度快
  • 表的內(nèi)容刪除
  • 不可以帶where
  • 不可回滾 (無法恢復(fù))
  • 屆于 DDL
delete from 表名
  • 刪除速度慢,需要逐行刪除
  • 刪除后表結(jié)構(gòu)在,表內(nèi)容要看where執(zhí)行的情況
  • 可以帶where
  • 可以回滾 (可恢復(fù))
  • 屬于DML

三、創(chuàng)建臨時表

CREATE TEMPORARY TABLE 表名 (字段1 數(shù)據(jù)類型,字段2 數(shù)據(jù)類型[, ...][, PRIMARY KEY (主鍵名)]);
  • 臨時表創(chuàng)建成功之后,使用 show tables 命令是看不到創(chuàng)建的臨時表的,臨時表會在連接退出后被銷毀。
  • 如果在退出連接之前,也可以可執(zhí)行增刪改查等操作,比如使用DROP TABLE語句手動直接刪除臨時表。
  • 臨時表無法創(chuàng)建外鍵

應(yīng)用場景:可做測試環(huán)境使用,比如刪除大量數(shù)據(jù)的時候,可以創(chuàng)建臨時表 做一個復(fù)雜刪除

四、MySQL中6種常見的約束

  • 主鍵約束(primary key)
  • 外鍵約束(foreign key)
  • 非空約束(not null)
  • 唯一性約束(unique [key|index])
  • 默認(rèn)值約束(default)
  • 自增約束(auto_increment)

1、外鍵的定義

如果同一個屬性字段x在表一中是主鍵,而在表二中不是主鍵,則字段x稱為表二的外鍵。

2、創(chuàng)建外鍵約束作用

創(chuàng)建外鍵約束作用(誤刪,修改),保證數(shù)據(jù)的完整性和一致性。

主鍵表和外鍵表的理解

  1. 以公共關(guān)鍵字作主鍵的表為主鍵表(父表、主表)
  2. 以公共關(guān)鍵字作外鍵的表為外鍵表(從表、外表)

**注意:**與外鍵關(guān)聯(lián)的主表的字段必須設(shè)置為主鍵。要求從表不能是臨時表,主表外鍵字段和從表的字段具備相同的數(shù)據(jù)類型、字符長度和約束。

3、創(chuàng)建主表test4

create table test4 (hobid int(4),hobname varchar(50));

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

4、創(chuàng)建從表test5

create table test5 (id int(4) primary key auto_increment,name varchar(10),age int(3),hobid int(4));

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

5、為主表test4添加一個主鍵約束。主鍵名建議以"PK_”開頭。

alter table test4 add constraint PK_hobid primary key (hobid);

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

6、為從表test5表添加外鍵,并將test5表的hobid字段和test4表的hobid字段建立外鍵關(guān)聯(lián)。外鍵名建議以"FK_”開頭。

alter table test5 add constraint FK_hob foreign key (hobid) references test4 (hobid);

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫
MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

7、可以使用查詢表語句結(jié)構(gòu)命令查看外鍵關(guān)聯(lián)

show create table test5;

desc test4;
desc test5;

8、插入新的數(shù)據(jù)記錄時,要先主表再從表

insert into test4 values(1,'runing');
insert into test5 values(1,'zhangsan',18,1);

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫
MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

9、刪數(shù)數(shù)據(jù)記錄時,要先從表再主表

drop tables test5;
drop tables test4;

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

10、如果要刪除外鍵約束字段先刪除外鍵約束,再刪除外鍵名

show create table test5;
alter table test5 drop foreign key FK_hob;
alter table test5 drop key FK_hob;
desc test5;

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫
MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫
MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫
MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

五、數(shù)據(jù)庫用戶管理

1、新建用戶

CREATE USER '用戶名'@'來源地址' [IDENTIFIED BY [PASSWORD] '密碼'];
  • ‘用戶名’:指定將創(chuàng)建的用戶名
  • ‘來源地址’:指定新創(chuàng)建的用戶可在哪些主機上登錄,可使用IP地址、網(wǎng)段、主機名的形式,本地用戶可用localhost,允許任意主機登錄可用通配符%
  • ‘密碼’:若使用明文密碼,直接輸入’密碼’,插入到數(shù)據(jù)庫時由Mysql自動加密;
  • 若使用加密密碼,需要先使用SELECT PASSWORD(‘密碼’);獲取密文,再在語句中添PASSWORD ‘密文’;若省略“IDENTIFIED BY"部分,則用戶的密碼將為空(不建議使用)

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

2、查看用戶信息

創(chuàng)建后的用戶保存在mysql數(shù)據(jù)庫的user表里

USE mysql;
SELECT User,authentication_string,Host from user;

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

3、重命名指定

RENAME USER 'zhangsan'@'localhost' TO 'lisi'@'localhost';

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

4、刪除用戶

DROP USER 'lisi'@'localhost' ;

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

5、修改當(dāng)前密碼

SET PASSWORD = PASSWORD('abc123');

6、修改其他用戶密碼

SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('abc123T);

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

7、忘記root密碼的解決辦法

修改/etc/my.cnf 配置文件,免密登陸mysql

vim /etc/my.cnf
[mysqld]
skip-grant-tables    #添加,使登錄mysql不使用授權(quán)表
systemctl restart mysqld
mysql    #直接登錄

然后使用SQL語句修改密碼
UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';

FLUSH PRIVILEGES;
quit
mysql -u root -pabc123
PS:最后再把/etc/my.cnf 配置文件里的skip-grant-tables 刪除,并重啟mysql服務(wù)

六、數(shù)據(jù)庫用戶授權(quán)

1、授予權(quán)限

GRANT 權(quán)限列表 ON 數(shù)據(jù)庫名.表名 TO '用戶名'@'來源地址' [IDENTIFIED BY '密碼'];

#權(quán)限列表:用于列出授權(quán)使用的各種數(shù)據(jù)庫操作,以逗號進行分隔,如“select, insert, 
update”。使用"all"表示所有權(quán)限,可授權(quán)執(zhí)行任何操作。

#數(shù)據(jù)庫名.表名:用于指定授權(quán)操作的數(shù)據(jù)庫和表的名稱,其中可以使用通配符"*"。
例如,使用“school.*"表示授權(quán)操作的對象為school數(shù)據(jù)庫中的所有表。

#'用戶名@來源地址':用于指定用戶名稱和允許訪問的客戶機地址,即誰能連接、能從哪里連接。來源地址可以是域名、IP地址,還可以使用“%”通配符,表示某個區(qū)域或網(wǎng)段內(nèi)的所有地址,如“%.xyw.com"、“192. 168.80.%”等。

#IDENTIFIED BY:用于設(shè)置用戶連接數(shù)據(jù)庫時所使用的密碼字符串。
在新建用戶時,若省略“IDENTIFIED BY"部分,則用戶的密碼將為空。

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

2、查看權(quán)限

SHOW GRANTS FOR 用戶名@來源地址;

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

3、撤銷權(quán)限

REVOKE 權(quán)限列表 ON 數(shù)據(jù)庫名.表名 FROM 用戶名@來源地址;

MySQL數(shù)據(jù)表高級操作,mysql,android,數(shù)據(jù)庫

USAGE權(quán)限只能用于數(shù)據(jù)庫登陸,不能執(zhí)行任何操作; USAGE權(quán)限不能被回收,即REVOKE不能刪除用戶。

4、補充

授權(quán)用戶權(quán)限 all privileges 代表了哪些權(quán)限呢?

權(quán)限 含義
insert 插入數(shù)據(jù)
select 查詢數(shù)據(jù)
update 更新表的數(shù)據(jù)
delete 刪除表中的數(shù)據(jù)
drop 刪除庫 和表
create 創(chuàng)建庫,表
index 創(chuàng)建索引
alter 更改表的屬性
create view 創(chuàng)建視圖
create routine 創(chuàng)建存儲過程
alter routine 修改存存儲過程
event 事件
trigger on 創(chuàng)建觸發(fā)器

文章來源地址http://www.zghlxwxcb.cn/news/detail-569869.html

到了這里,關(guān)于MySQL數(shù)據(jù)表高級操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • MySQL數(shù)據(jù)庫——MySQL SELECT:數(shù)據(jù)表查詢語句

    在?MySQL 中,可以使用 SELECT 語句來查詢數(shù)據(jù)。查詢數(shù)據(jù)是指從數(shù)據(jù)庫中根據(jù)需求,使用不同的查詢方式來獲取不同的數(shù)據(jù),是使用頻率最高、最重要的操作。 SELECT 的語法格式如下: 其中,各條子句的含義如下: {*|字段列名} 包含星號通配符的字段列表,表示所要查詢字段的

    2024年02月05日
    瀏覽(232)
  • mysql數(shù)據(jù)庫和數(shù)據(jù)表

    常用的數(shù)據(jù)類型: int : 整型? 用于定義整數(shù)類型的數(shù)據(jù) float : 單精度浮點4字節(jié)32位? 準(zhǔn)確表示到小數(shù)點后六位. double :雙精度浮點8字節(jié)64位 char :固定長度的字符類型? 用于定義字符類型數(shù)據(jù) varchar :可變長度的字符類型 text : 文本 image: :圖片 SQL語言: Structured Query La

    2024年02月10日
    瀏覽(33)
  • 8-MySQL查詢高級用法,數(shù)據(jù)表的關(guān)聯(lián)關(guān)系

    8-MySQL查詢高級用法,數(shù)據(jù)表的關(guān)聯(lián)關(guān)系

    1.分組 group by 詳情見,發(fā)布的第七篇博客文章,7- MySQL函數(shù) 2.排序 order by 說明: 在MySQL中,ORDER BY是一種用于對查詢結(jié)果進行排序的。它可以根據(jù)一列或多列的值,以升序或降序的方式對查詢結(jié)果進行排序,使得查詢者可以更加方便 地查看、分析和處理數(shù)據(jù)。 使用OR

    2024年02月08日
    瀏覽(30)
  • MySQL數(shù)據(jù)庫——MySQL數(shù)據(jù)表添加字段(三種方式)

    MySQL 數(shù)據(jù)表是由行和列構(gòu)成的,通常把表的“列”稱為字段(Field),把表的“行”稱為記錄(Record)。隨著業(yè)務(wù)的變化,可能需要在已有的表中添加新的字段。 MySQL 允許在開頭、中間和結(jié)尾處添加字段。 一個完整的字段包括字段名、數(shù)據(jù)類型和約束條件。MySQL 添加字段的語

    2024年02月08日
    瀏覽(101)
  • MySQL創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表

    MySQL創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表

    文章目錄 前言 一、MySQL數(shù)據(jù)庫是什么? 二、使用步驟 1.顯示當(dāng)前數(shù)據(jù)庫 2.創(chuàng)建數(shù)據(jù)庫 ???????? 3.使用數(shù)據(jù)庫 ???????? 4.刪除數(shù)據(jù)庫 ???????? 5.表的操作 ??? 5.1 顯示數(shù)據(jù)庫中的表 ??? 5.2 創(chuàng)建表 ? ? 5.3 刪除表 ???????? 6.總結(jié) MySQL數(shù)據(jù)庫的創(chuàng)建操作 是一個客戶

    2023年04月08日
    瀏覽(905)
  • MySQL數(shù)據(jù)庫——6、刪除數(shù)據(jù)表

    刪除一個數(shù)據(jù)表,使用 SQL 命令 DROP TABLE 。 DROP TABLE 命令允許從數(shù)據(jù)庫中永久刪除指定的數(shù)據(jù)表及其所有數(shù)據(jù)。 DROP TABLE table_name; ? table_name 是要刪除的數(shù)據(jù)表的名稱。 例如,要刪除名為 users 的數(shù)據(jù)表,可以執(zhí)行以下 SQL 命令: DROP TABLE users; ? 執(zhí)行此命令后,名為 users 的數(shù)據(jù)

    2024年04月11日
    瀏覽(94)
  • MySQL:創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)表,主鍵和外鍵

    MySQL:創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)表,主鍵和外鍵

    目錄 前言: 安裝MySQL: 打開MySQL: 創(chuàng)建數(shù)據(jù)庫: 查看已建數(shù)據(jù)庫: 查看數(shù)據(jù)庫引擎: 創(chuàng)建數(shù)據(jù)表: ?主鍵約束: 單字段主鍵: 多字段聯(lián)合主鍵: 外鍵約束: MySQL數(shù)據(jù)庫安裝了很久,一直也沒靜下心來學(xué)習(xí),因為起步太晚,所以什么都想學(xué)點,又感覺有些力不從心,目前

    2023年04月27日
    瀏覽(696)
  • MySQL數(shù)據(jù)表操作

    MySQL數(shù)據(jù)表操作

    目錄 內(nèi)容如下 一、相關(guān)的概念 one / 表(關(guān)系表) two / 字段(表結(jié)構(gòu)) three / 記錄(具體的數(shù)據(jù)) four / 表之間的關(guān)系 five / 二、數(shù)據(jù)類型 one / 整數(shù)類型 two / 浮點數(shù)類型 three / 定點數(shù)類型 four / 字符類型 five / 日期時間類型 six / 二進制類型 三、存儲引擎 one / 概念 tw

    2024年02月10日
    瀏覽(18)
  • MySql數(shù)據(jù)庫的初步安裝與數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)管理

    MySql數(shù)據(jù)庫的初步安裝與數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)管理

    目錄 一、數(shù)據(jù)庫的相關(guān)了解 1)數(shù)據(jù)庫的概念? 數(shù)據(jù)(Data) 表 數(shù)據(jù)庫系統(tǒng) 2)數(shù)據(jù)庫系統(tǒng)發(fā)展史 第一代數(shù)據(jù)庫 第二代數(shù)據(jù)庫 第三代數(shù)據(jù)庫 當(dāng)今主流數(shù)據(jù)庫介紹 2)數(shù)據(jù)庫的分類? 關(guān)系數(shù)據(jù)庫 非關(guān)系型數(shù)據(jù)庫 非關(guān)系型數(shù)據(jù)庫的優(yōu)點 二、mysql的yum安裝與源碼編譯安裝?? 1)源

    2024年02月08日
    瀏覽(2721)
  • Mysql 查詢數(shù)據(jù)庫或數(shù)據(jù)表中的數(shù)據(jù)量以及數(shù)據(jù)大小

    ?許多數(shù)據(jù)庫的元數(shù)據(jù)都是存儲在mysql中的,例如hive、startrockes,因此可以通過mysql中的“information_schema.TABLES”表來查詢對應(yīng)數(shù)據(jù)庫或?qū)?yīng)數(shù)據(jù)表的具體信息。 1、查詢各個數(shù)據(jù)庫中的數(shù)據(jù)條數(shù)和數(shù)據(jù)大小 2、查詢各個數(shù)據(jù)表中的數(shù)據(jù)條數(shù)和數(shù)據(jù)大小 3、查看指定數(shù)據(jù)庫容量大小

    2024年04月27日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包