您的当前位置:首页 >数据库 >一篇带你彻底弄懂SQL基础 正文
时间:2025-11-05 14:01:02 来源:网络整理编辑:数据库
一、SQL分类SQL语句主要分为以下三类DDL: 数据定义语言,用于定义不同的数据段、数据库、表、列、索引等数据库对象。常用的关键字包含create、alter、drop、truncate等DML:

SQL语句主要分为以下三类
DDL: 数据定义语言,彻底础用于定义不同的数据段、数据库、弄懂表、篇带列、彻底础索引等数据库对象。弄懂常用的篇带关键字包含create、alter、彻底础drop、弄懂truncate等
DML: 数据操纵语句,篇带用于新增、删除、彻底础更新和查询数据库里的弄懂记录。常用的篇带关键字包含insert、delete、彻底础update和select 等。弄懂
DCL: 数据控制语言,用户定义数据库、表、字段、用户的访问权限和安全级别等。常用的关键字包含grant、revoke等。
MySQL创建数据库的常用语法如下:
复制/** 创建数据库 **/CREATE DATABASE dbname DEFAULT CHARACTER SET character_name;例如:创建一个 testdb 数据库
/** 创建testdb数据库 **/CREATE DATABASE testdb;1.2.3.4.5.注:字符集通常可以不指定,使用默认的WordPress模板字符集,但前提是全局字符集设置是合理的。
(2)查看数据库查看当前实例有哪些数据库,可以用如下命令:
复制mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys || testdb |+--------------------+5 rows in set (0.00 sec)1.2.3.4.5.6.7.8.9.10.11.可以发现,除了刚创建的testdb库,还存在其他几个系统库,这几个系统库的功能如下:
information_schema 存储的是本实例的数据库元数据信息,例如包含数据库信息、表信息、列信息、权限信息、字符集信息、分区信息等。mysql 存储的是系统的用户权限信息、慢查询日志表、general日志表等信息。performance_schema 存储的是数据库实例的性能参数,MySQL5.7默认是开启的。站群服务器sys 是基于performance_schema库中相关表的视图信息,目的是更好的查看performance_schema库表间的相关信息,提高阅读性。另外 查看数据库建库脚本可以用如下脚本:
复制mysql> show create database testdb;+----------+-----------------------------------------------------------------------------------------------+| Database | Create Database |+----------+-----------------------------------------------------------------------------------------------+| testdb | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ |+----------+-----------------------------------------------------------------------------------------------+1 row in set (0.00 sec)1.2.3.4.5.6.7. (3)选择数据库当需要使用具体数据库时,需要选择对应的库,可以用如下脚本
复制mysql> use testdb;Database changed1.2. (4)修改数据库 复制/** 修改数据库字符集 **/mysql> alter database testdb DEFAULT CHARACTER SET utf8;Query OK, 1 row affected, 1 warning (0.00 sec)/** 修改后查看如下 **/mysql> show create database testdb;+----------+-----------------------------------------------------------------+| Database | Create Database |+----------+-----------------------------------------------------------------+| testdb | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |+----------+-----------------------------------------------------------------+1 row in set (0.00 sec)1.2.3.4.5.6.7.8.9.10.11.如果想查看支持的字符集,可以使用如下脚本:
复制mysql> show character set;+----------+---------------------------------+---------------------+--------+| Charset | Description | Default collation | Maxlen |+----------+---------------------------------+---------------------+--------+| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 || ascii | US ASCII | ascii_general_ci | 1 || big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 || binary | Binary pseudo charset | binary | 1 || cp1250 | Windows Central European | cp1250_general_ci | 1 || cp1251 | Windows Cyrillic | cp1251_general_ci | 1 || cp1256 | Windows Arabic | cp1256_general_ci | 1 || cp1257 | Windows Baltic | cp1257_general_ci | 1 || cp850 | DOS West European | cp850_general_ci | 1 || cp852 | DOS Central European | cp852_general_ci | 1 || cp866 | DOS Russian | cp866_general_ci | 1 || cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 || dec8 | DEC West European | dec8_swedish_ci | 1 || eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 || euckr | EUC-KR Korean | euckr_korean_ci | 2 || gb18030 | China National Standard GB18030 | gb18030_chinese_ci | 4 || gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 || gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 || geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 || greek | ISO 8859-7 Greek | greek_general_ci | 1 || hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 || hp8 | HP West European | hp8_english_ci | 1 || keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 || koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 || koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 || latin1 | cp1252 West European | latin1_swedish_ci | 1 || latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 || latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 || latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 || macce | Mac Central European | macce_general_ci | 1 || macroman | Mac West European | macroman_general_ci | 1 || sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 || swe7 | 7bit Swedish | swe7_swedish_ci | 1 || tis620 | TIS620 Thai | tis620_thai_ci | 1 || ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 || ujis | EUC-JP Japanese | ujis_japanese_ci | 3 || utf16 | UTF-16 Unicode | utf16_general_ci | 4 || utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 || utf32 | UTF-32 Unicode | utf32_general_ci | 4 || utf8 | UTF-8 Unicode | utf8_general_ci | 3 || utf8mb4 | UTF-8 Unicode | utf8mb4_0900_ai_ci | 4 |+----------+---------------------------------+---------------------+--------+41 rows in set (0.00 sec)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.建议字符集配置在配置文件中,初始化启动后即全局生效,整库的字符集统一。
(5)删除数据库删除数据库的语法很简单,例如:
复制mysql> drop database testdb;
Query OK, 0 rows affected (0.00 sec)1.2.注:在确定可以删除数据库的情况下再去执行删除操作,否则恢复较麻烦。
由于上一步将库删除了,本次创建表前先创建数据库testdb,再选择使用testdb库,然后在testdb库下创建students表,示例如下:
复制mysql> create database testdb;Query OK, 1 row affected (0.00 sec)mysql> use testdb;Database changed
mysql> create table students ( id int not null auto_increment primary key, -> stu_name varchar(10) not null comment 姓名, -> age tinyint comment 年龄, -> class_no varchar(10) comment 班级, -> key idx_stu_name(stu_name) -> ) ENGINE=InnoDB;Query OK, 0 rows affected (0.01 sec)1.2.3.4.5.6.7.8.9.10.11. (2)查看表结构查看表结构的方式有多种方式,在此主要介绍2种,示例如下:
复制/** 查看字段名及字段类型等 **/mysql> desc students;+----------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+----------------+| id | int(11) | NO | PRI | NULL | auto_increment || stu_name | varchar(10) | NO | MUL | NULL | || age | tinyint(4) | YES | | NULL | || class_no | varchar(10) | YES | | NULL | |+----------+-------------+------+-----+---------+----------------+4 rows in set (0.00 sec)/** 查看建表语句 **/mysql> show create tablestudents\G
Kubernetes(K8S)管理,图形界面,Web UI2025-11-05 13:18
智能建筑的机遇与挑战!2025-11-05 13:06
MySQL 行级锁:加锁机制、核心规则与实践指南2025-11-05 13:04
以得胜TS610耳机的音质和舒适度夺人心魄(颠覆传统,带来极致音乐体验)2025-11-05 12:37
国产数据库生态工具大起底2025-11-05 12:16
面试官:PostgreSQL 为什么不选择 B+ 树索引?2025-11-05 12:11
IT 服务运维中的安全管理2025-11-05 12:08
Gx850显卡性能评测(探究Gx850显卡的性能特点与应用领域)2025-11-05 11:51
CVE-2025-55241:CVSS 10.0 分 Microsoft Entra ID 漏洞或危及全球所有租户2025-11-05 11:34
探索27寸显示器的卓越品质与多功能性(畅享无尽视觉盛宴,尽在27寸显示器)2025-11-05 13:58
5G改变制造业的五种方式2025-11-05 13:47
F5为OpenTelemtry项目提供降本增效的技术支持2025-11-05 13:41
Windows 截图工具 Greenshot 曝高危漏洞 可执行任意代码(PoC已公开)2025-11-05 13:08
探索赫名迪诺基亚(揭开神秘面纱,探索这座世界遗产级古城的魅力)2025-11-05 12:51
运维:MySQL常用的服务器状态命令2025-11-05 12:38
前端生态屡遭攻击,pnpm终于出手了,上大分!2025-11-05 12:33
企业中的大部分AI应用对安全团队而言是不可见的2025-11-05 12:14
网络出现错误导致电脑开机问题(解决方法与技巧)2025-11-05 11:58
数字城市如何成为智能、可持续生活的基础2025-11-05 11:44