前言:
????????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.關系型數據庫模型
-
層次模型
-
網狀模型
-
關系模型
關系模型的相關概念:
-
實體(Entity) :實體是指現實世界中可以區分的對象,它可以是具體的人、事物或概念,也可以是抽象的物體。在數據庫中,實體通常對應于表中的行,而表則實體的一種集合。例如,在一個學生信息管理系統中,學生、課程和教師都可以被視為實體。
-
屬性(Attribute): 屬性是實體的特征或性質,它提供了關于實體的具體信息。屬性可以是簡單的數據類型,如姓名、年齡或地址,也可以是更復雜的結構,如電話號碼或電子郵件地址。在數據庫中,屬性通常對應于表中的列,每列代表實體的一種屬性。例如,學生的姓名、學號和年齡都是學生的屬性。
-
聯系(Relationship): 聯系描述了不同實體之間的關系。在現實世界中,實體之間往往存在各種形式的關聯。在數據庫中,聯系通過關系表來實現,這個表通常包含兩個或更多的實體作為表的列。例如,學生選修課程的關系表就包含了學生實體和課程實體的相關信息,描述了哪位學生選修了哪門課程。
在關系模型中,實體和聯系通常通過以下三種類型來進一步分類:
-
一對一(1:1):這種聯系表示兩個實體之間存在一對一的關系,即每個實體只有一個相關的實體,反之亦然。例如,一個部門與一個負責人之間可能存在一對一的聯系。
-
一對多(1:N):這種聯系表示一個實體與多個實體相關,但每個相關實體只與一個實體相關。例如,一個教師可以教授多門課程,但每門課程只能由一個教師教授。
-
多對多(M:N):這種聯系表示兩個實體之間存在多對多的關系,即每個實體可以與多個實體相關,同時每個相關實體也可以與多個實體相關。例如,學生可以選修多門課程,同時每門課程也可以被多個選修。
在設計數據庫時,正確地識別實體、屬性和聯系,以及它們之間的類型,對于創建一個結構良好、能夠有效存儲和檢索數據的數據庫至關重要。
4.關系數據庫相關概念
-
庫(Database): 庫是一個存儲數據的容器,它可以包含多個數據庫。在某些管理系統中,庫等同于數據庫。
-
表(Table): 表是數據庫中的一個表格,由行和列組成。表是存儲數據的主要結構,每個表通常對應一個實體類型。表的列名稱為屬性,而表的行名稱為記錄。
-
行(Record): 行也稱為記錄,它是表中的一個單元,代表表中的一個具體實例。每一行包含了一組屬性值,這些值共同描述了一個實體的狀態。
-
列(Column): 列是表中的一列,它代表了表的一個屬性。每列都有一個數據類型,用于定義存儲在其中的數據的種類和格式。
-
字段(Field): 字段通常指的是表中的行與列的交叉點,它存儲了單個數據項。在數據庫中,每個字段都有其特定的數據類型和用途。
-
數據(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_RESET | InnoDB 內存比較器重置表。此表用于記錄 InnoDB 內存比較器(comparison memory)的清除操作。 |
INNODB_RSEG | InnoDB 重做段表此表用于記錄 InnoDB 數據文件的重做段信息。 |
INNODB_UNDO_LOGS | InnoDB 撤銷日志表。此表用于記錄 InnoDB 撤銷操作的日志信息。 |
INNODB_CMPMEM | InnoDB 內存比較器表。此表用于記錄 InnoDB 內存比較器的分配和使用情況。 |
INNODB_SYS_TABLESTATS | InnoDB 系統表統計信息表。此表用于記錄 InnoDB 系統表的統計信息,如數據量、碎片率等。 |
INNODB_LOCK_WAITS | InnoDB 鎖等待信息表。此表記錄 InnoDB 鎖等待的情況,包括等待鎖的線程 ID、等待時間等。 |
INNODB_INDEX_STATS | InnoDB 索引統計信息表。此表用于記錄 InnoDB 索引的統計信息,如索引大小、索引列的數據類型等。 |
INNODB_CMP | InnoDB 比較器表。此表用于記錄 InnoDB 比較器的分配和使用情況。 |
INNODB_CHANGED_PAGES | InnoDB 更改頁表。此表用于記錄 InnoDB 數據文件中已更改的頁的信息。 |
INNODB_BUFFER_POOL_PAGES | InnoDB 緩沖池頁表。此表用于記錄 InnoDB 緩沖池中每個頁的信息,包括頁的類型、頁的狀態等。 |
INNODB_TRX | InnoDB 事務表。此表用于記錄 InnoDB 事務的信息,如事務 ID、事務狀態等。 |
INNODB_BUFFER_POOL_PAGES_INDEX | InnoDB 緩沖池頁索引表。此表用于記錄 InnoDB 緩沖池中每個頁的索引信息。 |
INNODB_LOCKS | InnoDB 鎖表。此表用于記錄 InnoDB 鎖的信息,如鎖的類型、鎖的持有者等。 |
INNODB_BUFFER_PAGE_LRU | InnoDB 緩沖池頁 LRU 表。此表用于記錄 InnoDB 緩沖池中每個頁的最近最少使用(Least Recently Used,LRU)信息。 |
INNODB_SYS_TABLES | InnoDB 系統表信息表。此表用于記錄 InnoDB 系統表的信息,如表名、表狀態等。 |
INNODB_SYS_FIELDS | InnoDB 系統字段信息表。此表用于記錄 InnoDB 系統表中每個字段的信息,如字段名、字段類型等。 |
INNODB_SYS_COLUMNS | InnoDB 系統列信息表。此表用于記錄 InnoDB 系統表中每個列的信息,如列名、列類型、列長度等。 |
INNODB_SYS_STATS | InnoDB 系統統計信息表。此表用于記錄 InnoDB 系統統計信息,如表數量、數據量等。 |
INNODB_SYS_FOREIGN | InnoDB 系統外鍵信息表。此表用于記錄 InnoDB 系統表中外鍵的信息,如外鍵約束條件等。 |
INNODB_SYS_INDEXES | InnoDB 系統索引信息表。此表用于記錄 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.整型
整數類型 | 占用字節 | 無符號數的取值范圍 | 有符號數的取值范圍 |
---|---|---|---|
TINYINT | 1 | 0~255 | -128~127 |
SMALLINT | 2 | 0~65535 | -32768~32767 |
MEDIUMINT | 3 | 0~16777215 | -8388608~8388607 |
INT | 4 | 0~4294967295 | -2147483648~2147483647 |
BIGINT | 8 | 0~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.浮點型
數據類型 | 字節數 | 取值范圍 |
---|---|---|
FLOAT | 4 | -2^128~2 ^128,即-3.40E+38~+3.40E+38 |
DOUBLE | 8 | -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.日期時間類型
數據類型 | 字節 | 取值范圍 | 日期格式 | 零值 |
---|---|---|---|---|
YEAR | 1 | 1901~2155 | YYYY | 0000 |
DATE | 3 | 1000-01-01~9999-12-31 | YYYY-MM-DD | 0000-00-00 |
TIME | 3 | -838:59:59~838:59:59 | HH:MM:SS | 00:00:00 |
DATETIME | 8 | 1000-01-01 00:00:00~9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 |
TIMESTAMP | 4 | 1970-01-01 00:00:01~2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 0000-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) | 固定長度 | M | 0<=M<=255 | M個字節 |
VARCHAR(M) | 可變長度 | M | 0<=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')
-
ENUM類型的取值范圍需要在定義字段時進行指定。
-
設置字段值時,ENUM類型只允許從成員中選取單個值,不能一次選取多個值。
-
其所需要的存儲空間由定義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~8 | 1個字節 |
9~16 | 2個字節 |
17~24 | 3個字節 |
25~32 | 4個字節 |
33~64 | 8個字節 |
(2)SET類型在存儲數據時成員個數越多,其占用的存儲空間越大。
(3)SET類型在選取成員時,與ENUM類型不同,其可以一次選擇多個成員。
9.BINARY和VARBINARY類型
BINARY和VARBINARY類型類似于CHAR和VARCHAR,不同的是,它們所表示的是二進制數據。
類型 | 特點 | 長度 | 長度范圍 | 占用的存儲空間 |
---|---|---|---|---|
BINARY(M) | 固定長度 | M | 0<=M<=255 | M個字節 |
VARBINARY(M) | 可變長度 | M | 0<=M<=65535 | (M+ 1) 個字節 |
10.BLOB類型
BLOB類型用于保存數據量比較大的二進制數據,如圖片,PDF文檔等。
數據類型 | 存儲范圍 | 占用空間 |
---|---|---|
TINYBLOB | 0~2^8 -1字節 | len+1個字節 |
BLOB | 0~2^16 -1字節(相當于64KB) | len+2個字節 |
MEDIUMBLOB | 0~2^24 -1字節(相當于16MB) | len+3個字節 |
LONGBLOB | 0~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憑借二十年技術沉淀與全球開發者驗證,始終是平衡性能、成本、可靠性的最優解之一。