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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL(2)数据库管理

發(fā)布時(shí)間:2024/9/3 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL(2)数据库管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、MySQL數(shù)據(jù)庫管理
    • 1.1庫和表
  • 二、查看數(shù)據(jù)庫結(jié)構(gòu)
    • 2.1 查看數(shù)據(jù)庫結(jié)構(gòu)
      • 1.查看當(dāng)前服務(wù)器中的數(shù)據(jù)庫
      • 2.查看數(shù)據(jù)庫中包含的表
      • 3.查看表的結(jié)構(gòu)(字段)
      • 4. 查看mysql版本
    • 2.2 SQL語句
    • 2.3 創(chuàng)建及刪除數(shù)據(jù)庫和表
      • 1) 創(chuàng)建新的數(shù)據(jù)庫
      • 2) 創(chuàng)建新的表
      • 3) 刪除指定的數(shù)據(jù)表
      • 4) 刪除指定的數(shù)據(jù)庫
    • 2.4 管理表中的數(shù)據(jù)記錄
      • 1) 向數(shù)據(jù)表中插入新的數(shù)據(jù)記錄
      • 2) 查詢數(shù)據(jù)記錄
      • 3) 修改、更新數(shù)據(jù)表中的數(shù)據(jù)記錄
      • 4) 在數(shù)據(jù)表中刪除指定的數(shù)據(jù)記錄
    • 2.5 修改表名和表結(jié)構(gòu)
      • 1) 修改表名
      • 2) 擴(kuò)展表結(jié)構(gòu)(增加字段)
      • 3)修改字段(列)名,添加唯一鍵
      • 4) 刪除字段
    • 2.6 使用 if 判斷 創(chuàng)建表并測試自增和填充
  • 三、數(shù)據(jù)表高級操作
    • 3.1 克隆表——將數(shù)據(jù)表的數(shù)據(jù)記錄生成到新的表中
      • 3.1.1 方法一:先創(chuàng)建再導(dǎo)入
      • 3.1.2 方法二:創(chuàng)建的時(shí)候同時(shí)導(dǎo)入
    • 3.2 清空表——刪除表內(nèi)的所有數(shù)據(jù)
      • 3.2.1 方法一:deldte刪除
      • 3.2.2 方法二:truncate刪除
      • 3.2.2 方法三:創(chuàng)建臨時(shí)表
    • 3.3 創(chuàng)建外鍵約束

一、MySQL數(shù)據(jù)庫管理

1.1庫和表

數(shù)據(jù)庫–>數(shù)據(jù)表–>行(記錄):用來描述一個(gè)對象的信息
_______________ 列(字段):用來描述對象的一個(gè)屬性
常用的數(shù)據(jù)類型

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

二、查看數(shù)據(jù)庫結(jié)構(gòu)

2.1 查看數(shù)據(jù)庫結(jié)構(gòu)

1.查看當(dāng)前服務(wù)器中的數(shù)據(jù)庫

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

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

USE 數(shù)據(jù)庫名;
SHOW TABLES;
查看mysql數(shù)據(jù)庫中的表

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

USE 數(shù)據(jù)庫名;
DESCRIBE [數(shù)據(jù)庫名.]表名;
可縮寫成:DESC 表名;

相對路徑查看:

絕對路徑查看

4. 查看mysql版本

select version(); #在mysql內(nèi)查看mysql版本

mysql -V #在linux系統(tǒng)中查看mysql版本

2.2 SQL語句

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

SQL語句分類:
語句 代表的意思
DDL 數(shù)據(jù)定義語言,用于創(chuàng)建數(shù)據(jù)庫對象,如庫、表、索引等
DML 數(shù)據(jù)操縱語言,用于對表中的數(shù)據(jù)進(jìn)行管理
DQL 數(shù)據(jù)查詢語言,用于從數(shù)據(jù)表中查找符合條件的數(shù)據(jù)記錄
DCL 數(shù)據(jù)控制語言,用于設(shè)置或者更改數(shù)據(jù)庫用戶或角色權(quán)限

2.3 創(chuàng)建及刪除數(shù)據(jù)庫和表

1) 創(chuàng)建新的數(shù)據(jù)庫

CREATE DATABASE 數(shù)據(jù)庫名;

2) 創(chuàng)建新的表

CREATE TABLE 表名 (字段1 數(shù)據(jù)類型,字段2 數(shù)據(jù)類型[,…][,PRIMARY KEY (主鍵名)]);
#主鍵一般選擇能代表唯一性的字段不允許取空值(NULL),一個(gè)表只能有一個(gè)主鍵。

例:

CREATE DATABASE ali;
USE ali;
create table market(id int(4) NOT NULL, name char(10), age int(3), PRIMARY KEY(id));
DESC market;

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

DROP TABLE [數(shù)據(jù)庫名.]表名; #如不用USE進(jìn)入庫中,則需加上數(shù)據(jù)庫名

刪除方法一:進(jìn)入目標(biāo)庫

刪除方法二:在要刪除的表前面加上庫名

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

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

2.4 管理表中的數(shù)據(jù)記錄

1) 向數(shù)據(jù)表中插入新的數(shù)據(jù)記錄

INSERT INTO 表名(字段1,字段2[,…]) VALUES(字段1的值,字段2的值,…);
例:
insert into market(id,name,age,passwd) values(2,‘lisi’,20,PASSWORD(‘112233’));
#PASSWORD(‘112233’):查詢數(shù)據(jù)記錄時(shí),密碼字串以加密形式顯示;若不使用PASSWORD(),查詢時(shí)以明文顯示。

INSERT INTO KY08 VALUES(2,‘lisi’,90.5,654321);

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

SELECT 字段名1,字段名2[,…] FROM 表名 [WHERE 條件表達(dá)式];

例:查詢?nèi)繑?shù)據(jù)

SELECT * FROM market;

例:查詢指定數(shù)據(jù)

select id,name from market where id=4;

例:以列表方式豎向顯示

select from market\G;

例:只顯示頭2行
select * from market limit 2;

例:顯示第2行后的前2行
select * from market limit 2,2;

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

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 條件表達(dá)式];
例:修改age

update market set age=19 where id=4;
update market set age=20,passwd=‘111111’ where id=4; #同時(shí)修改age和passwd

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

DELETE FROM 表名 [WHERE 條件表達(dá)式];

例:刪除當(dāng)前表中id為4的數(shù)據(jù)
delete from market where id=4;

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

1) 修改表名

ALTER TABLE 舊表名 RENAME 新表名;

例:
alter table market rename sales;

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

ALTER TABLE 表名 ADD address varchar(50) default ‘地址未填寫!’;
#default ‘地址未填寫!’:表示此字段設(shè)置默認(rèn)值 地址未填寫!;可與 NOT NULL 配合使用

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

ALTER TABLE 表名 CHANGE 舊列名 新列名 數(shù)據(jù)類型 [unique key];

例:修改字段并添加唯一鍵,然后創(chuàng)建數(shù)據(jù)測試。

alter table market change name user_name char(30) unique key;
#CHANGE可修改字段名、數(shù)據(jù)類型、約束等所有項(xiàng)。

4) 刪除字段

ALTER TABLE 表名 drop 字段名;
例:刪除表中 passwd字段
ALTER TABLE market drop passwd;

2.6 使用 if 判斷 創(chuàng)建表并測試自增和填充

use ali; #先進(jìn)入指定的庫

create table if not exists yy (
id int(4) zerofill primary key auto_increment,
name char(20) not null,
sid int(18) not null unique key,
age int(3) not null,
address char(100));

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

測試:創(chuàng)建數(shù)據(jù)測試自動補(bǔ)齊和自增長。

測試:數(shù)據(jù)創(chuàng)建失敗,id的補(bǔ)齊和自增情況

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

3.1 克隆表——將數(shù)據(jù)表的數(shù)據(jù)記錄生成到新的表中

3.1.1 方法一:先創(chuàng)建再導(dǎo)入

create table test01 like info; #通過 LIKE 方法,復(fù)制 info 表結(jié)構(gòu)生成 test01 表
insert into test01 select * from info; #導(dǎo)入數(shù)據(jù)

3.1.2 方法二:創(chuàng)建的時(shí)候同時(shí)導(dǎo)入

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

3.2 清空表——刪除表內(nèi)的所有數(shù)據(jù)

3.2.1 方法一:deldte刪除

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

delete from info; #delete from 表名;

3.2.2 方法二:truncate刪除

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

truncate table info;

3.2.2 方法三:創(chuàng)建臨時(shí)表

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

##添加臨時(shí)表test03
create temporary table test03 (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));

show tables; ## 查看當(dāng)前庫中所有表
insert into test03 values(1,‘zhangsan’,123456789,‘watch a film’); ##在臨時(shí)表中添加數(shù)據(jù)
select * from test03; ##查看當(dāng)前表中所有數(shù)據(jù)
quit ##退出數(shù)據(jù)庫

mysql -u root -p ##重新登錄后進(jìn)行查看
select * from test03; ##查看之前創(chuàng)建的臨時(shí)表中所有數(shù)據(jù),發(fā)現(xiàn)已經(jīng)被自動銷毀

3.3 創(chuàng)建外鍵約束

create table pro (pid int, pname char(20));
create table student (id int, name char(10), age int, proid int);
alter table pro add constraint PK_pid primary key (pid);
alter table student add constraint FK_proid foreign key (proid) references pro (pid);
pro表結(jié)構(gòu)如下:

student表結(jié)構(gòu)如下:

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

#為子表添加一個(gè)主鍵約束。主鍵名建議以“PK_”開頭。

alter table pro add constraint PK_pid primary key (pid);

#為 branch 表添加外鍵,并將 student表的 proid 字段和 pro 表的 pid 字段建立外鍵關(guān)聯(lián)。外鍵名建議以“FK_”開頭。

alter table student add constraint FK_proid foreign key (proid) references pro (pid);

測試刪除:從表的數(shù)據(jù)未刪除,主表的數(shù)據(jù)無法刪除

查看和刪除外鍵約束:

desc test03;
show create table student\G #查看表約束

alter table student drop foreign key FK_proid; 解除外鍵約束
alter table student drop key FK_proid; 刪除外鍵
desc student;

總結(jié)

以上是生活随笔為你收集整理的MySQL(2)数据库管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。