MySQL :: MySQL 5.7 参考手册 :: 12 个函数和运算符
关系数据库 行、列 SQL
非关系数据库 字典 Not Only SQL
DBMS数据库关系系统
MySQL
MySQL是一个**关系型数据库管理系统,**由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
安装
配置环境变量
新建配置文件
[mysqld]
basedir=E:\program\mysql-5.7.19\
datadir=E:\program\mysql-5.7.19\data\
port=13306
skip-grant-tableg
管理员启动CMD 在bin 目录下 安装mysql服务并启动服务
mysqld install MySql2 --defaults-file=E:/program/mysql-5.7/my.ini
mysqld --initialize-insecure --user=mysql
net start MySql2
连接MySql
mysql -u root -p123456 -P13306 --连接数据库
修改密码
update mysql.user set authentication_string=password('123456') where user='root'
-- 刷新权限
FLUSH PRIVILEGES
删除跳过验证 skip-grant-tables 刷新权限 flush privileges
重启服务
mysql> show databases; --查看数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| school |
| sys |
+--------------------+
5 rows in set (0.02 sec)
mysql> use school; --切换数据库
Database changed
mysql> show tables; --查看数据库中的表
+------------------+
| Tables_in_school |
+------------------+
| student |
+------------------+
mysql> describe student; --查看表的字段信息
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| ID | int(11) | NO | PRI | NULL | |
| name | varchar(255) | NO | | NULL | |
| age | int(11) | NO | | NULL | |
+-------+--------------+------+-----+---------+-------+
mysql> CREATE DATABASE IF NOT EXISTS test1; --创建数据库
mysql> DROP DATABASE IF EXISTS test1; --删除数据库
-- 单行注释
/*
多行注释
*/
4种 数据库语言:DDL、DML、DQL、DCL
数值
tinyint 微整型 1字节
smallint 小整型 2字节
int 整型 四个字节
bigint 大整型 八个字节
float 单精度浮点型 四个字节
double 双精度浮点型 八个字节
decimal(M,D) 定点小数 小数点不会发生变化,M代表总的有效位数,D代表小数点后的有效位数
boolean 布尔型 只有两个值,分别是true和false
字符串
char 字符串固定大小 0~255
varchar(M) 可变字符串 0~65535 常用变量 String
tinytext 微型文本 2^8-1
text 文本串 2^16-1 保存大文本
时间日志
date 日期型,‘2021-12-16’
time 时间型,‘12:19:30’
datetime 日期时间型,以上两者的结合体,‘2021-12-16 12:19:30’
timestamp 时间戳 1970.1.1到现在的毫秒数
year 年份表示
null
没有值未知、


Unsigned:
zerofill
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`password` VARCHAR(10) NOT NULL DEFAULT '123456' COMMENT '登录密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(30) DEFAULT NULL COMMENT '邮箱地址',
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
格式
CREATE TABLE [IF NOT EXISTS] `TABLE_NAME`(
`字段名` 列类型 [属性] [索引] [注释],
.....
`字段名` 列类型 [属性] [索引] [注释]
)[表类型] [字符集设置] [注释]
SHOW CREATE DATABASE school --查看创建数据库语句
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
SHOW CREATE TABLE student --查看表创建语句
---------------------------------------
CREATE TABLE `student` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`password` varchar(10) NOT NULL DEFAULT '123456' COMMENT '登录密码',
`sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` datetime DEFAULT NULL COMMENT '出生日期',
`address` varchar(100) DEFAULT NULL COMMENT '家庭住址',
`email` varchar(30) DEFAULT NULL COMMENT '邮箱地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+---------+------------------------------
DESC student --查看表结构
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| name | varchar(30) | NO | | 匿名 | |
| password | varchar(10) | NO | | 123456 | |
| sex | varchar(2) | NO | | 男 | |
| birthday | datetime | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
| email | varchar(30) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
关于数据库引擎
InnoDB、MyISAM
| MyISAM | InnoDB | |
|---|---|---|
| 事务 | N | Y |
| 数据行锁定 | N | Y |
| 外键约束 | N | Y |
| 全文索引 | Y | N |
| 表空间大小 | 较小 | 较大约为2倍 |
| 外键约束 | N | Y |
常规使用操作:

物理存在位置
/data 目录下 数据库本质是一个文件

字符集编码

-- 修改表名称
ALTER TABLE testtable RENAME AS testtable1
-- 增加表字段
ALTER TABLE testtable1 ADD age INT(10)
-- 修改表字段
ALTER TABLE testtable1 MODIFY age VARCHAR(5)
-- 修改表的字段 重命名 约束
ALTER TABLE testtable1 CHANGE age name VARCHAR(5)
-- 删除表字段
ALTER TABLE testtable1 DROP name
-- 删除表
DROP TABLE IF EXISTS testtable1
所有的创建和删除加上判断
注意点: