MySQL
相关历史
最初是瑞典的N有SQK AB 公司,1995年开发
2008年被SUN公司收购
2009年 Oracle收购SUN公司,进而MySQL进入Oracle
2016每年,MySQL 8.0问世
相关特点
-
开源的、关系型数据库
-
支持千万级别的数据量存储,大型的数据库
DB\DBMS\SQL
DB:database,看做是数据库文件(类似:.doc、.txt……)
DBMS:数据库管理系统。(类似于word\wps等工具)
MySQL数据库中安装了MySQL DBMS,使用MySQL DBMS来管理和操作DB,使用的是SQL语言
非关系型数据库
- 键值对类型的:redis
- 文档型:MangoDB
- 搜索引擎数据库:ES、Solr
- 列式数据库:HBase
- 图形数据库:InfoGrid
表与表之间的关系
- ORM 思想
- 表与表之间的记录关系:一对一、一对多、多对多、自关联
启动相关命令
MySQL|相关命令
net start MySQL#服务名
net stop MySQL#服务名
MySQL|登陆
mysql -uroot -ppassword
mysql -u root -p
mysql -uroot -p
-u #用户
-p #密码
-P #端口
-h #host IP
## 查看版本信息
mysql -v
mysql --version
注意事项
-p 与密码之间不可以加空格,别的都行
基础指令进阶版
查看数据库支持的编码特性
show variables like ‘character_%’;_
show variables like ‘collation_%’;
数据库级别
# 查看所有的数据库
show databases;
# 创建新的数据库
create database database_name;
# 使用某个数据库
use database_name;
# 查看所有的表
show tables;
表级别
MySQL | 表操作
show databases; ## 查看所有数据库表
## 使用某个数据库(切换到该数据库下)
use database_name;
## 查看该数据库下所有的表
show tables;
MySQL|增删改查
# 插入数据
insert into TABLE_NAME values(1001,'JJ');
# 查看数据
select * from TABLE_NAME;
# 删除数据
delete from TABLE_NAME where id=1001;
# 更新数据
update from TABLE_NAME
基础的数据库语句
- 1946年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年里,无数的技术、产业在这片江湖里沉浮,有的方兴未艾,有的已经几幕兴衰。但在这片浩荡的波动里,有一门技术从未消失,甚至“老当益壮”,那就是SQL。
- 45年前,也就是 1974 年,1BM 研究员发布了一篇揭开数据库技术的论文 《SEQUEL:一门结构化的英语查询语言》,直到今天这门结构化的查询语言并没有太大的变化,相比于其他语言,SQL 的半衰期可以说足非常长了。
- 不论是前端工程师,还是后端算法工程师,都一定会和数据打交道,都需要了解如何又快又准确地提取自己想要的数据。更别提数据分析师了,他们的工作就是和数据打交道,整理不同的报告,以便指导业务决策。
- SQL (Structured Query Language,结构化查询语言) 是使用关系模型的数据库应用语言,与数据直接打交道,由IBM 上世纪70年代开发出来。后由美国国家标准局 (ANSI) 开始着手制定SQL标准,先后有
SQL-86
,SQL-89
,SQL-92
,SQL-99
等标准。 - SQL 有两个重要的标准,分别是
SQL92
和SQL99
,它们分别代表了92年和99年颁布的SQL标准,我们今天使用的 SQL语言依然遵循这些标准。 - 不同的数据库生产厂商都支持SQL语句,但都有特有内容。
SQL分类
- DDL (Data Definition Languages、数据定义语言),这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。
CREATE # 创建 databases / table / index
DROP # 删除表
ALTER # 修改表
RENAME # 重命名
TRUNCATE # 清空表
- DML (Data Manipulafion Language、数据操作语言),用于添加、删除、更新和查询数据库记录,并检查数据完整性。
SELECT也被单独称作是DQL
INSERT # 插入
DELETE # 删除
UPDATE # 更新、修改
SELECT # 查询
- DCL (Data Control Language、数据控制语言),用于定义数据库、表、字段、用户的访问权限和安全级别。
COMMIT、ROLLBACK又被称作TCL 事务控制语言
COMMIT # 提交
ROLLBACK # 回滚
SAVEPOINT # 设置保存点
GRANT # 赋予权限
REVOKE # 回收权限
SQL 基本规则
SQL可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
- 每条命令以
;
或/g
或/G
结束 - 关键字不能被缩写也不能分行
- 关于标点符号
- 必须保证所有的0、单引1号、双引1号是成对结束的
- 必须使用英文状态下的半角输入方式
- 字符串型和日期时间类型的数据可以使用单1号(表示列的别名,尽量使用双引号(“”),而且不建议省略as
SQL大小写规范
在Windows上大小写不敏感,在Linux上大小写敏感
- MysQL 在windows 环境下是大小写不敏感的
- MysQL 在Linux 环境下是大小写敏感的
- 数据库名、 表名、表的别名、变量名是严格区分大小写的
- 关键字、函数名、列名(或字段名)、 列的别名(字段的别名)是忽略大小写的。
- 推荐采用统一的书写规范:
- 数据库名、表名、表别名、字段名、字段别名等都小写
- SQL关键字、函数名、绑定变量等都大写
SQL 注释信息
# 单行注释
/*
多行注释
*/
-- 单行注释,--后面必须要加一个空格🈳️
命名规则
- 数据库、表名不得超过30个字符,变量名限制为29个
- 必须只能包含 A-Z,a-z,0-9,_共63个字符
- 数据库名、表名、字段名等对象名中间不要包含空格
- 同个MysQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
- 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语向中使用 ` (着重号)引起来
- 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了