最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySql庫與表的基礎(chǔ)操作大全

 更新時間:2025年10月31日 11:29:43   作者:潘潘潘潘潘潘潘潘潘潘潘潘  
本文詳細(xì)講解了MySQL數(shù)據(jù)庫與表的核心操作,掌握這些基礎(chǔ)操作后,可進(jìn)一步學(xué)習(xí)MySQL的索引優(yōu)化、事務(wù)管理等高級知識,提升數(shù)據(jù)庫操作的效率與安全性,感興趣的朋友跟隨小編一起看看吧

在數(shù)據(jù)庫管理的日常工作中,MySQL 作為一款廣泛使用的關(guān)系型數(shù)據(jù)庫,其庫與表的操作是基礎(chǔ)且關(guān)鍵的技能。無論是創(chuàng)建數(shù)據(jù)庫以存儲業(yè)務(wù)數(shù)據(jù),還是設(shè)計表結(jié)構(gòu)來組織信息,每一步操作都直接影響著后續(xù)數(shù)據(jù)管理的效率與安全性

一、庫的操作

數(shù)據(jù)庫(庫)是 MySQL 中存儲數(shù)據(jù)的頂層容器,所有的表和數(shù)據(jù)都依賴于庫存在。掌握庫的操作,是搭建數(shù)據(jù)存儲框架的第一步。

1.1創(chuàng)建數(shù)據(jù)庫

基礎(chǔ)語法

CREATE DATABASE (if not exists) db_name (create_specification (,create_specification) ...)
create_specification: 
[DEFAULT] CHARACTER SET charset_name 
[DEFAULT] COLLATE collation_name
  • 語法中不看是否是大小寫,大寫的是關(guān)鍵字,一定要寫的
  • if not exists是可選項
  • CHARACTER SET:指定數(shù)據(jù)庫采用的字符集
  • COLLATE:指定數(shù)據(jù)庫字符集的檢驗規(guī)則

創(chuàng)建數(shù)據(jù)庫案例:

  • 創(chuàng)建名為db1的數(shù)據(jù)庫
create database db1;
  • 創(chuàng)建一個使用utf8字符集的db2數(shù)據(jù)庫
create database db2 charset=utf8;
  • 創(chuàng)建一個使用utf8字符集,并帶校對規(guī)則的db3數(shù)據(jù)庫
create database db3 
charset = utf8 
collate utf8_general_ci;

1.2 查看數(shù)據(jù)庫狀態(tài)

創(chuàng)建數(shù)據(jù)庫后,可通過指令查看系統(tǒng)中所有數(shù)據(jù)庫、單個數(shù)據(jù)庫的創(chuàng)建語句,以及字符集、校驗規(guī)則等配置,確保數(shù)據(jù)庫符合預(yù)期

  • 常用指令:
show databases;
  • 查看單個數(shù)據(jù)庫的創(chuàng)建語句(含字符據(jù)、版本兼容配置)
show create database db_name

示例:查看我們剛剛創(chuàng)建的數(shù)據(jù)庫:

  • 查看系統(tǒng)默認(rèn)字符集與校驗規(guī)則:
show variables like 'character_set_database';
show variables like 'collation_database';

1.3字符集和校驗規(guī)則

校驗規(guī)則直接影響數(shù)據(jù)查詢結(jié)果和排序邏輯,以utf8_general_ci(不區(qū)分大小寫)和utf8_bin(區(qū)分大小寫)為例:

操作場景utf8_general_ci(不區(qū)分大小寫)utf8_bin(區(qū)分大小寫)
查詢name='a'的結(jié)果返回aA兩條數(shù)據(jù)僅返回a一條數(shù)據(jù)
name排序結(jié)果順序為a,A,b,B(忽略大小寫排序)順序為A,B,a,b(按ASCII碼排序)

實操驗證:

  • 創(chuàng)建區(qū)分大小寫的數(shù)據(jù)庫test2并插入數(shù)據(jù):
create database test2 collate utf8_bin; #創(chuàng)建數(shù)據(jù)庫test2
use test2;  #使用test2
create table person(name varchar(20));  #在test2創(chuàng)建表person
insert into person values ('A'),('a'),('b'),('B');  #在表person內(nèi)插入數(shù)據(jù)
select * from person where name='a';  #查詢表person內(nèi)name='a'的數(shù)據(jù)

  • 創(chuàng)建不區(qū)分大小的數(shù)據(jù)庫test3并插入數(shù)據(jù)
create database test2 collate utf8_general_ci;
use test2;
create table person(name varchar(20));
insert into person values ('A'),('B'),('a'),('b');
select * from person where name='a';

  • 還可以看一下這兩種校驗規(guī)則插入后,得到的結(jié)果排序:
select * from peison order by name;

1.4 修改、刪除與備份數(shù)據(jù)庫(需謹(jǐn)慎,避免風(fēng)險)

數(shù)據(jù)庫創(chuàng)建后,可能需要調(diào)整配置、清理無用數(shù)據(jù)庫,或備份數(shù)據(jù)以防丟失,這些操作需謹(jǐn)慎執(zhí)行。

  1. 修改數(shù)據(jù)庫:僅支持修改字符集和校驗規(guī)則,語法如下:
ALTER DATABASE db_name [alter_spacification...];

示例:將test2庫的字符集改為gbk

alter database test2 charset=gbk

  1. 刪除數(shù)據(jù)庫:謹(jǐn)慎操作,數(shù)據(jù)不可恢復(fù),語法如下:
 DROP DATABASE (if exists) dbname;

【注】刪除數(shù)據(jù)庫會級聯(lián)刪除所有的表和數(shù)據(jù),且無法恢復(fù),生產(chǎn)環(huán)境需提前備份。

3.數(shù)據(jù)庫的備份與恢復(fù):為了保障數(shù)據(jù)安全
備份與恢復(fù)是數(shù)據(jù)庫運維的核心,需掌握單庫、多庫、單表的備份方式

操作類型語法命令說明
備份單庫mysqldump -P3306 -u root -p密碼 -B dbname > 數(shù)據(jù)庫備份存儲的文件路徑例子:mysqldump -P3306 -u root -p123456 -B test1 > ~/backup/test3.sql
備份多庫mysqldump -u root -p密碼 -B db1 db2... > 路徑/dbs.sql同時備份多個數(shù)據(jù)庫
備份單表mysqldump -u root -p密碼 db_name table1 table2 > 路徑/table.sql僅備份數(shù)據(jù)庫中的指定表
恢復(fù)數(shù)據(jù)mysql> source 路徑/db.sql;登錄 MySQL,再執(zhí)行恢復(fù)命令

【注】前三個是shell命令,后一個是MySQL命令;備份單庫時,-P3306是MySQL的端口;若備份時未加-B參數(shù),恢復(fù)前需創(chuàng)建空數(shù)據(jù)庫并切換到該數(shù)據(jù)庫,再執(zhí)行source命令。

1.5查看連接情況

查看連接情況可以告訴我i們當(dāng)前有哪些用戶連接到我們的MySQL,如果查出某個用戶不是正常登錄的,很可能是數(shù)據(jù)庫被入侵了。通過下面的指令可以查看數(shù)據(jù)的連接情況

  • 語法:
show processlist;

輸出結(jié)果包括連接ID、用戶名、主機、操作的數(shù)據(jù)庫、命令狀態(tài)信息,如:

二、表的操作

表是數(shù)據(jù)庫中實際存儲數(shù)據(jù)的載體,其結(jié)構(gòu)設(shè)計(字段類型、長度、約束等)直接影響數(shù)據(jù)存儲效率和查詢性能。

2.1 創(chuàng)建表

創(chuàng)建表時需定義字段名、字段類型(如int、varchar、date),并可指定表的字符集、校驗規(guī)則和存儲引擎(如MyISAM、InnoDB

  • 語法
CREATE TABLE table_name ( 
	field1 datatype [comment '字段說明'], 
	field2 datatype [comment '字段說明'], 
	... 
) character set 字符集 collate 校驗規(guī)則 engine 存儲引擎;
  • 實操案例:
create table users (
  id int,
  name varchar(20) comment '用戶名',
  password char(32) comment '密碼是32位的md5值',
  birthday date comment '生日'
) character set utf8 engine MyISAM;

不同存儲引擎的文件差異

  • MyISAM 引擎:生成3個文件(users.frm表結(jié)構(gòu)、users.MYD表數(shù)據(jù)、users.MYI表索引)
  • InnoDB 引擎:生成2個文件(users.frm表結(jié)構(gòu)、users.ibd表數(shù)據(jù) + 索引)

2.2 查看表結(jié)構(gòu)

創(chuàng)建好表后,可通過desc命令快速查看表的字段信息:

desc users;

輸出結(jié)果是:

2.3 修改表

在項目實際開發(fā)中,表結(jié)構(gòu)常需調(diào)整(如添加字段、修改字段類型、重命名表),可通過ALTER TABLE命令實現(xiàn)。

  • 語法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column   datatype]...); 
ALTER TABLE tablename DROP (column);

實操案例:

  • 在users表添加二條記錄
insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');
  • 在users表中添加一個字段,用于保存圖片路徑
alter table users add assets varchar(100) comment '圖片路徑' after birthday;
修改需求命令說明
添加字段(圖片路徑)alter table users add assets varchar(100) comment '圖片路徑' after birthday;after birthday:指定字段插入在birthday
修改字段長度(用戶名改為 60 位)alter table users modify name varchar(60);modify需完整指定字段類型
刪除字段(密碼列)alter table users drop password;刪除后字段及數(shù)據(jù)不可恢復(fù),需謹(jǐn)慎
重命名表(users改為employeealter table users rename to employee;to可省略,但是命令不熟悉時最好是寫全命令
重命名字段(name改為xingmingalter table employee change name xingming varchar(60);change需同時指定新字段名和完整類型

2.4 刪除表

  • 語法:
DROP (TEMPORARY) TABLE (IF EXISTS) tbl_name [, tbl_name] ...

實操案例:刪除表t1:

結(jié)語:

本文詳細(xì)講解了MySQL數(shù)據(jù)庫與表的核心操作,掌握這些基礎(chǔ)操作后,可進(jìn)一步學(xué)習(xí) MySQL 的索引優(yōu)化、事務(wù)管理等高級知識,提升數(shù)據(jù)庫操作的效率與安全性。

到此這篇關(guān)于MySql庫與表的基礎(chǔ)操作的文章就介紹到這了,更多相關(guān)mysql庫與表操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL全文檢索的實現(xiàn)示例

    MySQL全文檢索的實現(xiàn)示例

    全文搜索是一種在文本字段中查找關(guān)鍵詞的功能。在MySQL中,我們可以使用全文搜索來提高查詢的效率,本文主要介紹了MySQL全文檢索的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • 簡單解析MySQL中的cardinality異常

    簡單解析MySQL中的cardinality異常

    這篇文章主要介紹了簡單解析MySQL中的cardinality異常,這個異常會導(dǎo)致索引無法使用,需要的朋友可以參考下
    2015-05-05
  • mysql 8.0.18 安裝配置方法圖文教程

    mysql 8.0.18 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.18 安裝配置方法圖文教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • IDEA連接mysql又報錯!Server returns invalid timezone. Go to tab and set serverTimezone  prope的問題

    IDEA連接mysql又報錯!Server returns invalid timezone. Go to tab an

    這篇文章主要介紹了IDEA連接mysql又報錯!Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' prope問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-05-05
  • MySQL慢查詢?nèi)罩緩呐渲玫絻?yōu)化實踐全解析

    MySQL慢查詢?nèi)罩緩呐渲玫絻?yōu)化實踐全解析

    慢查詢?nèi)罩臼荕ySQL性能優(yōu)化的關(guān)鍵工具,記錄執(zhí)行時間超過閾值的SQL語句,幫助定位性能瓶頸和優(yōu)化SQL,本文介紹MySQL慢查詢?nèi)罩緩呐渲玫絻?yōu)化實踐全解析,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • MySQL sql_mode的使用詳解

    MySQL sql_mode的使用詳解

    這篇文章主要介紹了MySQL sql_mode的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-05-05
  • 最新評論

    桐庐县| 大石桥市| 柏乡县| 大兴区| 梓潼县| 鄂托克前旗| 镇平县| 靖西县| 临沭县| 华亭县| 枣阳市| 建始县| 垣曲县| 新闻| 广西| 子洲县| 浦江县| 嘉鱼县| 周宁县| 阿瓦提县| 和田县| 彭阳县| 莱州市| 石门县| 阿拉善盟| 清流县| 德江县| 尉犁县| 陇川县| 广元市| 咸宁市| 阿荣旗| 五河县| 泰州市| 宜兰县| 织金县| 苍山县| 靖江市| 江油市| 江源县| 万山特区|