MySQL數據庫基礎概述

前言:

????????MySQL作為全球應用最廣泛的開源關系型數據庫管理系統(RDBMS)?,憑借其高性能、高可靠性與零成本特性,已成為Web應用、企業系統的核心數據引擎。它遵循SQL標準,通過表結構實現數據的結構化存儲,并借助多存儲引擎架構?(如事務型InnoDB、高性能MyISAM)靈活適配不同業務場景。從Linux到Windows的跨平臺兼容性,從輕量級應用到千萬級數據的高并發處理能力,MySQL為開發者提供了兼顧效率與穩定的數據管理基石,支撐著全球超80%的動態網站數據存儲。

目錄

一、概述

1.數據庫概念

2.數據庫的類型

3.關系型數據庫模型

4.關系數據庫相關概念

二、安裝

1.mariadb安裝

2.mysql安裝

3.啟動并開機自啟并初始化部署

4.本地連接(本地登錄)

三、mysqld數據庫配置與命令

1.yum安裝后生成的目錄??

2.mysqld服務器的啟動腳本

3.數據存儲目錄的權限

4.服務啟動時讀取的默認配置文件

5.mysqld操作命令

6.mysql命令

7.mysqladmin命令

?四、默認數據庫

五、 SQL語言

六、mysql數據類型

1.整型

2.浮點型

3.BIT類型

4.定點型

5.日期時間類型

(1)YEAR類型

(2)DATE類型

(3)TIME類型

(4)DATETIME類型

(5)TIMESTAMP類型

6.字符串型

(1)CHAR和VARCHAR類型

(2)TEXT類型

7.ENUM類型

8.SET類型

9.BINARY和VARBINARY類型

10.BLOB類型

11.JSON數據類型

12.特殊的NULL類型

七、數據庫操作命令

1.庫操作命令

2.表結構操作命令

3.表數據操作

(1)插入數據

(2)自動增長列

(3)alter命令用法

總結


一、概述

1.數據庫概念

數據庫(Database)

簡稱DB,按照一定格式存儲數據的一些文件的組合,顧名思義就是存儲數據的倉庫,實際上就是一堆文件。這些文件中存儲了具有特定格式的數據 。數據庫管理數據有諸多優點,如降低存儲數據的冗余度,存儲的數據可以共享,便于維護數據完整性,能夠實現數據的安全性等。數據庫的發展經歷了萌芽、初級、中級、和高級階段。

數據庫管理系統(DateBase Management System)

簡稱DBMS,數據庫管理系統是專門用來管理數據庫中的數據的,可以對數據庫當中的數據進行增、刪、改、查 等操作,常見的數據庫管理系統:MySql、Oracle、MS SQLServer、DB2、sysbase、pstgreSQL等…

SQL(Structured Query Language)

結構化查詢語言,針對關系型數據庫的一種語言;SQL 是一種操作數據庫的語言,包括創建數據庫、刪除數據庫、查詢記錄、修改記錄、添加字段等。SQL在MySql中可以使用,同時在Oracle中也可以使用,在DB2中也可以使用 。

2.數據庫的類型

關系型數據庫

  • MariaDB/MySQL

  • Oracle

  • DB2

  • MS SQLServer,只能用于windows系統

    國產數據庫

  • 達夢

  • 人大金倉

  • TiDB,分布式關系型數據庫

NOSQL數據庫

  • Redis,緩存數據庫

  • MongoDB,文檔型數據庫

3.關系型數據庫模型

  • 層次模型

  • 網狀模型

  • 關系模型

關系模型的相關概念

  1. 實體(Entity) :實體是指現實世界中可以區分的對象,它可以是具體的人、事物或概念,也可以是抽象的物體。在數據庫中,實體通常對應于表中的行,而表則實體的一種集合。例如,在一個學生信息管理系統中,學生、課程和教師都可以被視為實體。

  2. 屬性(Attribute): 屬性是實體的特征或性質,它提供了關于實體的具體信息。屬性可以是簡單的數據類型,如姓名、年齡或地址,也可以是更復雜的結構,如電話號碼或電子郵件地址。在數據庫中,屬性通常對應于表中的列,每列代表實體的一種屬性。例如,學生的姓名、學號和年齡都是學生的屬性。

  3. 聯系(Relationship): 聯系描述了不同實體之間的關系。在現實世界中,實體之間往往存在各種形式的關聯。在數據庫中,聯系通過關系表來實現,這個表通常包含兩個或更多的實體作為表的列。例如,學生選修課程的關系表就包含了學生實體和課程實體的相關信息,描述了哪位學生選修了哪門課程。

在關系模型中,實體和聯系通常通過以下三種類型來進一步分類:

  • 一對一(1:1):這種聯系表示兩個實體之間存在一對一的關系,即每個實體只有一個相關的實體,反之亦然。例如,一個部門與一個負責人之間可能存在一對一的聯系。

  • 一對多(1:N):這種聯系表示一個實體與多個實體相關,但每個相關實體只與一個實體相關。例如,一個教師可以教授多門課程,但每門課程只能由一個教師教授。

  • 多對多(M:N):這種聯系表示兩個實體之間存在多對多的關系,即每個實體可以與多個實體相關,同時每個相關實體也可以與多個實體相關。例如,學生可以選修多門課程,同時每門課程也可以被多個選修。

在設計數據庫時,正確地識別實體、屬性和聯系,以及它們之間的類型,對于創建一個結構良好、能夠有效存儲和檢索數據的數據庫至關重要。

4.關系數據庫相關概念

  1. 庫(Database): 庫是一個存儲數據的容器,它可以包含多個數據庫。在某些管理系統中,庫等同于數據庫。

  2. 表(Table): 表是數據庫中的一個表格,由行和列組成。表是存儲數據的主要結構,每個表通常對應一個實體類型。表的列名稱為屬性,而表的行名稱為記錄。

  3. 行(Record): 行也稱為記錄,它是表中的一個單元,代表表中的一個具體實例。每一行包含了一組屬性值,這些值共同描述了一個實體的狀態。

  4. 列(Column): 列是表中的一列,它代表了表的一個屬性。每列都有一個數據類型,用于定義存儲在其中的數據的種類和格式。

  5. 字段(Field): 字段通常指的是表中的行與列的交叉點,它存儲了單個數據項。在數據庫中,每個字段都有其特定的數據類型和用途。

  6. 數據(Data): 數據是存儲在數據庫中的信息。它可以是文本、數字、日期、圖像、聲音等各種形式。數據是數據庫管理和操作的核心。

二、安裝

默認監聽端口號:3306/tcp

1.mariadb安裝

服務端程序: mariadb-server;客戶端程序:mariadb

?yum install -y mariadb-server mariadb

2.mysql安裝

服務端程序:mysql-server;客戶端程序:mysql;

?[root@mysql ~]# yum install -y  mysqld-server mysql ##編譯安裝,需要cmake環境
####或者
# 下載 MySQL 8.0 官方倉庫配置
sudo wget https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm# 安裝倉庫并導入 GPG 密鑰
sudo rpm -ivh mysql80-community-release-el8-4.noarch.rpm
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql# 安裝 MySQL Server 8.0
sudo yum install -y mysql-server# 啟動服務并設置開機自啟
sudo systemctl start mysqld
sudo systemctl enable mysqld

3.啟動并開機自啟并初始化部署

[root@mysql ~]# systemctl enable --now mysqld.service 
[root@mysql ~]# systemctl disable --now firewalld
[root@mysql ~]# setenforce 0

4.本地連接(本地登錄)

?[root@mysql ~]# mysqlWelcome to the mysqld monitor.  Commands end with ; or \g.Your mysqld connection id is 2Server version: 5.5.68-mysqld mysqld Server?Copyright (c) 2000, 2018, Oracle, mysqld Corporation Ab and others.?Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.?MySQL [(none)]> ##[(none)]:表示當前登錄用戶選擇的數據庫的“空”,沒有在任何庫中##使用“exit”命令可以退出數據庫登錄

注意:mysqld默認的管理用戶是“root”,與操作系統的“root”沒有任何關系!!!root用戶默認沒有密碼!!

5.軟件連接

192.168.72.155主機創建用戶賦予權限

mysql> create user zhangsan@192.168.72.1 identified by '123.com';
Query OK, 0 rows affected (0.02 sec)mysql> grant all on *.* to zhangsan@'192.168.72.1';
Query OK, 0 rows affected (0.00 sec)

到外部軟件連接庫

?連接成功

外部軟件新創建表

?表創建完成

三、mysqld數據庫配置與命令

1.yum安裝后生成的目錄??

?[root@mysql mysql]# rpm -ql mysqld-server/etc/logrotate.d/mysqld/etc/my.cnf.d/server.cnf/usr/bin/innochecksum/usr/bin/myisam_ftdump/usr/bin/myisamchk/usr/bin/myisamlog/usr/bin/myisampack/usr/bin/mysql_convert_table_format/usr/bin/mysql_fix_extensions/usr/bin/mysql_install_db/usr/bin/mysql_plugin/usr/bin/mysql_secure_installation/usr/bin/mysql_setpermission/usr/bin/mysql_tzinfo_to_sql/usr/bin/mysql_upgrade/usr/bin/mysql_zap/usr/bin/mysqlbug/usr/bin/mysqld_multi/usr/bin/mysqld_safe/usr/bin/mysqld_safe_helper/usr/bin/mysqldumpslow/usr/bin/mysqlhotcopy/usr/bin/mysqltest/usr/bin/perror/usr/bin/replace/usr/bin/resolve_stack_dump/usr/bin/resolveip/usr/lib/systemd/system/mysqld.service/usr/lib/tmpfiles.d/mysqld.conf/usr/lib64/mysql/INFO_BIN/usr/lib64/mysql/INFO_SRC/usr/lib64/mysql/mysqlbug/usr/lib64/mysql/plugin/usr/lib64/mysql/plugin/adt_null.so/usr/lib64/mysql/plugin/auth_0x0100.so/usr/lib64/mysql/plugin/auth_pam.so/usr/lib64/mysql/plugin/auth_socket.so/usr/lib64/mysql/plugin/auth_test_plugin.so/usr/lib64/mysql/plugin/daemon_example.ini/usr/lib64/mysql/plugin/dialog_examples.so/usr/lib64/mysql/plugin/ha_innodb.so/usr/lib64/mysql/plugin/ha_sphinx.so/usr/lib64/mysql/plugin/handlersocket.so/usr/lib64/mysql/plugin/libdaemon_example.so/usr/lib64/mysql/plugin/mypluglib.so/usr/lib64/mysql/plugin/qa_auth_client.so/usr/lib64/mysql/plugin/qa_auth_interface.so/usr/lib64/mysql/plugin/qa_auth_server.so/usr/lib64/mysql/plugin/query_cache_info.so/usr/lib64/mysql/plugin/semisync_master.so/usr/lib64/mysql/plugin/semisync_slave.so/usr/lib64/mysql/plugin/server_audit.so/usr/lib64/mysql/plugin/sphinx.so/usr/lib64/mysql/plugin/sql_errlog.so/usr/libexec/mysqld-prepare-db-dir/usr/libexec/mysqld-wait-ready/usr/libexec/mysqld/usr/share/man/man1/innochecksum.1.gz/usr/share/man/man1/msql2mysql.1.gz/usr/share/man/man1/myisam_ftdump.1.gz/usr/share/man/man1/myisamchk.1.gz/usr/share/man/man1/myisamlog.1.gz/usr/share/man/man1/myisampack.1.gz/usr/share/man/man1/mysql.server.1.gz/usr/share/man/man1/mysql_convert_table_format.1.gz/usr/share/man/man1/mysql_fix_extensions.1.gz/usr/share/man/man1/mysql_install_db.1.gz/usr/share/man/man1/mysql_plugin.1.gz/usr/share/man/man1/mysql_secure_installation.1.gz/usr/share/man/man1/mysql_setpermission.1.gz/usr/share/man/man1/mysql_tzinfo_to_sql.1.gz/usr/share/man/man1/mysql_upgrade.1.gz/usr/share/man/man1/mysql_zap.1.gz/usr/share/man/man1/mysqlbinlog.1.gz/usr/share/man/man1/mysqlbug.1.gz/usr/share/man/man1/mysqlcheck.1.gz/usr/share/man/man1/mysqld_multi.1.gz/usr/share/man/man1/mysqld_safe.1.gz/usr/share/man/man1/mysqldumpslow.1.gz/usr/share/man/man1/mysqlhotcopy.1.gz/usr/share/man/man1/mysqlimport.1.gz/usr/share/man/man1/mysqltest.1.gz/usr/share/man/man1/perror.1.gz/usr/share/man/man1/replace.1.gz/usr/share/man/man1/resolve_stack_dump.1.gz/usr/share/man/man1/resolveip.1.gz/usr/share/man/man8/mysqld.8.gz/usr/share/mysql/README.mysql-cnf/usr/share/mysql/errmsg-utf8.txt/usr/share/mysql/fill_help_tables.sql/usr/share/mysql/my-huge.cnf/usr/share/mysql/my-innodb-heavy-4G.cnf/usr/share/mysql/my-large.cnf/usr/share/mysql/my-medium.cnf/usr/share/mysql/my-small.cnf/usr/share/mysql/mysql_performance_tables.sql/usr/share/mysql/mysql_system_tables.sql/usr/share/mysql/mysql_system_tables_data.sql/usr/share/mysql/mysql_test_data_timezone.sql/var/lib/mysql ?##mysqld數據庫的數據存儲目錄/var/log/mysqld/var/log/mysqld/mysqld.log/var/run/mysqld

2.mysqld服務器的啟動腳本

?[root@mysql ~]# cat /usr/lib/systemd/system/mysqld.service?[Unit]Description=mysqld database serverAfter=syslog.targetAfter=network.target?[Service]Type=simpleUser=mysql ?##程序運行用戶Group=mysql?ExecStartPre=/usr/libexec/mysqld-prepare-db-dir %n# Note: we set --basedir to prevent probes that might trigger SELinux alarms,# per bug #547485ExecStart=/usr/bin/mysqld_safe --basedir=/usrExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID"/usr/lib/systemd/system/mysqld.service" 48L, 1697C ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?39,1 ? ? ? ? ?55%# http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F?# For example, if you want to increase mysqld's open-files-limit to 10000,# you need to increase systemd's LimitNOFILE setting, so create a file named# "/etc/systemd/system/mysqld.service.d/limits.conf" containing:# ? ? ? [Service]# ? ? ? LimitNOFILE=10000?# Note: /usr/lib/... is recommended in the .include line though /lib/... # still works.# Don't forget to reload systemd daemon after you change unit configuration:# root> systemctl --system daemon-reload?[Unit]Description=mysqld database serverAfter=syslog.targetAfter=network.target?[Service]Type=simpleUser=mysqlGroup=mysql?ExecStartPre=/usr/libexec/mysqld-prepare-db-dir %n# Note: we set --basedir to prevent probes that might trigger SELinux alarms,# per bug #547485ExecStart=/usr/bin/mysqld_safe --basedir=/usrExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID?# Give a reasonable amount of time for the server to start up/shut downTimeoutSec=300?# Place temp files in a secure directory, not /tmpPrivateTmp=true?[Install]WantedBy=multi-user.target

3.數據存儲目錄的權限

?[root@mysql mysql]# ls -ld /var/lib/mysql/drwxr-xr-x 5 mysql mysql 177 1月 ?31 10:16 /var/lib/mysql/

4.服務啟動時讀取的默認配置文件

?[root@mysql mysql]# cat /etc/my.cnf[mysqld]datadir=/var/lib/mysql ?##定義數據存儲目錄socket=/var/lib/mysql/mysql.sock ?##定義連接的網絡接口文件# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Settings user and group are ignored when systemd is used.# If you need to run mysqld under a different user or group,# customize your systemd unit file for mysqld according to the# instructions in http://fedoraproject.org/wiki/Systemd?[mysqld_safe]log-error=/var/log/mysqld/mysqld.log ?##程序運行的錯誤日志pid-file=/var/run/mysqld/mysqld.pid ?##程序運行的PID文件?## include all files from the config directory#!includedir /etc/my.cnf.d

5.mysqld操作命令

?[root@mysql ~]# ls -l /usr/bin/mysql*-rwxr-xr-x 1 root root 3543584 10月 ?2 2020 /usr/bin/mysql-rwxr-xr-x 1 root root ?111971 10月 ?2 2020 /usr/bin/mysqlaccess-rwxr-xr-x 1 root root 3096720 10月 ?2 2020 /usr/bin/mysqladmin-rwxr-xr-x 1 root root 3259880 10月 ?2 2020 /usr/bin/mysqlbinloglrwxrwxrwx 1 root root ? ? ?26 1月 ?31 10:15 /usr/bin/mysqlbug -> /etc/alternatives/mysqlbug-rwxr-xr-x 1 root root 3094016 10月 ?2 2020 /usr/bin/mysqlcheck-rwxr-xr-x 1 root root ? ?4215 10月 ?2 2020 /usr/bin/mysql_convert_table_format-rwxr-xr-x 1 root root ? 24116 10月 ?2 2020 /usr/bin/mysqld_multi-rwxr-xr-x 1 root root ? 27105 10月 ?2 2020 /usr/bin/mysqld_safe-rwxr-xr-x 1 root root 2887144 10月 ?2 2020 /usr/bin/mysqld_safe_helper-rwxr-xr-x 1 root root 3176704 10月 ?2 2020 /usr/bin/mysqldump-rwxr-xr-x 1 root root ? ?7876 10月 ?2 2020 /usr/bin/mysqldumpslow-rwxr-xr-x 1 root root ? ?3288 10月 ?2 2020 /usr/bin/mysql_find_rows-rwxr-xr-x 1 root root ? ?1246 10月 ?2 2020 /usr/bin/mysql_fix_extensions-rwxr-xr-x 1 root root ? 34942 10月 ?2 2020 /usr/bin/mysqlhotcopy-rwxr-xr-x 1 root root 3088968 10月 ?2 2020 /usr/bin/mysqlimport-rwxr-xr-x 1 root root ? 16701 10月 ?2 2020 /usr/bin/mysql_install_db-rwxr-xr-x 1 root root 2926112 10月 ?2 2020 /usr/bin/mysql_plugin-rwxr-xr-x 1 root root ? 12126 10月 ?2 2020 /usr/bin/mysql_secure_installation-rwxr-xr-x 1 root root ? 17464 10月 ?2 2020 /usr/bin/mysql_setpermission-rwxr-xr-x 1 root root 3087504 10月 ?2 2020 /usr/bin/mysqlshow-rwxr-xr-x 1 root root 3106896 10月 ?2 2020 /usr/bin/mysqlslap-rwxr-xr-x 1 root root 3449016 10月 ?2 2020 /usr/bin/mysqltest-rwxr-xr-x 1 root root 2921448 10月 ?2 2020 /usr/bin/mysql_tzinfo_to_sql-rwxr-xr-x 1 root root 2998448 10月 ?2 2020 /usr/bin/mysql_upgrade-rwxr-xr-x 1 root root 2912968 10月 ?2 2020 /usr/bin/mysql_waitpid-rwxr-xr-x 1 root root ? ?3856 10月 ?2 2020 /usr/bin/mysql_zap

6.mysql命令

mysql數據庫登錄的命令行工具,本地登錄時且root用戶沒有密碼,輸入mysql,等效于”mysql -uroot -hlocalhost -P3306“

語法

? mysql [options] db_name

常用選項

?-u:指定登錄用戶-p:指定用戶密碼-h:指定登錄數據庫的IP或者域名-P:指定登錄數據庫的端口號-e:能夠在終端執行數據庫指令

使用案例

[root@mysql ~]# mysql -uroot -hlocalhost -P3306
###或者
[root@mysql ~]# mysql -h127.0.0.1 -P3306 -uroot###或者使用mysql客戶端連接到本地的MySQL服務器(127.0.0.1:3306),用戶名為root,并指定了數據庫名為sys
[root@mysql ~]# mysql -h127.0.0.1 -P3306 -uroot sys##直接在外部執行查看數據庫的命令
[root@mysql ~]# mysql -p123.com -e "show databases" ? +--------------------+| Database ? ? ? ? ? |+--------------------+| information_schema || mysql ? ? ? ? ? ?  || performance_schema || test ? ? ? ? ? ? ? |+--------------------+##輸入密碼登錄
[root@mysql ~]# mysql -uroot -p
Enter password: 123.com
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.41 Source distributionCopyright (c) 2000, 2025, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> ##指定登錄的數據庫,只能是一個
[root@mysql mysql]# mysql -p123.com mysql ? 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A?
Welcome to the mysqld monitor.  Commands end with ; or \g.
Your mysqld connection id is 14
Server version: 5.5.68-mysqld mysqld Server?
Copyright (c) 2000, 2018, Oracle, mysqld Corporation Ab and others.?
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.?
mysqld [mysql]> 

7.mysqladmin命令

超級管理命令

語法

?mysqladmin [options] command [command-arg] [command [command-arg]] ...

設置root用戶密碼

?[root@mysql ~]# mysqladmin -uroot password '123.com'

使用密碼登錄

?[root@mysql ~]# mysql -uroot -p123.com -h127.0.0.1 -P3306

創建其他用戶登錄(允許來自于某個主機登錄)

mysql> create user 'zhangsan'@'192.168.72.9' identified by '123.com';
Query OK, 0 rows affected (0.01 sec)

查看zhangsan用戶權限(USAGE可以連接的權限)

mysql> show grants for zhangsan@192.168.72.9;
+-------------------------------------------------+
| Grants for zhangsan@192.168.72.9                |
+-------------------------------------------------+
| GRANT USAGE ON *.* TO `zhangsan`@`192.168.72.9` |
+-------------------------------------------------+
1 row in set (0.01 sec)

?切換到192.168.72.9遠程賬戶

###關閉防火墻,安全上下文
[root@ding ~]# systemctl disable --now firewalld.service
[root@ding ~]# setenforce 0###安裝MySQL客戶端
[root@ding ~]# yum install -y mysql###遠程賬戶192.168.72.9連接192.168.72.155主機
[root@ding ~]# mysql -h192.168.72.155 -uzhangsan -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 8.0.41 Source distributionCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 

?四、默認數據庫

  • information_schema :信息數據庫,存儲所有的庫、表、列的名稱,任意可登錄數據庫的用戶都可讀;sql注入

表名作用
CHARACTER_SETS字符集信息表。用于查看和管理MySQL數據庫中的字符集信息。
CLIENT_STATISTICS客戶端統計信息表。用于查看和管理客戶端的統計信息,例如連接數、請求次數等。
COLLATIONS排序規則信息表。用于查看和管理MySQL數據庫中的排序規則信息。
COLLATION_CHARACTER_SET_APPLICABILITY字符集和排序規則的適用性表。用于查看和管理字符集和排序規則之間的適用關系。
COLUMNS數據表的列信息表。用于查看和管理MySQL數據庫中數據表的列信息。
COLUMN_PRIVILEGES列級別的權限信息表。用于查看和管理列級別的權限信息,例如用戶對各個列的SELECT、INSERT、UPDATE等權限。
ENGINES存儲引擎信息表。用于查看和管理MySQL數據庫中支持的存儲引擎信息。
EVENTS定時事件信息表。用于查看和管理MySQL數據庫中的定時事件信息。
FILES文件信息表。用于查看和管理MySQL數據庫服務器上文件的信息。
GLOBAL_STATUS全局狀態信息表。用于查看和管理MySQL數據庫服務器的全局狀態信息。
GLOBAL_VARIABLES全局變量信息表。用于查看和管理MySQL數據庫服務器的全局變量信息。
INDEX_STATISTICS索引統計信息表。用于查看和管理MySQL數據庫中索引的統計信息。
KEY_CACHES鍵緩存表。用于查看和管理MySQL數據庫中的鍵緩存信息。
KEY_COLUMN_USAGE鍵列使用表。用于查看和管理鍵列的使用情況。
PARAMETERS參數表。用于查看和管理MySQL數據庫的參數信息,例如連接超時時間、最大連接數等。
PARTITIONS分區表。用于查看和管理MySQL數據庫中的分區信息。
PLUGINS插件表。用于查看和管理MySQL數據庫中的插件信息。
PROCESSLIST進程列表表。用于查看當前正在運行的MySQL進程,包括連接的客戶端和正在執行的查詢等。
PROFILING性能分析表。用于啟用性能分析,記錄和分析SQL查詢的性能數據。
REFERENTIAL_CONSTRAINTS外鍵約束表。用于查看和管理外鍵約束的信息,包括外鍵列和參考列等。
ROUTINES存儲過程和函數表。用于查看和管理MySQL數據庫中的存儲過程和函數的信息,包括創建時間、修改時間、函數名等。
SCHEMATA架構表。用于查看和管理MySQL數據庫中的架構信息,包括架構名、架構下的表名等。
SCHEMA_PRIVILEGES架構權限表。用于查看和管理架構下的權限信息,包括用戶對架構下表的SELECT、INSERT、UPDATE等權限。
SESSION_STATUS會話狀態信息表。用于查看和管理當前會話的狀態信息,例如會話的連接時間、查詢時間等。
SESSION_VARIABLES會話變量表。用于查看和管理當前會話的變量信息,例如會話的最大連接數、最大內存使用量等。
STATISTICS統計信息表。用于查看和管理MySQL數據庫中表的統計信息,包括表的行數、平均行大小等。
TABLES數據表信息表。用于查看和管理MySQL數據庫中的數據表信息,包括表名、引擎類型等。
TABLESPACES存儲空間表。用于查看和管理MySQL數據庫中的存儲空間信息,包括存儲空間名、大小等。
TABLE_CONSTRAINTS表約束信息表。用于查看和管理表的約束信息,包括主鍵約束、外鍵約束等。
TABLE_PRIVILEGES表級別的權限信息表。用于查看和管理表級別的權限信息,例如用戶對各個表的SELECT、INSERT、UPDATE等權限。
INNODB_CMPMEM_RESETInnoDB 內存比較器重置表。此表用于記錄 InnoDB 內存比較器(comparison memory)的清除操作。
INNODB_RSEGInnoDB 重做段表此表用于記錄 InnoDB 數據文件的重做段信息。
INNODB_UNDO_LOGSInnoDB 撤銷日志表。此表用于記錄 InnoDB 撤銷操作的日志信息。
INNODB_CMPMEMInnoDB 內存比較器表。此表用于記錄 InnoDB 內存比較器的分配和使用情況。
INNODB_SYS_TABLESTATSInnoDB 系統表統計信息表。此表用于記錄 InnoDB 系統表的統計信息,如數據量、碎片率等。
INNODB_LOCK_WAITSInnoDB 鎖等待信息表。此表記錄 InnoDB 鎖等待的情況,包括等待鎖的線程 ID、等待時間等。
INNODB_INDEX_STATSInnoDB 索引統計信息表。此表用于記錄 InnoDB 索引的統計信息,如索引大小、索引列的數據類型等。
INNODB_CMPInnoDB 比較器表。此表用于記錄 InnoDB 比較器的分配和使用情況。
INNODB_CHANGED_PAGESInnoDB 更改頁表。此表用于記錄 InnoDB 數據文件中已更改的頁的信息。
INNODB_BUFFER_POOL_PAGESInnoDB 緩沖池頁表。此表用于記錄 InnoDB 緩沖池中每個頁的信息,包括頁的類型、頁的狀態等。
INNODB_TRXInnoDB 事務表。此表用于記錄 InnoDB 事務的信息,如事務 ID、事務狀態等。
INNODB_BUFFER_POOL_PAGES_INDEXInnoDB 緩沖池頁索引表。此表用于記錄 InnoDB 緩沖池中每個頁的索引信息。
INNODB_LOCKSInnoDB 鎖表。此表用于記錄 InnoDB 鎖的信息,如鎖的類型、鎖的持有者等。
INNODB_BUFFER_PAGE_LRUInnoDB 緩沖池頁 LRU 表。此表用于記錄 InnoDB 緩沖池中每個頁的最近最少使用(Least Recently Used,LRU)信息。
INNODB_SYS_TABLESInnoDB 系統表信息表。此表用于記錄 InnoDB 系統表的信息,如表名、表狀態等。
INNODB_SYS_FIELDSInnoDB 系統字段信息表。此表用于記錄 InnoDB 系統表中每個字段的信息,如字段名、字段類型等。
INNODB_SYS_COLUMNSInnoDB 系統列信息表。此表用于記錄 InnoDB 系統表中每個列的信息,如列名、列類型、列長度等。
INNODB_SYS_STATSInnoDB 系統統計信息表。此表用于記錄 InnoDB 系統統計信息,如表數量、數據量等。
INNODB_SYS_FOREIGNInnoDB 系統外鍵信息表。此表用于記錄 InnoDB 系統表中外鍵的信息,如外鍵約束條件等。
INNODB_SYS_INDEXESInnoDB 系統索引信息表。此表用于記錄 InnoDB 系統表中索引的信息,如索引名、索引類型等。

  • mysql :主數據庫,mysqld運行的必須數據庫,用戶與配置信息

表名稱作用
columns_priv保存了每個表的列級別的權限信息,包括用戶對各個列的SELECT、INSERT、UPDATE、REFERENCES等權限。
db保存了每個數據庫的權限信息,包括用戶對每個數據庫的CREATE、ALTER、DROP等權限。
event保存了MySQL中的事件信息,包括事件的名稱、執行時間、執行語句等。
func保存了用戶定義的存儲函數的信息,包括函數的名稱、參數、返回類型等。
general_log記錄了MySQL服務器上所有的日志操作,包括查詢、連接、錯誤日志等。
help_category保存了MySQL幫助文檔中的分類信息,用于幫助查找和瀏覽文檔。
help_keyword保存了MySQL幫助文檔的關鍵字信息,用于快速搜索和查找文檔。
help_relation保存了MySQL幫助文檔中關鍵字之間的關系信息,用于幫助構建文檔的結構。
help_topic保存了MySQL幫助文檔的具體內容信息,包括每個主題的標題、內容等。
host保存了MySQL服務器上的主機信息,包括主機名、IP地址、連接權限等。
ndb_binlog_index保存了使用NDB存儲引擎的MySQL服務器上的二進制日志索引信息。
plugin保存了MySQL服務器上安裝的插件信息。
proc保存了用戶定義的存儲過程的信息,包括過程的名稱、參數、語句等。
procs_priv保存了用戶對存儲過程的訪問權限信息。
proxies_priv保存了MySQL服務器上的代理用戶的權限信息。
servers實驗性表,保存了MySQL服務器的外部服務器和復制配置信息。
slow_log記錄了MySQL服務器上執行時間超過默認閾值的慢查詢日志。
tables_priv保存了用戶對表的訪問權限信息。
time_zone保存了MySQL服務器上的時區信息。
time_zone_leap_second保存了時區閏秒的信息。
time_zone_name保存了時區的名稱和相關信息。
time_zone_transition保存了時區的變化規則和信息。
time_zone_transition_type保存了時區變化類型的信息。
user保存了MySQL服務器上的用戶賬號信息,包括用戶名、密碼、權限等。
  • performance_schema:性能數據庫,存儲mysqld的資源使用、安全策略權限配置信息

表名作用
cond_instances條件實例表,該表用于存儲各種條件或鎖定的實例信息
events_waits_current當前等待事件表,記錄了當前正在等待某個事件發生的線程或會話信息
events_waits_history歷史等待事件表,記錄了過去一段時間內等待事件的信息,包括等待事件的類型、等待時間等
events_waits_history_long長期等待事件表,記錄了長時間等待事件的信息,包括等待事件的類型、等待時間、等待時長等
events_waits_summary_by_instance按實例總結等待事件表,提供了按實例總結的等待事件統計信息
events_waits_summary_by_thread_by_event_name按線程和事件總結等待事件表,提供了按線程和特定事件總結的等待事件統計信息
events_waits_summary_global_by_event_name按全局和事件總結等待事件表,提供了按全局和特定事件總結的等待事件統計信息
file_instances文件實例表,記錄了數據庫中各個文件的信息,包括文件路徑、文件大小等
file_summary_by_event_name按事件名總結文件表,提供了按特定事件名總結的文件統計信息
file_summary_by_instance按實例總結文件表,提供了按實例總結的文件統計信息
mutex_instances互斥體實例表,記錄了數據庫中各個互斥體的信息,包括互斥體的名稱、狀態等
performance_timers性能計時器表,提供了數據庫性能的計時信息,包括執行時間、資源使用情況等
rwlock_instances讀寫鎖實例表,記錄了數據庫中各個讀寫鎖的信息
setup_consumers設置消費者表,記錄了數據庫設置的各種消費者信息
setup_instruments設置儀器表,記錄了數據庫設置的各類性能指標信息
setup_timers設置定時器表,記錄了數據庫設置的各類定時器信息
threads線程表,記錄了數據庫中的各個線程信息,包括線程ID、線程狀態等
  • sys庫

五、 SQL語言

  • DDL:數據定義語言,對數據庫結構操作

create:創建(用戶,庫,表)

alter:改變

drop:刪除

  • DML:數據操作語言,對數據表的操作

insert:插入

update:更新

delete:刪除數據

  • DCL:數據控制語言,針對用戶權限設置

grant:用戶賦權

revoke:移除用戶權限

  • DQL:數據查詢語言,對數據表的操作

select:查詢

六、mysql數據類型

常用的數據類型有:

  • 整型

  • 浮點型

  • BIT類型

  • 定點數

  • 日期時間類型

  • 字符串

  • NULL類型

1.整型

整數類型占用字節無符號數的取值范圍有符號數的取值范圍
TINYINT10~255-128~127
SMALLINT20~65535-32768~32767
MEDIUMINT30~16777215-8388608~8388607
INT40~4294967295-2147483648~2147483647
BIGINT80~18446744073709551615-9223372036854774808~9223372036854774807

整數列的可選屬性有三個:

  • M: 寬度(在0填充的時候才有意義,否則不需要指定)

  • unsigned: 無符號類型(非負)

  • zerofill: 0填充,(如果某列是zerofill,那么默認就是無符號),如果指定了zerofill只是表示不夠M位時,用0在左邊填充,如果超過M位,只要不超過數據存儲范圍即可

在 int(M) 中,M 的值跟 int(M) 所占多少存儲空間并無任何關系。 int(3)、int(4)、int(8) 在磁盤上都是占用 4 bytes 的存儲空間。

各整數數據類型的使用場所

數據類型應用場景
TINYINT一般用于枚舉數據,比如系統設定取值范圍很小且固定的場景。
SMALLINT可以用于較小范圍的統計數據,比如統計工廠的固定資產庫存數量等。
MEDIUMINT用于較大整數的計算,比如車站每日的客流量等。
INT、INTEGER取值范圍足夠大,一般情況下不用考慮超限問題,用得最多。比如商品編號。
BIGINT只有當你處理特別巨大的整數時才會用到。比如雙十一的交易量、大型門戶網站點擊量、證券公司衍生產品持倉等。

2.浮點型

數據類型字節數取值范圍
FLOAT4-2^128~2 ^128,即-3.40E+38~+3.40E+38
DOUBLE8-2^1024~ 2^1024,即-1.79E+308~1.79E+308
  • 當浮點數類型使用unsigned修飾無符號時,取值范圍將不包含負數。

  • 浮點數的取值范圍是理論上的極限值,但根據不同的硬件或操作系統,實際范圍可能會小。

  • 浮點數雖然取值范圍很大,但精度并不高。float類型的精度為6位或7位,double類型的精度大約為15位。

  • 如果給定的數值超出精度,可能會導致給定的數值與實際保存的數值不一致,發生精度損失。

  • 當一個數字的整數部分和小數部分加起來達到7位時,第7位就會進行四舍五入操作。

  • 要避免使用“=”來判斷兩個浮點數是否相等,因為浮點數是不準確的,存在精度損失。

3.BIT類型

函數函數用途
BIT(M)存儲二進制數據
ASCll(M)獲取M的ASCll值
BIN(M)獲取M的二進制值
LENGTH(M)獲取M的數字長度
  • BIT數據類型可用來保存位字段值。BIT(M)類型允許存儲M位值。M范圍為1~64,默認為1。

  • BIT其實就是存入二進制的值,類似010110。如果存入一個BIT類型的值,位數少于M值,則左補0。如果存入一個BIT類型的值,位數多于M值,MySQL的操作取決于此時有效的SQL模式:如果模式未設置,MySQL將值裁剪到范圍的相應端點,并保存裁減好的值。如果模式設置為traditional(“嚴格模式”),超出范圍的值將被拒絕并提示錯誤,并且根據SQL標準插入會失敗。

  • 對于位字段,直接使用SELECT命令將不會看到結果,可以用bin()或hex()函數進行讀取。

4.定點型

  • DECIMAL在MySQL內部以字符串形式存放,比浮點數更精確。定點類型占M+2個字節

  • DECIMAL(M,D)與浮點型一樣處理規則。M的取值范圍為065,D的取值范圍為030,而且必須<=M,超出范圍會報錯。

  • DECIMAL如果指定精度時,默認的整數位是10,默認的小數位為0。

  • NUMERIC等價于DECIMAL。

  • 例如,DECIMAL(5,2)表示的取值范圍為-999.99~999.99。

5.日期時間類型

數據類型字節取值范圍日期格式零值
YEAR11901~2155YYYY0000
DATE31000-01-01~9999-12-31YYYY-MM-DD0000-00-00
TIME3-838:59:59~838:59:59HH:MM:SS00:00:00
DATETIME81000-01-01 00:00:00~9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS0000-00-00 00:00:00
TIMESTAMP41970-01-01 00:00:01~2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS0000-00-00 00:00:00
(1)YEAR類型

YEAR類型用來表示年份,在所有的日期時間類型中所占用的存儲空間最小,只需要1個字節的存儲空間,格式為YYYY。

在MySQL中,可使用以下3種格式指定TEAR類型的值:

使用4位字符串或數字表示,為1901'2155或19012155。

例如,輸入2022或2022,插入到數據庫中的值均為2022.

使用兩位字符串表示,為00~99。

00 ~ '69的值會被轉換為2000~2069的YEAR值

70 ~ '99的值會被自動轉換為1970~1999的YEAR值

例如,輸入22,插入到數據表中的值為2022。

使用兩位數字表示,為1~99。

1 ~ 69的值會被轉換為2001~2069的YEAR值

70 ~ 99的值會被自動轉換為1970~1999的YEAR值

例如,輸入22,插入到數據表中的值為2022。

注意:

當使用YEAR類型時,一定要區分0和0。

數字格式的0表示的YEAR值為0000

字符串格式的0表示的YEAR值為2000

(2)DATE類型

DATE類型用來表示日期值,不包含時間部分,需要 3個字節 的存儲空間,且其格式為 YYYY-MM-DD 。其中,YYYY表示年份,MM表示月份,DD表示日期。

在MySQL中,可以使用以下4種格式指定DATE類型的值:

以YYYY-MM-DD或者YYYYMMDD字符串格式表示。

以YY-MM-DD或者YYMMDD字符串格式表示。

以YY-MM-DD或者YYMMDD數字格式表示。

使用CURRENT_DATE或者NOW()輸入當前系統日期。

注意:

通過"SELECT CURRENT_DATE;"或者"SELECT NOW();"可查詢當前日期。

日期中的分隔符"-“,還可以使用”.“”,“”/"等符號來表示。

(3)TIME類型

TIME類型用于表示時間值,它的顯示形式一般為HH:MM:SS,其中HH表示小時,MM表示分,SS表示秒。

在MySQL中,可以使用以下3種格式指定TIME類型的值:

以HHMMSS字符串或者HHMMSS數學格式表示。

以HH:MM:SS字符串格式表示。

使用CURRENT_TIME或NOW()輸入當前系統時間。

(4)DATETIME類型

DATETIME類型在所有的日期時間類型中占用的存儲空間最大,總共需要 8 個字節的存儲空間,用來表示日期和時間,它的顯示形式為YYYY-MM-DD HH:MM:SS。

在MySQL中,可以使用以下4種格式指定DATETIME類型的值:

以YYYY-MM-DD HH:MM:SS或YYYYMMDDHHMMSS字符串格式表示的日期和時間,取值范圍為1000-01-01 00:00:00~9999-12-31-23-59-59。

以YY-MM-DD HH:MM:SS或YYMMDDHHMMSS字符串格式表示的日期和時間,

以YYYYMMDDHHMMSS或YYMMDDHHMMSS數字格式表示的日期和時間,

使用NOW()來輸入當前系統的日期和時間。

(5)TIMESTAMP類型

TIMESTAMP(時間戳)類型用于表示日期和時間,需要4個字節的存儲空間,它的顯示形式與DATETIME類型的相同,但取值范圍比DATETIME類型的小。

TIMESTAMP類型與DATETIME類型的不同形式:

使用CURRENT_TIMESTAMP來輸入系統當前的日期和時間。

無任何輸入,或輸入NULL時,實際保存的是系統當前日期和時間。

6.字符串型

數據類型類型說明
CHAR固定長度字符串
VARCHAR可變長度字符串
TEXT大文本數據
ENUM枚舉類型
SET字符串類型
BINARY固定長度的二進制數據
VARBINARY可變長度是二進制數據
BLOB二進制大對象
(1)CHAR和VARCHAR類型

CHAR和VARCHAR類型都是用來保存字符串數據,兩者不同的是,VARCHAR可以存儲可變長度的字符串數據。

字符串類型特點長度長度范圍占用的存儲空間
CHAR(M)固定長度M0<=M<=255M個字節
VARCHAR(M)可變長度M0<=M<=65535(實際長度 + 1) 個字節
(2)TEXT類型

TEXT類型用于保存大文本數據,例如,文章內容,評論等比較長的文本。

數據類型存儲范圍存儲空間占用量特點
TINYTEXT(tinytext)0~2^8-1文本長度+2小文本,可變長度
TEXT(text)0~2^16-1文本長度+2文本,可變長度
MEDIUMTEXT(mediumtext)0~2^24-1文本長度+3中等文本,可變長度
LONGTEXT(longtext)0~2^32-1文本長度+4大文本,可變長度

7.ENUM類型

ENUM類型又稱為枚舉類型,其定義格式為:

?ENUM('值1','值2','值3','值4','值5',....,'值n')
  1. ENUM類型的取值范圍需要在定義字段時進行指定。

  2. 設置字段值時,ENUM類型只允許從成員中選取單個值,不能一次選取多個值。

  3. 其所需要的存儲空間由定義ENUM類型時指定的成員個數決定。

    • 當ENUM類型包含1~255個成員時,需要1個字節的存儲空間

    • 當ENUM類型包含256~65535個成員時,需要2個字節的存儲空間

    • ENUM類型的成員個數的上限為65535個

8.SET類型

SET類型用于保存字符串對象,其定義格式與ENUM類型相似。

SET('值1','值2','值3','值4','值5',....,'值n')

(1)其所需要的存儲空間由定SET類型時指定的成員個數決定。

SET類型包含的成員數存儲空間
1~81個字節
9~162個字節
17~243個字節
25~324個字節
33~648個字節

(2)SET類型在存儲數據時成員個數越多,其占用的存儲空間越大。

(3)SET類型在選取成員時,與ENUM類型不同,其可以一次選擇多個成員。

9.BINARY和VARBINARY類型

BINARY和VARBINARY類型類似于CHAR和VARCHAR,不同的是,它們所表示的是二進制數據。

類型特點長度長度范圍占用的存儲空間
BINARY(M)固定長度M0<=M<=255M個字節
VARBINARY(M)可變長度M0<=M<=65535(M+ 1) 個字節

10.BLOB類型

BLOB類型用于保存數據量比較大的二進制數據,如圖片,PDF文檔等。

數據類型存儲范圍占用空間
TINYBLOB0~2^8 -1字節len+1個字節
BLOB0~2^16 -1字節(相當于64KB)len+2個字節
MEDIUMBLOB0~2^24 -1字節(相當于16MB)len+3個字節
LONGBLOB0~2^32 -1字節(相當于4GB)len+4個字節

11.JSON數據類型

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式 ,簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。它易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。

JSON 可以將 JavaScript 對象中表示的一組數據轉換為字符串,然后就可以在網絡或者程序之間輕松地傳遞這個字符串,并在需要的時候將它還原為各編程語言所支持的數據格式。

在MySQL 5.7中,就已經支持JSON數據類型。在MySQL中,JSON類型常見的表示方式有2種,分別為JSON數組和JSON對象。

#JSON數組
['abc',10,null,true]
#JSON對象
{"k1":"value","k2":10}

12.特殊的NULL類型

  • 所有的類型的值都可以是null,包括int、float等數據類型

  • 空字符串””,不等于null,0也不等于null,false也不等于null

  • 任何運算符,判斷符碰到NULL,都得NULL

  • NULL的判斷只能用is null,is not null

  • NULL 影響查詢速度,一般避免使值為NULL

七、數據庫操作命令

1.庫操作命令

(1)查看數據庫(存儲當前MySQL庫名稱,表名稱及列名稱唯獨沒有數據)

show databases;

(2)查看所在數據庫

select database();

?

(3)查看當前登錄用戶(返回函數值)

select user();

?

(4)查看當前數據庫版本

select version();

(5)查看用戶權限列表

show privileges[\G];
mysql> show privileges\G;
*************************** 1. row ***************************
Privilege: AlterContext: TablesComment: To alter the table
*************************** 2. row ***************************
Privilege: Alter routineContext: Functions,ProceduresComment: To alter or drop stored functions/procedures
*************************** 3. row ***************************
Privilege: CreateContext: Databases,Tables,IndexesComment: To create new databases and tables
*************************** 4. row ***************************
Privilege: Create routineContext: DatabasesComment: To use CREATE FUNCTION/PROCEDURE
*************************** 5. row ***************************
Privilege: Create roleContext: Server AdminComment: To create new roles
*************************** 6. row ***************************
Privilege: Create temporary tablesContext: DatabasesComment: To use CREATE TEMPORARY TABLE
*************************** 7. row ***************************
Privilege: Create viewContext: TablesComment: To create new views
*************************** 8. row ***************************
Privilege: Create userContext: Server AdminComment: To create new users
*************************** 9. row ***************************
Privilege: DeleteContext: TablesComment: To delete existing rows
*************************** 10. row ***************************
Privilege: DropContext: Databases,TablesComment: To drop databases, tables, and views
*************************** 11. row ***************************
Privilege: Drop roleContext: Server AdminComment: To drop roles
*************************** 12. row ***************************
Privilege: EventContext: Server AdminComment: To create, alter, drop and execute events
*************************** 13. row ***************************
Privilege: ExecuteContext: Functions,ProceduresComment: To execute stored routines
*************************** 14. row ***************************
Privilege: FileContext: File access on serverComment: To read and write files on the server
*************************** 15. row ***************************
Privilege: Grant optionContext: Databases,Tables,Functions,ProceduresComment: To give to other users those privileges you possess
*************************** 16. row ***************************
Privilege: IndexContext: TablesComment: To create or drop indexes
*************************** 17. row ***************************
Privilege: InsertContext: TablesComment: To insert data into tables
*************************** 18. row ***************************
Privilege: Lock tablesContext: DatabasesComment: To use LOCK TABLES (together with SELECT privilege)
*************************** 19. row ***************************
Privilege: ProcessContext: Server AdminComment: To view the plain text of currently executing queries
*************************** 20. row ***************************
Privilege: ProxyContext: Server AdminComment: To make proxy user possible
*************************** 21. row ***************************
Privilege: ReferencesContext: Databases,TablesComment: To have references on tables
*************************** 22. row ***************************
Privilege: ReloadContext: Server AdminComment: To reload or refresh tables, logs and privileges
*************************** 23. row ***************************
Privilege: Replication clientContext: Server AdminComment: To ask where the slave or master servers are
*************************** 24. row ***************************
Privilege: Replication slaveContext: Server AdminComment: To read binary log events from the master
*************************** 25. row ***************************
Privilege: SelectContext: TablesComment: To retrieve rows from table
*************************** 26. row ***************************
Privilege: Show databasesContext: Server AdminComment: To see all databases with SHOW DATABASES
*************************** 27. row ***************************
Privilege: Show viewContext: TablesComment: To see views with SHOW CREATE VIEW
*************************** 28. row ***************************
Privilege: ShutdownContext: Server AdminComment: To shut down the server
*************************** 29. row ***************************
Privilege: SuperContext: Server AdminComment: To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.
*************************** 30. row ***************************
Privilege: TriggerContext: TablesComment: To use triggers
*************************** 31. row ***************************
Privilege: Create tablespaceContext: Server AdminComment: To create/alter/drop tablespaces
*************************** 32. row ***************************
Privilege: UpdateContext: TablesComment: To update existing rows
*************************** 33. row ***************************
Privilege: UsageContext: Server AdminComment: No privileges - allow connect only
*************************** 34. row ***************************
Privilege: TELEMETRY_LOG_ADMINContext: Server AdminComment: 
*************************** 35. row ***************************
Privilege: SHOW_ROUTINEContext: Server AdminComment: 
*************************** 36. row ***************************
Privilege: RESOURCE_GROUP_USERContext: Server AdminComment: 
*************************** 37. row ***************************
Privilege: REPLICATION_APPLIERContext: Server AdminComment: 
*************************** 38. row ***************************
Privilege: PASSWORDLESS_USER_ADMINContext: Server AdminComment: 
*************************** 39. row ***************************
Privilege: INNODB_REDO_LOG_ENABLEContext: Server AdminComment: 
*************************** 40. row ***************************
Privilege: XA_RECOVER_ADMINContext: Server AdminComment: 
*************************** 41. row ***************************
Privilege: GROUP_REPLICATION_STREAMContext: Server AdminComment: 
*************************** 42. row ***************************
Privilege: GROUP_REPLICATION_ADMINContext: Server AdminComment: 
*************************** 43. row ***************************
Privilege: SENSITIVE_VARIABLES_OBSERVERContext: Server AdminComment: 
*************************** 44. row ***************************
Privilege: FLUSH_USER_RESOURCESContext: Server AdminComment: 
*************************** 45. row ***************************
Privilege: FLUSH_TABLESContext: Server AdminComment: 
*************************** 46. row ***************************
Privilege: FLUSH_STATUSContext: Server AdminComment: 
*************************** 47. row ***************************
Privilege: PERSIST_RO_VARIABLES_ADMINContext: Server AdminComment: 
*************************** 48. row ***************************
Privilege: AUTHENTICATION_POLICY_ADMINContext: Server AdminComment: 
*************************** 49. row ***************************
Privilege: BINLOG_ADMINContext: Server AdminComment: 
*************************** 50. row ***************************
Privilege: ROLE_ADMINContext: Server AdminComment: 
*************************** 51. row ***************************
Privilege: BACKUP_ADMINContext: Server AdminComment: 
*************************** 52. row ***************************
Privilege: CONNECTION_ADMINContext: Server AdminComment: 
*************************** 53. row ***************************
Privilege: BINLOG_ENCRYPTION_ADMINContext: Server AdminComment: 
*************************** 54. row ***************************
Privilege: RESOURCE_GROUP_ADMINContext: Server AdminComment: 
*************************** 55. row ***************************
Privilege: INNODB_REDO_LOG_ARCHIVEContext: Server AdminComment: 
*************************** 56. row ***************************
Privilege: AUDIT_ABORT_EXEMPTContext: Server AdminComment: 
*************************** 57. row ***************************
Privilege: FLUSH_OPTIMIZER_COSTSContext: Server AdminComment: 
*************************** 58. row ***************************
Privilege: CLONE_ADMINContext: Server AdminComment: 
*************************** 59. row ***************************
Privilege: SET_USER_IDContext: Server AdminComment: 
*************************** 60. row ***************************
Privilege: SESSION_VARIABLES_ADMINContext: Server AdminComment: 
*************************** 61. row ***************************
Privilege: REPLICATION_SLAVE_ADMINContext: Server AdminComment: 
*************************** 62. row ***************************
Privilege: SYSTEM_VARIABLES_ADMINContext: Server AdminComment: 
*************************** 63. row ***************************
Privilege: FIREWALL_EXEMPTContext: Server AdminComment: 
*************************** 64. row ***************************
Privilege: SYSTEM_USERContext: Server AdminComment: 
*************************** 65. row ***************************
Privilege: APPLICATION_PASSWORD_ADMINContext: Server AdminComment: 
*************************** 66. row ***************************
Privilege: TABLE_ENCRYPTION_ADMINContext: Server AdminComment: 
*************************** 67. row ***************************
Privilege: SERVICE_CONNECTION_ADMINContext: Server AdminComment: 
*************************** 68. row ***************************
Privilege: AUDIT_ADMINContext: Server AdminComment: 
*************************** 69. row ***************************
Privilege: ENCRYPTION_KEY_ADMINContext: Server AdminComment: 
69 rows in set (0.00 sec)

(6)查看指定用戶的權限

show grants for root@localhost\G;
mysql> show grants for root@localhost\G;
*************************** 1. row ***************************
Grants for root@localhost: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`localhost` WITH GRANT OPTION
*************************** 2. row ***************************
Grants for root@localhost: GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ABORT_EXEMPT,AUDIT_ADMIN,AUTHENTICATION_POLICY_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FIREWALL_EXEMPT,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,GROUP_REPLICATION_STREAM,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PASSWORDLESS_USER_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SENSITIVE_VARIABLES_OBSERVER,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,TELEMETRY_LOG_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`localhost` WITH GRANT OPTION
*************************** 3. row ***************************
Grants for root@localhost: GRANT PROXY ON ``@`` TO `root`@`localhost` WITH GRANT OPTION
3 rows in set (0.00 sec)

(7)切換數據庫

use databaseName[;]

(8)創建數據庫

create database databaseName  [character set utf8];

?

(9)刪除數據庫

drop database databaseName;

(10)查看支持的字符集

SHOW CHARACTER SET;

(11)賦加用戶權限

grant all on *.* to zhangsan@'192.168.72.1';

(12)查看當前MySQL活動連接(除了事件調度器和當前會話)

mysql> show processlist;
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
| Id | User            | Host      | db   | Command | Time | State                  | Info             |
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
|  5 | event_scheduler | localhost | NULL | Daemon  |  256 | Waiting on empty queue | NULL             |
|  8 | root            | localhost | sys  | Query   |    0 | init                   | show processlist |
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
2 rows in set, 1 warning (0.00 sec)

(13)輸出1的表頭(字段名稱)以及1的值

mysql> select 1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)

(14)調出user表中的所有

mysql> select * from user;
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host      | User             | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| localhost | mysql.infoschema | Y           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-06-25 23:25:32   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.session    | N           | N           | N           | N           | N           | N         | N           | Y             | N            | N         | N          | N               | N          | N          | N            | Y          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-06-25 23:25:32   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.sys        | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-06-25 23:25:32   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | root             | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | mysql_native_password |                                                                        | N                | 2025-06-25 23:25:32   |              NULL | N              | Y                | Y              |                   NULL |                NULL | NULL                     | NULL            |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
4 rows in set (0.00 sec)

2.表結構操作命令

(1)查看數據表

show tables;
mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
| default_roles                                        |
| engine_cost                                          |
| func                                                 |
| general_log                                          |
| global_grants                                        |
| gtid_executed                                        |
| help_category                                        |
| help_keyword                                         |
| help_relation                                        |
| help_topic                                           |
| innodb_index_stats                                   |
| innodb_table_stats                                   |
| password_history                                     |
| plugin                                               |
| procs_priv                                           |
| proxies_priv                                         |
| replication_asynchronous_connection_failover         |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version              |
| replication_group_member_actions                     |
| role_edges                                           |
| server_cost                                          |
| servers                                              |
| slave_master_info                                    |
| slave_relay_log_info                                 |
| slave_worker_info                                    |
| slow_log                                             |
| tables_priv                                          |
| time_zone                                            |
| time_zone_leap_second                                |
| time_zone_name                                       |
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
37 rows in set (0.00 sec)

(2)查看表結構

desc[describe] tableName;
[root@mysqld ~]# mysql -e "desc mysql.user"
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                    | Type                              | Null | Key | Default               | Extra |
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                     | char(255)                         | NO   | PRI |                       |       |
| User                     | char(32)                          | NO   | PRI |                       |       |
| Select_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Insert_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Update_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Delete_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Create_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_priv                | enum('N','Y')                     | NO   |     | N                     |       |
| Reload_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Shutdown_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Process_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| File_priv                | enum('N','Y')                     | NO   |     | N                     |       |
| Grant_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| References_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Index_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Show_db_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Super_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tmp_table_priv    | enum('N','Y')                     | NO   |     | N                     |       |
| Lock_tables_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Execute_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_slave_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_client_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Create_view_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Show_view_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_routine_priv      | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_routine_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Create_user_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Event_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Trigger_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tablespace_priv   | enum('N','Y')                     | NO   |     | N                     |       |
| ssl_type                 | enum('','ANY','X509','SPECIFIED') | NO   |     |                       |       |
| ssl_cipher               | blob                              | NO   |     | NULL                  |       |
| x509_issuer              | blob                              | NO   |     | NULL                  |       |
| x509_subject             | blob                              | NO   |     | NULL                  |       |
| max_questions            | int unsigned                      | NO   |     | 0                     |       |
| max_updates              | int unsigned                      | NO   |     | 0                     |       |
| max_connections          | int unsigned                      | NO   |     | 0                     |       |
| max_user_connections     | int unsigned                      | NO   |     | 0                     |       |
| plugin                   | char(64)                          | NO   |     | caching_sha2_password |       |
| authentication_string    | text                              | YES  |     | NULL                  |       |
| password_expired         | enum('N','Y')                     | NO   |     | N                     |       |
| password_last_changed    | timestamp                         | YES  |     | NULL                  |       |
| password_lifetime        | smallint unsigned                 | YES  |     | NULL                  |       |
| account_locked           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_role_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_role_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Password_reuse_history   | smallint unsigned                 | YES  |     | NULL                  |       |
| Password_reuse_time      | smallint unsigned                 | YES  |     | NULL                  |       |
| Password_require_current | enum('N','Y')                     | YES  |     | NULL                  |       |
| User_attributes          | json                              | YES  |     | NULL                  |       |
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+

(3)創建數據表

create table tableName(columnName(列名稱) dataType(數據類型), ............);

(4)查看表結構

mysql> describe t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
| sex   | varchar(4)  | YES  |     | NULL    |       |
| phone | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
###或者
mysql> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
| sex   | varchar(4)  | YES  |     | NULL    |       |
| phone | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

(5)查看表內容

mysql> select * from t1;
Empty set (0.01 sec)?

(6)刪除數據表(表結構)/刪除數據庫

drop table tableName;

?(7)刪除表數據

delete table tableName;

??

(8)刪除id=1的數據

mysql> delete from t1 where id=1;
Query OK, 1 row affected (0.00 sec)mysql> select * from t1;
+------+----------+------+------------+
| id   | name     | sex  | phone      |
+------+----------+------+------------+
|    2 | zhangsan | 男   | 1111111111 |
+------+----------+------+------------+
1 row in set (0.00 sec)

(9)全表更新

mysql> update t1 set name=NULL; ##空
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from t1;
+------+------+------+------------+
| id   | name | sex  | phone      |
+------+------+------+------------+
|    2 | NULL | 男   | 1111111111 |
+------+------+------+------------+
1 row in set (0.00 sec)mysql> update t1 set name=''; ##空字符串
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from t1;
+------+------+------+------------+
| id   | name | sex  | phone      |
+------+------+------+------------+
|    2 |      | 男   | 1111111111 |
+------+------+------+------------+
1 row in set (0.00 sec)

3.表數據操作

(1)插入數據
  • 單行插入

insert [into]  tableName[(columnName,.........)] value('value1',value2,.......);

?

  • 批量插入

insert into stu value('張三', 22, '11011011011', '男'),('王無',26 , '12011011011', '女'),('里斯',27 ,'12011011099', '男');

??

注意:只書寫表名稱,表示全表插入,即,全字段插入! 插入的數據數量與字段數量一定要相等!

(2)自動增長列
mysql> desc t1;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int          | NO   | PRI | NULL    | auto_increment |
| create_time | datetime     | YES  |     | NULL    |                |
| name        | varchar(255) | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)mysql> insert t1(create_time,name) value('2025-06-26 11:37:00','zhangsan'),('2025-06-26 11:37:01','lisi');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> select * from t1;
+----+---------------------+----------+
| id | create_time         | name     |
+----+---------------------+----------+
|  1 | 2025-06-26 11:37:00 | zhangsan |
|  2 | 2025-06-26 11:37:01 | lisi     |
+----+---------------------+----------+
2 rows in set (0.00 sec)
(3)alter命令用法

語法

ALTER TABLE <表名> [修改選項]

常見用法

| ADD COLUMN <列名> <類型>
| CHANGE COLUMN <舊列名> <新列名> <新列類型>
| ALTER COLUMN <列名> { SET DEFAULT <默認值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <類型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校對規則名> 

案例

?(1)創建測試表

create table stu_score(id tinyint, name varchar(50), score decimal(4,2), object varchar(50));

?

(2)修改表名

#alter table tab_name rename to tab_new;
#修改表名
alter table stu_score rename to stuS;

(3)修改字段類型(修改字段相對位置)

#alter table tab_name modify field type (first/before/after field1);
alter table stuS modify id int;

(4)修改字段默認值/是否為空/自動增長

#alter table tab_name modify field type not null/default ="未知"/auto_increment;
#自動增長
alter table stuS modify id int primary key;
alter table stuS modify id int auto_increment;

?

(5)extra設定默認值的自動歸補

?(6)修改字段名/字段類型

#alter table tab_name change field  newfield newtype;
#修改字段類型
alter table stuS modify id int;
#修改字段名及類型
alter table stuS change column object subject varchar(50);
#通過alter modify 修改字段是否為null或者默認值!
alter table  stuS modify column name varchar(50) not null default "未知";

?
(7)添加字段

#alter table tab_name add field type (first/before/after field1);
alter table stuS add column extra text;
#添加到第一列
alter table stuS add i int first; 
#添加到某一字段后面!
alter table stuS add sex varchar(10) after name; 

?(8)刪除字段

#alter table tab_name drop field;
alter table stuS drop id;

總結:

MySQL的核心價值體現在三層技術維度?:

1.?基礎能力普適性?

????????支持標準SQL語法(DDL/DML/DQL/DCL),五分鐘快速部署

????????數據范式約束保障結構嚴謹性,ACID事務模型維護操作原子性

2.架構設計先進性?

????????分層架構解耦連接處理與數據存儲,支持每秒萬級查詢

????????索引優化(B+樹、全文索引)提升檢索效率300%+?

3.生態整合開放性

????????無縫集成LAMP/LEMP技術棧,提供Python/Java/PHP等驅動接口

?????????開源社區持續貢獻高可用方案(主從復制、分庫分表)

?時代定位?:在云原生與分布式演進中,MySQL憑借K8s Operator生態云數據庫兼容協議,持續鞏固其作為“數據層事實標準”的核心地位。無論是初創項目快速驗證,還是金融級系統承載高并發事務,MySQL憑借二十年技術沉淀與全球開發者驗證,始終是平衡性能、成本、可靠性的最優解之一。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912312.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912312.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912312.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

桌面小屏幕實戰課程:DesktopScreen 16 HTTP

飛書文檔http://https://x509p6c8to.feishu.cn/docx/doxcnrxBs55qGn6xoysTcJpqwRf /home/kemp/work/esp/esp-idf/examples/protocols/http_request 源碼下載方式參考&#xff1a; 源碼下載方式 心知天氣 注冊賬號&#xff0c;申請產品&#xff0c;獲取密鑰 產品 天氣數據 H…

vs2019 + QT下 vs2019創建的項目打開ui文件失敗

問題: 在vs2019 QT模式下。使用2019創建工程后。點擊ui文件打開時。出現奔潰&#xff0c;如下圖 解決方式&#xff1a; ui文件->右鍵->打開方式->添加->程序->點擊三個點->qcreator(qt安裝目錄) ->設置為默認值->確定 點擊設置為默認值&#xff0c;點…

WPS之PPT鏤空效果實現

1、準備一張圖片&#xff0c;剪切存入剪貼板 2、把圖片設為背景 右鍵 》 設置背景格式 》 圖片或紋理填充 》 圖片填充選擇剪貼板 3、插入一個矩形覆蓋全圖&#xff0c;設置無線條漸變填充從左到右 4、插入圓角矩形 5、單擊小黃點調整弧度 6、選擇無線條幻燈片背景填充 7、插…

服務注冊中心的本質抉擇:從業務本質看AP與CP的終極之選

本文從服務注冊中心的本質職責出發&#xff0c;通過分析其核心功能、業務場景和技術約束&#xff0c;深入探討服務注冊中心在架構設計上應該優先保證AP還是CP特性。文章首先剖析服務注冊中心的根本使命&#xff0c;然后從分布式系統原理、生產實踐案例和性能表現三個維度進行對…

mybatis-plus從入門到入土(一):快速開始

? 朋友們, 大家好, 從今天開始我想開一個系列博客。名字起的比較隨意就叫Mybatis-Plus從入門到入土, 這系列博客的定位是從基礎使用開始, 然后逐步深入全面的了解Mybatis-Plus框架, 寫這個博客的主要原因是工作中經常用到Mybatis-Plus框架, 因而對這個框架相對比較了解一些, 順…

如何快速將iPhone中的文本保存到電腦上

您的 iPhone 上是否有很多重要的短信&#xff0c;并且您想將短信備份到計算機上&#xff1f;我們都知道傳輸消息與傳輸照片不同&#xff0c;但幸運的是&#xff0c;您可以使用相關的工具和方法來實現。我們介紹了 4 種方法來解釋如何將 iPhone 中的文本保存到計算機。所有的辦法…

【OpenGL學習】(八)圖形變換

OpenGL圖形變換介紹&#xff1a;https://learnopengl-cn.github.io/01%20Getting%20started/07%20Transformations 【OpenGL學習】&#xff08;八&#xff09;圖形變換 本項目將通過變換矩陣&#xff0c;對【OpenGL學習】&#xff08;七&#xff09;紋理單元 中的圖形進行縮放…

從理論到實戰:解密大型語言模型的核心技術與應用指南

一、Transformer&#xff1a;語言理解與生成的基石 Transformer 架構的出現&#xff0c;徹底改變了自然語言處理&#xff08;NLP&#xff09;的格局。它以“注意力”為核心&#xff0c;將全局依賴的捕捉效率推向新高。下面用 圖簡要概覽其數據流&#xff1a; 從上圖可見&#…

kali換源

在Kali Linux中切換軟件源可以提高軟件下載速度&#xff0c;下面為你介紹切換源的方法。 一、備份原配置文件 首先備份原配置文件&#xff0c;避免操作失誤導致問題&#xff1a; sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak二、編輯源配置文件 使用以下命令編…

從決策樹到隨機森林:Python機器學習里的“樹形家族“深度實戰與原理拆解

引言 在機器學習的算法森林中&#xff0c;有一對"樹形兄弟"始終占據著C位——決策樹像個邏輯清晰的"老教授"&#xff0c;用可視化的樹狀結構把復雜決策過程拆解成"是/否"的簡單判斷&#xff1b;而它的進階版隨機森林更像一支"精英軍團&quo…

uniapp,每次請求時,中斷上次請求

1.封裝uni.request import {BASE_URL} from "/config/config.js"import store from "/store/index.js"; class RequestManager {constructor() {this.requestTasks new Map() // 存儲所有請求任務this.baseURL BASE_URLthis.header {Content-Type: app…

DuDuTalk | 武漢賽思云科技有限公司通過武漢市人工智能企業認定!

近日&#xff0c;2025年武漢市人工智能企業名單正式公布&#xff01;武漢賽思云科技有限公司&#xff08;以下簡稱賽思云科技&#xff09;憑借卓越的技術實力與創新成果&#xff0c;成功入選武漢市人工智能企業。這是對公司長期深耕AI語音智能領域、推動數字化轉型的高度認可&a…

STM32實現傅里葉變換精確計算采樣電流值

以下是基于離散傅里葉變換(DFT)算法在單片機上實現精確電流值計算的全流程指南,結合硬件選型、算法優化、代碼實現及實際應用場景分析,綜合多篇技術文檔的實踐要點: ?? 一、系統設計核心要點 硬件選型與配置 單片機選擇:優先采用帶硬件浮點單元(FPU)的STM32F4/F7系列…

python 爬蟲 下載視頻

測試 OK II 在開發者工具里面 直接搜索m3u8 可以直接找相對應連接地址繼續分析 這個m3u8 url地址是從哪里過來的 在什么地方有 III 我們想要視頻數據 <m3u8連接> 在 網頁源代碼里面有獲取整個視頻內容 --》分為N個視頻片段《ts文件》-->在m3u8連接里面--> 視頻播放…

希爾伯特空間:無窮維度的幾何世界

希爾伯特空間&#xff1a;無窮維度的幾何世界 從量子物理到信號處理&#xff0c;希爾伯特空間為現代科學與工程提供了強大的數學框架 引言&#xff1a;無限維度的舞臺 在數學和物理學的廣闊領域中&#xff0c;希爾伯特空間扮演著至關重要的角色。這個完備的內積空間不僅推廣了…

Transformer結構與代碼實現詳解

參考&#xff1a; Transformer模型詳解&#xff08;圖解最完整版&#xff09; - 知乎https://zhuanlan.zhihu.com/p/338817680GitHub - liaoyanqing666/transformer_pytorch: 完整的原版transformer程序&#xff0c;complete origin transformer programhttps://github.com/lia…

Adobe InDesign 2025

Adobe InDesign 2025(ID2025)桌面出版軟件和在線發布工具,報刊雜志印刷排版設計軟件。Adobe InDesign中文版主要用于傳單設計,海報設計,明信片設計,電子書設計,排版,手冊設計,數字雜志,iPad應用程序和在線交互文檔。它是首款支持Unicode文本處理的主流DTP應用程序,率先使用新型…

Linux下獲取指定時間內某個進程的平均CPU使用率

一、引言 通過pidstat工具可以測量某個進程在兩個時間點之間的平均CPU利用率。 二、pidstat工具的安裝 pidstat屬于sysstat套件的一部分。以Ubuntu系統為例&#xff0c;執行下面命令下載安裝sysstat套件&#xff1a; apt-get install sysstat 執行完后&#xff0c;終端執行p…

1.4 蜂鳥E203處理器NICE接口詳解

一、NICE接口的概念 NICE&#xff08;Nuclei Instruction Co-unit Extension&#xff09;接口是蜂鳥E203處理器中用于擴展自定義指令的協處理器接口&#xff0c;基于RISC-V標準協處理器擴展機制設計。它允許用戶在不修改處理器核流水線的情況下&#xff0c;通過外部硬件加速特…

Oracle 遞歸 + Decode + 分組函數實現復雜樹形統計進階(第二課)

在上篇文章基礎上&#xff0c;我們進一步解決層級數據遞歸匯總問題 —— 讓上級部門的統計結果自動包含所有下級部門數據&#xff08;含多級子部門&#xff09;&#xff0c;并新增請假天數大于 3 天的統計維度。通過遞歸 CTE、DECODE函數與分組函數的深度結合&#xff0c;實現真…