初始MySQL

1、数据库

概念:数据库,英文名称为Database,简称DB。从专业角度解释为存储在计算机磁盘上的有组织,可共享的大量数据的集合。

1.1、数据库的类型

数据库分为关系型数据库非关系数据库 两大类。常见的关系型数据库由MySQL 、 Oracle 、 SQL 、Server 、 SQLite 、 DB2等。

数据库管理系统,英文名称为Database Management System,简称DBMS。主要用于科学组织和存储数据、高效的获取和维护数据。

2、结构化查询语言

2.1、SQL分类

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

2.2、数据库操作

2.2.1、创建数据库的语法

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

示例:创建数据库lesson,并指定字符集为 GBK,排序规则为 GBK_CHINESE_CI

sql 复制代码
CREATE DATABASE IF NOT EXISTS lesson DEFAULT CHARACTER SET GBK COLLATE GBK_CHINESE_CI;

2.2.2、修改数据库的语法

sql 复制代码
ALTER DATABASE 数据库名称 CHARACTER SET 字符集 COLLATE 排序规则;

示例:修改数据库lesson的字符集为 UTF8,排序规则为 UTF8_GENERAL_CI

sql 复制代码
ALTER DATABASE lesson CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;

2.2.3、删除数据库的语法

sql 复制代码
DROP DATABASE [IF EXISTS] 数据库名称;

示例:删除数据库lesson

sql 复制代码
DROP DATABASE IF EXISTS lesson;

2.2.4、查看数据库语法

sql 复制代码
SHOW DATABASES;

2.2.5、查看数据库语法

sql 复制代码
USE 数据库名称;

示例:使用数据库lesson

sql 复制代码
USE lesson;

3、列类型

在 MySQL中,常用列类型主要分为数值类型、日期时间类型、字符串类型。

3.1 数值类型

类型 说明 存储需求
tinyint 非常小的数据 1字节
smallint 较小的数据 2字节
mediumint 中等大小的数据 3字节
int 标准整数 4字节
bigint 较大的整数 8字节
float 单精度浮点数 4字节
double 双精度浮点数 8字节
decimal 字符串形式的浮点数 m个字节

3.2、日期时间类型

类型 说明
DATE YYYY-MM-dd,日期格式
TIME HH:mm:ss,时间格式
DATETIME YY-MM-dd HH:mm:ss
TIMESTAMP YYYY-MM-dd HH:mm:ss格式表示的时间戳
YEAR YYYY格式的年份值

3.3、字符串类型

类型 说明
char [(M)] 固定长字符串,检索快但费空间, 0 <= M <= 255
varchar [(M)] 可变字符串0 <= M <= 65535
text 文本串

3.4、列类型修饰属性

属性名 示例
UNSIGNED INT(4) UNSIGNED,表示只能为4位大于等于0的整数
ZEROFILL INT(4) ZEROFILL,如果给定的值为10,此时只有2位,而该列需要4位,不足的2位由0来填充,最终值为0010
NOT NULL VARCHAR (20) NOT NULL,表示该列数据不能为空值
DEFAULT INT(4) DEFAULT 0,表示该列不赋值时默认为0
AUTO_INCREMENT INT(11) AUTO_INCREMENT NOT NULLPRIMARY KEY。第一次为该列中插入值时为1,第二次为2

4、数据表操作

4.1、 数据表类型

MySQL中的数据表类型有许多,如 MyISAM、InnoDB、HEAP、BOB、CSV等。其中最常用的就是MyISAM和 InnoDB

4.2、MyISAM与 InnoDB的区别

InnoDB 支持事务、行锁、外键,适合业务核心表;MyISAM 无事务、表锁,适合读多写少的静态表。

4.3、创建数据表

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

示例:创建学生表,表中有字段学号、姓名、性别、年龄和成绩

sql 复制代码
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、修改数据表

  • 修改表名
sql 复制代码
ALTER TABLE 表名 RENAME AS 新表名;

示例:将student表名称修改为 stu

sql 复制代码
ALTER TABLE student RENAME AS stu;
  • 增加字段
sql 复制代码
ALTER TABLE 表名 ADD 字段名 列类型(长度) [修饰属性] [键/索引] [注释];

示例:在 stu表中添加字段联系电话(phone),类型为字符串,长度为11,非空

sql 复制代码
ALTER TABLE stu ADD phone VARCHAR(11) NOT NULL COMMENT '联系电话';
  • 查看表结构
sql 复制代码
DESC 表名; -- 查看表结构
  • 修改字段
sql 复制代码
-- MODIFY 只能修改字段的修饰属性
ALTER TABLE 表名 MODIFY 字段名 列类型(长度) [修饰属性] [键/索引] [注释];
-- CHANGE 可以修改字段的名字以及修饰属性
ALTER TABLE 表名 CHANGE 字段名 新字段名 列类型(长度) [修饰属性] [键/索引] [注释];

示例: 将 stu表中的 sex字段的类型设置为 VARCHAR,长度为2,默认值为'男',注释为 "性别,男,女,其他"

sql 复制代码
ALTER TABLE stu MODIFY sex VARCHAR(2) DEFAULT '男' COMMENT '性别:男,女,其他';

示例:将 stu表中 phone字段修改为 mobile,属性保持不变

sql 复制代码
ALTER TABLE stu CHANGE phone mobile VARCHAR(11) NOT NULL COMMENT '联系电话';
  • 删除字段
sql 复制代码
ALTER TABLE 表名 DROP 字段名;

示例:将 stu表中的 mobile字段删除

sql 复制代码
ALTER TABLE  stu DROP mobile;

4.5、删除数据表

sql 复制代码
DROP TABLE [IF EXISTS] 表名;

示例:删除数据表 stu

sql 复制代码
DROP TABLE IF EXISTS stu;
相关推荐
我是大猴子2 小时前
解决并发的两种方法(没用到redis)(对上一期的补充)以及开启多个定时任务
数据库·redis·缓存
難釋懷2 小时前
Redis分片集群散列插槽
数据库·redis·缓存
2501_911088232 小时前
Web开发与API
jvm·数据库·python
2501_911088232 小时前
使用Python自动收发邮件
jvm·数据库·python
极客on之路2 小时前
分库分表(四)
数据库
zklgin2 小时前
【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库
数据库·mysql·数据库开发
2401_889884662 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
李宥小哥2 小时前
SQLite04-表数据管理
java·jvm·数据库
Smoothcloud_润云2 小时前
GORM 事务管理与 Repository 模式完整指南
前端·数据库·代码规范