久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL數(shù)據(jù)庫(kù)的基本命令有哪些

共計(jì) 7439 個(gè)字符,預(yù)計(jì)需要花費(fèi) 19 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、概述數(shù)據(jù)庫(kù)結(jié)構(gòu)

數(shù)據(jù)庫(kù)– 數(shù)據(jù)表– 行(記錄):用來(lái)描述一個(gè)對(duì)象的信息
  列(字段):用來(lái)描述對(duì)象的一個(gè)屬性

常用數(shù)據(jù)類型類型說(shuō)明 int 整型 float 單精度浮點(diǎn) ——- 4 字節(jié) 32 位 double 雙精度浮點(diǎn) ——- 8 字節(jié) 64 位 char 固定長(zhǎng)度的字符類型 varchar 可變長(zhǎng)度的字符類型 text 文本 image 圖片 decimal (5,2)5 個(gè)有效長(zhǎng)度數(shù)字,小數(shù)點(diǎn)后面有 2 位

補(bǔ)充
char 最多能存放字符個(gè)數(shù) 255 個(gè),char 如果存入數(shù)據(jù)的實(shí)際長(zhǎng)度比指定長(zhǎng)度要小,會(huì)補(bǔ)空格至指定長(zhǎng)度;如果存入的數(shù)據(jù)的實(shí)際長(zhǎng)度大于指定長(zhǎng)度,低版本會(huì)被截取,高版本會(huì)報(bào)錯(cuò)。
char 的長(zhǎng)度是不可變的,而 varchar 的長(zhǎng)度是可變的,也就是說(shuō),定義一個(gè) char[10] 和 varchar[10], 如果存進(jìn)去的是‘csdn’, 那么 char 所占的長(zhǎng)度依然為 10,除了字符‘csdn’外,后面跟六個(gè)空格,而 varchar 就立馬把長(zhǎng)度變?yōu)?4 了

varchar 存儲(chǔ)規(guī)則:
4.0 版本以下,varchar(20),指的是 20 字節(jié),如果存放 UTF8 漢字時(shí),只能存 6 個(gè)(每個(gè)漢字 3 字節(jié))
5.0 版本以上,varchar(20),指的是 20 字符,無(wú)論存放的是數(shù)字、字母還是 UTF8 漢字(每個(gè)漢字 3 字節(jié)),都可以存放 20 個(gè),最大大小是 65532 字節(jié)。

二、查看數(shù)據(jù)庫(kù)結(jié)構(gòu)查看當(dāng)前服務(wù)器中的數(shù)據(jù)庫(kù)

SHOW DATABASES; #不區(qū)分大小寫,分號(hào)“;”表示結(jié)束

查看數(shù)據(jù)庫(kù)中包含的表

USE  數(shù)據(jù)庫(kù)名;SHOW TABLES;

查看表的結(jié)構(gòu)(字段)

方法 1USE  數(shù)據(jù)庫(kù)名; 可縮寫成:DESC  表名; 方法 2DESCRIBE  數(shù)據(jù)庫(kù)名. 表名;

三、SQL 語(yǔ)句介紹

SQL 語(yǔ)句用于維護(hù)管理數(shù)據(jù)庫(kù),包括數(shù)據(jù)查詢、數(shù)據(jù)更新、訪問(wèn)控制、對(duì)象管理等功能。

分類說(shuō)明 DDL 數(shù)據(jù)定義語(yǔ)言,用于創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象,如庫(kù)、表、索引等 DML 數(shù)據(jù)操縱語(yǔ)言,用于對(duì)表中的數(shù)據(jù)進(jìn)行管理 DQL 數(shù)據(jù)查詢語(yǔ)言,用于從數(shù)據(jù)表中查找符合條件的數(shù)據(jù)記錄 DCL 數(shù)據(jù)控制語(yǔ)言,用于設(shè)置或者更改數(shù)據(jù)庫(kù)用戶或角色權(quán)限四、創(chuàng)建及刪除數(shù)據(jù)庫(kù)和表(DDL)創(chuàng)建新的數(shù)據(jù)庫(kù)

CREATE DATABASE  數(shù)據(jù)庫(kù)名; 例如:create database arts;

創(chuàng)建新的表

CREATE TABLE  表名  (字段 1   數(shù)據(jù)類型, 字段 2   數(shù)據(jù)類型[,...][,PRIMARY KEY (主鍵名)]);# 主鍵一般選擇能代表唯一性的字段不允許取空值(NULL),一個(gè)表只能有一個(gè)主鍵。例:create database arts;use arts;create table star (id int not null,name char(20) not null,sex char(2),primary key (id));desc star;

刪除指定數(shù)據(jù)表

如不用 USE 進(jìn)入庫(kù)中,則需加上數(shù)據(jù)庫(kù)名 DROP TABLE  數(shù)據(jù)庫(kù)名. 表名; 進(jìn)入數(shù)據(jù)庫(kù),則直接加表名 drop table  表名

刪除指定的數(shù)據(jù)庫(kù)

DROP DATABASE  數(shù)據(jù)庫(kù)名;

五、管理表中數(shù)據(jù)記錄(DML)向數(shù)據(jù)表中插入新的數(shù)據(jù)記錄

INSERT INTO  表名(字段 1, 字段 2[,...]) VALUES(字段 1 的值, 字段 2 的值,...); 例:create database market;use market;create table star (id int(3) not null,name char(20),sex char(2),age int(3),passwd varchar(50), primary key (id));insert into star (id,name,sex,age,passwd) values(1, zz , 男 ,18,12345678);select * from star;

補(bǔ)充密碼加密

查詢數(shù)據(jù)記錄

SELECT  字段名 1, 字段名 2[,...] FROM  表名  [WHERE  條件表達(dá)式]; 例:select * from star;select name,sex from star where id=1;

以列表方式豎向顯示

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

只顯示頭 2 行
MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
顯示第 2 行后的前 3 行

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

修改、更新數(shù)據(jù)表中的數(shù)據(jù)記錄

UPDATE  表名  SET  字段名 1 = 字段值 1[, 字段名 2 = 字段值 2] [WHERE  條件表達(dá)式]; 例:update star set age=33 where name= pp select * from star;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

在數(shù)據(jù)表中刪除指定的數(shù)據(jù)記錄

DELETE FROM  表名  [WHERE  條件表達(dá)式]; 例:delete from star where id=6;select * from star;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

六、修改表名和表結(jié)構(gòu)修改表名

ALTER TABLE  舊表名  RENAME  新表名; 例:alter table star rename art;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

擴(kuò)展表結(jié)構(gòu)(增加字段)

ALTER TABLE  表名  ADD address varchar(50) default  地址不詳 #default ‘地址不詳’:表示此字段設(shè)置默認(rèn)值   地址不詳;可與  NOT NULL  配合使用例:alter table star add address varchar(50) default  地址不詳

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

修改字段(列)名,添加唯一鍵

ALTER TABLE  表名  CHANGE  舊列名   新列名   數(shù)據(jù)類型  [unique key]; 例:alter table star change name art_name varchar(20) unique key;select * from star;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

刪除字段

ALTER TABLE  表名  DROP  字段名; 例:alter table star drop address;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

擴(kuò)展

CREATE DATABASE school;use school;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:表示檢測(cè)要?jiǎng)?chuàng)建的表是否已存在,如果不存在就繼續(xù)創(chuàng)建 #int(4) zerofill:表示若數(shù)值不滿 4 位數(shù),則前面用“0”填充,例 0001#auto_increment:表示此字段為自增長(zhǎng)字段,即每條記錄自動(dòng)遞增 1,默認(rèn)從 1 開始遞增;自增長(zhǎng)字段數(shù)據(jù)不可以重復(fù);自增長(zhǎng)字段必須是主鍵;如添加的記錄數(shù)據(jù)沒有指定此字段的值且添加失敗也會(huì)自動(dòng)遞增一次#unique key:表示此字段唯一鍵約束,此字段數(shù)據(jù)不可以重復(fù);一張表中只能有一個(gè)主鍵,  但是一張表中可以有多個(gè)唯一鍵#not null:表示此字段不允許為 NULL

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

七、數(shù)據(jù)表高級(jí)操作克隆表,將數(shù)據(jù)表的數(shù)據(jù)記錄生成到新的表中方法一

create table test1 like info; # 通過(guò)  LIKE  方法,復(fù)制  info  表結(jié)構(gòu)生成  test1  表 insert into test1 select * from info;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

方法二

CREATE TABLE test2 (SELECT * from info);show create table test2\G; #獲取數(shù)據(jù)表的表結(jié)構(gòu)、索引等信息 SELECT * from test2;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

清空表,刪除表內(nèi)的所有數(shù)據(jù)方法一:記錄 ID 未刪除

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

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

方法二:刪除記錄 ID

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

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

創(chuàng)建臨時(shí)表

臨時(shí)表創(chuàng)建成功之后,使用 SHOW TABLES 命令是看不到創(chuàng)建的臨時(shí)表的,臨時(shí)表會(huì)在連接退出后被銷毀。如果在退出連接之前,也可以可執(zhí)行增刪改查等操作,比如使用 DROP TABLE 語(yǔ)句手動(dòng)直接刪除臨時(shí)表。

CREATE TEMPORARY TABLE  表名  (字段 1   數(shù)據(jù)類型, 字段 2   數(shù)據(jù)類型[,...][,PRIMARY KEY (主鍵名)]); 例:create temporary table test3 (id int(4) zerofill primary key auto_increment,name varchar(10) not null,sex char(2) not null);insert into test3 values(1, as , 男 select * from test3;show tables;quit;mysql -u root -pselect * from test3;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

創(chuàng)建外鍵約束,保證數(shù)據(jù)的完整性和一致性

外鍵的定義:如果同一個(gè)屬性字段 X 在表一中是主鍵,而在表二中不是主鍵,則字段 X 稱為表二的外鍵。

主鍵表和外鍵表的理解:
以公共關(guān)鍵字作主鍵的表為主鍵表(父表、主表)
以公共關(guān)鍵字作外鍵的表為外鍵表(從表、外表)

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

#創(chuàng)建主表 test4create table test4 (hobid int(4),hobname varchar(50));#創(chuàng)建從表 test5create table test5 (id int(4) primary key auto_increment,name varchar(10),age int(3),hobid int(4));#為主表 test4 添加一個(gè)主鍵約束,主鍵名建議以“PK_”開頭 alter table test4 add constraint PK_hobid primary key (hobid);# 為從表 test5 表添加外鍵,并將 test5 表的 hobid 字段和 test4 表的 hobid 字段建立外鍵關(guān)聯(lián),外鍵名建議以“FK_”開頭 alter table test5 add constraint FK_hob foreign key (hobid) references test4 (hobid);desc test5;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
插入新的數(shù)據(jù)記錄時(shí),要先主表再?gòu)谋?/p>

insert into test4 values (1, reading insert into test5 values (1, ad ,18,1);

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
刪數(shù)據(jù)記錄時(shí),要先從表再主表,也就是說(shuō)刪除主鍵表時(shí)必須要先刪除其他與之相關(guān)聯(lián)的表

drop tables test5;drop tables test4;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
查看和刪除外鍵約束

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

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

MySQL 中 6 種常見的約束

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

八、數(shù)據(jù)庫(kù)用戶授權(quán)新建用戶

USER  用戶名 @ 來(lái)源地址  [IDENTIFIED BY [PASSWORD]  密碼 #---------------------- 解釋部分 ----------------------------------------- 用戶名:指定將創(chuàng)建的用戶名 來(lái)源地址:指定新創(chuàng)建的用戶可在哪些主機(jī)上登錄,可使用 IP 地址、網(wǎng)段、主機(jī)名的形式,  本地用戶可用 localhost,允許任意主機(jī)登錄可用通配符 % 密碼:若使用明文密碼,直接輸入 密碼,插入到數(shù)據(jù)庫(kù)時(shí)由 Mysql 自動(dòng)加密;  若使用加密密碼,需要先使用 SELECT PASSWORD( 密碼   獲取密文,再在語(yǔ)句中添加  PASSWORD  密文 
  若省略“IDENTIFIED BY”部分,則用戶的密碼將為空(不建議使用)#---------------------------------------------------------------------- 例如:create user  test1 @ localhost  IDENTIFIED BY  123456 select password(123456 create user  test2 @ localhost  IDENTIFIED BY PASSWORD  *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

查看用戶信息

# 創(chuàng)建后的用戶保存在  mysql  數(shù)據(jù)庫(kù)的  user  表里 use mysql;select user,authentication_string,Host from user;

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

重命名用戶

rename user  test1 @ localhost  to  zz @ localhost

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

刪除用戶

drop user  test2 @ localhost

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

修改當(dāng)前登錄用戶密碼

當(dāng)前密碼為 abc123

set PASSWORD = PASSWORD(123456

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

修改其他用戶密碼

set PASSWORD for  zz @ localhost  = PASSWORD(abc123

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

忘記 root 密碼的解決辦法方法一:修改 /etc/my.cnf 配置文件,不使用密碼直接登錄到 mysql

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

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

使用 update 修改 root 密碼,刷新數(shù)據(jù)庫(kù)

update mysql.user set AUTHENTICATION_STRING = PASSWORD(abc123) where user= root FLUSH PRIVILEGES;quit;mysql -u root -pabc123 注意:最后再把  /etc/my.cnf  配置文件里的  skip-grant-tables  刪除或注釋,并重啟  mysql  服務(wù)。

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

九、數(shù)據(jù)庫(kù)用戶授權(quán)授予權(quán)限

GRANT 語(yǔ)句:專門用來(lái)設(shè)置數(shù)據(jù)庫(kù)用戶的訪問(wèn)權(quán)限。
當(dāng)指定的用戶名不存在時(shí),GRANT 語(yǔ)句將會(huì)創(chuàng)建新的用戶;
當(dāng)指定的用戶名存在時(shí),GRANT 語(yǔ)句用于修改用戶信息。

格式 GRANT  權(quán)限列表  ON  數(shù)據(jù)庫(kù)名. 表名  TO  用戶名 @ 來(lái)源地址  [IDENTIFIED BY  密碼 #------------------------------- 參數(shù)解釋 --------------------------------------------------------------------------- 權(quán)限列表:  用于列出授權(quán)使用的各種數(shù)據(jù)庫(kù)操作,以逗號(hào)進(jìn)行分隔,如“select,insert,update”。使用“all”表示所有權(quán)限,可授權(quán)執(zhí)行任何操作。  數(shù)據(jù)庫(kù)名. 表名:  用于指定授權(quán)操作的數(shù)據(jù)庫(kù)和表的名稱,其中可以使用通配符“*”。例如,使用“test.*”表示授權(quán)操作的對(duì)象為  test 數(shù)據(jù)庫(kù)中的所有表。  用戶名 @ 來(lái)源地址 :  用于指定用戶名稱和允許訪問(wèn)的客戶機(jī)地址,即誰(shuí)能連接、能從哪里連接。來(lái)源地址可以是域名、IP  地址,還可以使用“%”通配符,表示某個(gè)區(qū)域或網(wǎng)段內(nèi)的所有地址,如“%.test.com”、“192.168.19.%”等。IDENTIFIED BY:  用于設(shè)置用戶連接數(shù)據(jù)庫(kù)時(shí)所使用的密碼字符串。在新建用戶時(shí),若省略“IDENTIFIED BY”部分,則用戶的密碼將為空。例如:# 允許用戶  lili  在本地查詢  kky  數(shù)據(jù)庫(kù)中所有表的數(shù)據(jù)記錄,但禁止查詢其他數(shù)據(jù)庫(kù)中的表的記錄。GRANT select ON kky.* TO  lili @ localhost  IDENTIFIED BY  abc123 flush privileges;quit;mysql -u lili -pabc123use kky;show tables;select * from info; 其他授權(quán)例子:# 允許用戶  pp  在所有終端遠(yuǎn)程連接  mysql ,并擁有所有權(quán)限。GRANT ALL PRIVILEGES(可不寫) ON *.* TO  pp @ %  IDENTIFIED BY  123456

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些
MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

查看權(quán)限

SHOW GRANTS FOR  用戶名 @來(lái)源地址; 例如:SHOW GRANTS FOR  lili @ localhost

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

撤銷權(quán)限

REVOKE  權(quán)限列表  ON  數(shù)據(jù)庫(kù)名. 表名  FROM  用戶名 @來(lái)源地址; 例如:REVOKE SELECT ON kky.* FROM  lili @ localhost SHOW GRANTS FOR  lili @ localhost #USAGE 權(quán)限只能用于數(shù)據(jù)庫(kù)登陸,不能執(zhí)行任何操作;USAGE 權(quán)限不能被回收,即  REVOKE  不能刪除用戶。flush privileges;REVOKE ALL ON *.* FROM  lili @ localhost

MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些

以上是“MySQL 數(shù)據(jù)庫(kù)的基本命令有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-17發(fā)表,共計(jì)7439字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 洛川县| 固阳县| 清水县| 城固县| 彩票| 绥江县| 苗栗市| 岳普湖县| 鹤庆县| 绥阳县| 措美县| 会同县| 济源市| 东丰县| 红桥区| 西安市| 青州市| 嘉义市| 淮北市| 白水县| 社会| 台湾省| 大丰市| 纳雍县| 苗栗市| 安新县| 乡宁县| 通许县| 台山市| 孟州市| 清徐县| 化德县| 威远县| 江川县| 宜宾市| 沅江市| 济阳县| 仁寿县| 鄂托克前旗| 阳高县| 东平县|