首先本文是记录自己根据教程学习的一个基础笔记文档,三个阶段基础、正文、和运维三个阶段
MySQL安装
下载地址:downloads.mysql.com/archives/in…
- 启动与停止命令
- 使用MySQL提供的客户端命令行工具 mysql [-h127.0.0.1] [-P3306] -u root-p
-h:MySQL服务所在的主机IP
-P:MySQL服务端口号,默认3306
-u:MySQL数据库用户名
-p:MySQL数据库用户名对应的密码
[]内为可选参数,如果需要连接远程的MySQL,需要加上这两个参数来指定远程主机IP、端口,如果连接本地的MySQL,则无需指定这两个参数。
C:\Users\Administrator>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。
C:\Users\Administrator>net start mysql
MySQL 服务正在启动 .............
MySQL 服务已经启动成功。
C:\Users\Administrator>mysql -u root -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.34 MySQL Community Server - GPL
Copyright (c) 2000, 2023, 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>
SQL分类
SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。
| 分类 | 全称 | 说明 |
|---|---|---|
| DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
| DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
| DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
| DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
1.DLL
1). 查询所有数据库 show databases ;
2). 查询当前数据库 select database();
3). 创建数据库
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;
4). 删除数据库drop database [ if exists ] 数据库名;
5). 切换数据库use 数据库名;
mysql> show databases ;
+--------------------+
| Database |
+--------------------+
| db_04 |
+--------------------+
15 rows in set (0.01 sec)
mysql> create database if not exists ceshi;
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> drop database if exists ceshi;
Query OK, 0 rows affected (0.01 sec)
mysql> use db_04;
Database changed
表操作
1). 查询当前数据库所有表show tables;
2). 查看指定表结构desc 表名;
3). 查询指定表的建表语句show create table 表名 ;
4). 创建表结构CREATE TABLE 表名(字段1 字段1类型 [ COMMENT 字段1注释 ],字段n 字段n类型 [COMMENT 字段n注释 ]) [ COMMENT 表注释 ] ;
mysql> show tables;
+-----------------+
| Tables_in_db_04 |
+-----------------+
| dept |
| emp |
+-----------------+
2 rows in set (0.00 sec)
mysql> desc dept;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | UNI | NULL | |
| create_time | datetime | YES | | NULL | |
| update_time | datetime | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> show create table dept;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| dept | CREATE TABLE `dept` (
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID, 主键',
`name` varchar(10) NOT NULL COMMENT '部门名称',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='部门表' |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
比如,我们创建一张表 tb_user ,对应的结构如下,那么建表语句为:
create table tb_user(
id int comment '编号',
name varchar(50) comment '姓名',
age int comment '年龄',
gender varchar(1) comment '性别'
) comment '用户表';
表操作-数据类型 1). 数值类型
| 类型 | 大小 | 有符号(SIGNED)范围 | 无符号(SIGNED)范围 | 描述 |
|---|---|---|---|---|
| TINYINT | byte | (-128,127) | (0,255) | 小整 数值 |
| SMALLINT | 2bytes | (-32768,32767) | (0,65535) | 大整 数值 |
| MEDIUMINT | 3bytes | (-8388608,8388607) | (0,16777215) | 大整 数值 |
| INT/INTEGER | 4bytes | (-2147483648,2147483647) | (0,4294967295) | 大整 数值 |
| BIGINT | 8bytes | (-2^63,2^63-1) | (0,2^64-1) | 极大 整数值 |
| FLOAT | 4bytes | (-3.402823466 E+38,3.402823466351 E+38) | 0 和 (1.175494351 E-38,3.402823466 E+38) | 单精度浮点数值 |
| DOUBLE | 8bytes | (-1.7976931348623157E+308,1.7976931348623157E+308) | 0 和 (2.2250738585072014E-308,1.7976931348623157E+308)) | 双精度浮点数值 |
| DECIMAL | 依赖于M(精度)和D(标度)的值 | 依赖于M(精度)和D(标度)的值 | 小数值(精确定点数) |
如:
1). 年龄字段 -- 不会出现负数, 而且人的年龄不会太大
age tinyint unsigned
2). 分数 -- 总分100分, 最多出现一位小数
score double(4,1)
2). 字符串类型
| 类型 | 大小 | 描述 |
|---|---|---|
| CHAR | 0-255 bytes | 定长字符串(需要指定长度) |
| VARCHAR | 0-65535 bytes | 变长字符串(需要指定长度) |
| TINYBLOB | 0-255 bytes | 不超过255个字符的二进制数据 |
| TINYTEXT | 0-255 bytes | 短文本字符串 |
| BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
| TEXT | 0-65 535 bytes | 长文本数据 |
| MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
| MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
| LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
| LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和
字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性
能会更高些。
如:
1). 用户名 username ------> 长度不定, 最长不会超过50
username varchar(50)
2). 性别 gender ---------> 存储值, 不是男,就是女
gender char(1)
3). 手机号 phone --------> 固定长度为11
phone char(11)
3). 日期时间类型
| 类型 | 大小 | 范围 | 格式 | 描述 |
|---|---|---|---|---|
| DATE | 3 | 1000-01-01 至 9999-12-31 | YYYY-MM-DD | 日期值 |
| TIME | 3 | -838:59:59 至 838:59:59 | HH:MM:SS | 时间值或持续时间 |
| YEAR | 1 | 1901 至 2155 | YYYY | 年份值 |
| DATETIME | 8 | 1000-01-01 00:00:00 至9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
| TIMESTAMP | 4 | 1970-01-01 00:00:01 至 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值,时间戳 |
如:
1). 生日字段 birthday
birthday date
2). 创建时间 createtime
createtime datetime