MySQL入门(1) ------ 什么是结构化查询语言

本文介绍了SQL的基础概念,包括其在MySQL中的应用,详细讲解了数据定义语言、数据操作语言、查询语言和控制语言。此外,还阐述了MySQL的特点,如开源、性能、可扩展性和安全性,并重点讨论了数据表的创建、修改、删除及不同类型的操作。
摘要由CSDN通过智能技术生成

这学期也是刚开MySQL,感觉有点意思。希望我的学习笔记可以将我们带入MySQL的大门。是的,这其实是一篇笔记。


1. 什么是SQL

结构化查询语言(Structured Query Language,简称SQL)是一种特殊目的的编程语言,主要用于数据库查询程序设计,用于存取数据以及查询、更新和管理关系数据库系统。SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作,不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式
SQL主要分为四大类:

  • 数据定义语言,数据操作语言,数据查询语言,数据控制语言
名称描述命令
数据定义语言(DDL)数据库、数据表的创建、修改和删除CREATE、ALTER、DROP
数据操作语言(DML)数据的增删改INSERT、UPDATE、DELETE
数据查询语言(DQL)数据的查询SELECT
数据控制语言(DCL)用户授权、事务的提交和回滚GRANT、COMMIT、ROLLBACK

MySQL是一个开源的关系型数据库管理系统(RDBMS)。它使用结构化查询语言(SQL)进行数据操作,包括数据的查询、插入、更新和删除等。MySQL是最流行的开源数据库之一,被广泛应用于网页应用开发。

MySQL的特点有:

  1. 开源:MySQL是开源软件,这意味着任何人都可以查看和贡献其源代码。这使得MySQL能够得到全球开发者社区的支持。
  2. 性能:MySQL是高性能的系统,它使用各种优化技术来提供快速、高效的查询处理。
  3. 可扩展性:MySQL可以处理从小型项目到大型企业应用的各种数据需求。
  4. 安全:MySQL提供了多种安全特性,包括密码加密和网络访问控制,以保护数据的安全。
  5. 多平台支持:MySQL可以在多种操作系统上运行,包括Windows、Linux和Mac OS。
  6. 丰富的功能:MySQL支持大多数SQL标准的功能,包括事务、存储过程、触发器和视图等。

2. 数据库操作

2.1 创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名称 DEFAULT CHARACTER SET 字符集 COLLATE 排序规则;

[]内为可选项,选择时需去掉。

2.2 修改数据库

ALTTER DATABASE 数据库名称 CHARACTER SET 字符集 COLLATE 排序规则;

2.3 删除数据库

DROP DATABASE [IF EXISTS] 数据库名称;

2.4 查看数据库

SHOW DATABASES;

2.5 使用数据库

USE 数据库名称;

3. 列类型

数据库创建数据表类型时要指定列类型,常用列类型主要分为:数值类型日期时间类型字符串类型

3.1 数值类型

类型说明取值存储
tinyint非常小有符号 − 2 7 -2^7 27$2^7-1$<br>无符号$0$ 2 8 − 1 2^8-1 2811字节
smallint较小2字节
mediumint中等大小3字节
int标准整数4字节
bigint较大整数8字节
float单精度浮点数4字节
double双精度浮点数8字节
decimal字符串形式的浮点数decimal(m, d)m个字节

decimal中,m表示总共占多少位,d表示小数位数

具体取值与字节相关,计算方式与其他语言基本相同

3.2 日期时间类型

类型格式
DATEYYYY-MM-dd
TIMEHH:mm:ss
DATETIMEYY-MM-dd HH:mm:ss
TIMESTAMPYYYY-MM-dd HH:mm:ss格式表示的时间戳
YEARYYYY格式的年份值

日期时间类型也有范围,有兴趣自行搜索

3.3 字符串类型

类型说明最大长度
char[(M)]定长字符串,检索快但非空间, 0 ≤ M ≤ 255 0\leq M\leq255 0M255M字符
varchar[(M)]可变字符串 0 ≤ M ≤ 65535 0\leq M \leq 65535 0M65535变长
text文本串 2 16 − 1 2^{16}-1 2161字节

3.4 列类型修饰属性

属性名说明示例
UNSIGNED无符号,只能修饰数值类型,表明该列数据不能出现负数UNSIGNED INT(4),表示只能为4位大于等于0的整数
ZEROFILL不足位数用0补充INT(4) ZEROFILL,如果给定的数为10,此时只有2位,则最终值为0010
NOT NULL该列类型值不能为空 VARCHAR(20) NOT NULL,表示该列数据不能为空值
DEFAULT设置默认值INT(4) DEFAULT 0,表示该列不赋值时默认为空值
AUTO_INCREMENT表示自增长,只能应用于数值列类型,列类型必须为键,且不能为空INT(11) AUTO_INCREMENT NOT NULL PRIMARY KEY 第一次该列中插入值时为1,第二次为2

4. 数据表操作

4.1 数据表类型

MySQL中数据表类型很多,如MyISAMInnoDBHEAPBOBCSV等,最常用是MyISAMInnoDB

4.2 MyISAM与InnoDB的区别

名称MyISAMInnoDB
事务处理不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大

事务(ACID):一个事务涉及的所有操作是一个整体,不可分割。
锁定级别:分为行级锁定、页级锁定、表级锁定。用于控制多个事务并发访问数据库中的同一资源,保证数据的一致性和完整性。锁定粒度越小,并发效率越高,资源占用也越高。(MyISAM仅支持表锁定)
外键约束:一个表的主键在另一个表中使用。
全文索引:将存储与数据库中整本书或整篇文章中的任意信息查找出来。
查询效率:MyISAM略快于InnoDB
MySQL5.6版开始,InnoDB也支持全文索引

如何选择?

  • 当涉及的业务操作以查询居多修改和删除较少时,MyISAM。
  • 当涉及的业务操作经常会有修改和删除操作时,InnoDB。

4.3 创建数据表

CREATE TABLE [IF NOT EXISTS] 数据表名称(
	字段名1 列类型(长度) [修饰属性] [键/索引] [注释],
	字段名2 列类型(长度) [修饰属性] [键/索引] [注释],
	字段名3 列类型(长度) [修饰属性] [键/索引] [注释],
	......
	字段名n 列类型(长度) [修饰属性] [键/索引] [注释],
) [ENGINE=数据表类型] [CHARSET=字符集编码] [COMMENT=注释];

例:

CREATE TABLE IF NOT EXISTS student(
	'number' VARCHAR(30) NOT NULL PRIMARY KEY COMMENT '学号, 主键',
	name VARCHAR(30) NOT NULL COMMENT '姓名',
	sex TINYINT(1) UNSIGNED DEFAULT 0 COMMENT '性别: 0-男 1-女 2-其他',
	age TINYINT(3) UNSIGNED DEFAULT 0 COMMENT '年龄',
	score DOUBLE(5, 2) UNSIGNED COMMENT '成绩'
) ENGINE=InnoDB CHARSET=UTF8 COMMENT='学生表';

4.4 修改数据表

  • 修改表名
    ALTER TABLE 表名 RENAME AS 新表名;
  • 增加字段
    ALTER TABLE 表名 ADD 字段名 列类型(长度) [修饰属性] [键/索引] [注释];
  • 修改字段
-- MODIFY 只能修改字段的修饰属性
ALTER TABLE 表名 MODIFY 字段名 列类型(长度) [修饰属性] [键/索引] [注释]; 
-- CHANGE 可以修改字段的名字以及修饰属性
ALTER TABLE 表名 CHANGE 字段名 新字段名 列类型(长度) [修饰属性] [键/索引] [注释];
  • 查看表结构
    DESC 表名;
  • 删除字段
    ALTER TABLE 表名 DROP 字段名;

4.5 删除数据表

DROP TABLE [IF EXISTS] 表名;

  • 65
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值