首页 / MYSQL / MySQL 笔记(二):初步入门
MySQL 笔记(二):初步入门
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL 笔记(二):初步入门,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6155字,纯文字阅读大概需要9分钟。
内容图文
一、含义
MySQL 是最流行的数据库之一,是一个免费开源的关系型数据库管理系统
二、特点
体积小、速度快、开源、免费
三、SQL
3-1、含义
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言
3-2、作用
用于存取数据、查询、更新和管理关系数据库系统
3-4、SQL执行流程
from→where→group by→having→order by→limit
四、分类
种类 | 描述 |
---|---|
DQL语句 | 数据查询语言 select |
DML语句 | 数据操作语言 insert delete update |
DDL语句 | 数据库定义语言 create drop alter truncate |
TCL语句 | 事务控制语言 commit rollback savepoint |
DCL语句 | 数据库控制语言 grant revoke,安全,授权 |
五、字段数据类型
5-1、数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 byte | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4 bytes | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度浮点数值 |
DOUBLE | 8 bytes | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度浮点数值 |
DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
5-2、日期和时间类型
类型 | 大小 | 范围 | 格式 | 用途 |
---|---|---|---|---|
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:00/2038 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
5-3、字符串类型
类型 | 大小 | 用途 |
---|---|---|
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 | 极大文本数据 |
六、常用命令
6-1、连接 / 退出 MySQL
-- 连接
C:\Users\Administrator
λ mysql -u root -p
Enter password: root
-- 退出
mysql> exit
6-2、查看版本
-- 方式1:不连接MySQL的情况下
C:\Users\Administrator
λ mysql --version
mysql Ver 14.14 Distrib 5.7.34, for Win64 (x86_64)
-- 方式2:连接MySQL的情况下
select version();
6-3、存储引擎
-- 查询所有存储引擎
mysql> show engines;
-- 修改指定存储引擎
alter table 表名 engine=存储引擎名称;
6-4、数据库操作
-- 创建数据库
create database db_test;
-- 查看有多少个数据库
show databases;
-- 切换数据库
use db_test;
-- 查看该数据库下有几个表
show tables;
-- 查看该数据库下的所有表
show tables from db_test;
6-5、表操作
前提条件:必须切换相应的数据库下操作,否则报错 ERROR 1046 (3D000): No database selected
-- 创建表结构:表名命名规范:t_ 表名,tbl_表名
CREATE TABLE `tbl_user` (
-- 字段名称 字段类型 长度 字段约束 描述
`id` bigint(11) NOT NULL AUTO_INCREMENT PREPARE KEY COMMENT '主键',
`username` varchar(50) DEFAULT NULL UNIQUE COMMENT '用户名',
`password` varchar(200) DEFAULT NULL COMMENT '密码',
`gender` char(2) DEFAULT '男' CHECK (性别 IN ('男','女')),
`nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 方式1:查看表结构
desc tbl_user;
-- 方式2:查看表结构
show create table tb_user;
-- 修改表属性
alter table 表名 change 旧属性 新属性 属性类型 character set 字符集编码
-- 直接删除
drop table tbl_user;
-- 如果有就删除
drop table if exists tbl_user;
-- 删除外键约束
alter table 表名 drop foreign key fk_xxx
-- 删除外键约束
alter table 表名 add constraint 主键表名_字段名_fk foreign key(字段名) references 外键表(字段名) on delete cascade;
-- 更新外键约束
alter table 表名 add constraint 主键表名_字段名_fk foreign key(字段名) references 外键表(字段名) on update cascade;
6-6、备份
-- 导出
C:\Users\Administrator
λ mysqldump -u root -p db_test > f:/20210502_test.sql
Enter password: root
-- 导入
mysql> use db_test;
mysql> source f:/20210502_test.sql
七、数据操作
7-1、查询条件
符号 | 描述 |
---|---|
= | 等于 |
<> | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
between...and... | 在两者之间 |
is null | 为空 |
is not null | 不为空 |
and | 并且 |
or | 或者 |
in | 包含 |
or in | 不包含 |
like | 模糊查询 |
order by | 排序 |
limit 起始下标,长度 | 分页 |
7-2、多行处理函数
符号 | 描述 |
---|---|
sum | 求和 |
avg | 平均值 |
max | 最大值 |
min | 最小值 |
count | 记录数 |
distinct | 取出重复 |
groud by | 分组 |
having | 比较 |
7-3、增删查改语法
/* 插入 */
INSERT INTO 表名(field1,field2,field3,....)
VALUES (value1,value1,value3,....),(value1,value1,value3,....),(value1,value1,value3,....)
/* 修改全部,也可以按指定条件修改 */
UPDATE 表名 set field1=value1,field2=value2... [where 条件]
/* 仅仅删除表中的所有数据,也可以按条件删除指定行 */
DELETE FROM 表名 [WHERE 条件];
/* 数据、索引、自增等一并删掉 */
TRUNCATE TABLE 表名;
/* 查询全部:全表扫码 ,或者指定条件查询 */
SELECT * FROM 表名 where 条件;
/* 指定字段查询 ,或者指定条件查询 */
SELECT field1,field2,field3,field4 FROM 表名 [where 条件];
/* 查询记录数 ,或者指定条件查询 */
SELECT count(1) FROM 表名 [where 条件];
SELECT 1 FROM 表名 [where 条件];
7-4、关联查询
以 员工、部门 来作为导向
内连接关联查询
内连接:如果员工表和部门表都能匹配到就会查询出现,否则就不会查询出来。直观点来说:就是如果员工不属于指定部门或者说部门里没有这个员工是不会查询出来。
SELECT u.*,d.deptname
FROM tbl_user as u
INNER JOIN tbl_dept as d on u.dept_id = d.id;
左右外连接关联查询
左外连接:以左边的表的数据为准,去匹配右边的表的数据。如果匹配到就显示,匹配不到就显示为null。而右外连接刚好相反,是以右边的表为准。
-- 左
SELECT u.*,d.deptname FROM tbl_user as u
LEFT OUTER JOIN tbl_dept as d on u.dept_id = d.id;
-- 右
SELECT u.*,d.deptname FROM tbl_user as u
RIGHT OUTER JOIN tbl_dept as d on u.dept_id = d.id;
7-5、子查询
子查询:一条查询 sql 语句嵌套在另一条查询 sql 语句内部的查询
SELECT * FROM tbl_user
WHERE dept_id = (SELECT id from tbl_dept WHERE deptname='研发部')
内容总结
以上是互联网集市为您收集整理的MySQL 笔记(二):初步入门全部内容,希望文章能够帮你解决MySQL 笔记(二):初步入门所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。