前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL学习笔记

MySQL学习笔记

作者头像
杨校
发布2019-04-19 11:39:21
9300
发布2019-04-19 11:39:21
举报
文章被收录于专栏:Java技术分享圈Java技术分享圈

数据库:

什么是数据库?

​ 数据库提供一个存储空间用于存放各种数据(其中包括整型、文本、小数、日期等),我们可以将数据库看作是一个存储数据的容器。

数据管理管理系统:
专门用于创建和管理数据库的一套软件。介于操作系统和编程应用程序项目之间。数据库管理系统
  • Access 微软出品, 按键精灵、易语言
  • Sqlite 嵌入式数据 Android 51仿真、 C++(QT)
  • MsSql SqlServer 微软出品 Asp、Asp.net(C#)
  • MySQL 最早是一个大学生组织开发。 而后被德国的AB公司收购! 目前被Oracle收购!
    • 免费开源
    • 6.x之后进行商业收费! MySQL5.0 是myisam引擎 MySQL5.5.5.65.7 是Innodb引擎
  • informax IBM 银行
  • Oracle 甲骨文 大型数据库:
    • 地位:
      • 全球第一大数据库厂商
      • ​ 第二大软件供应商
  • Db2

RDBMS:

关系型数据库

​ Mysql

​ Oracle

​ SQlserver

非关系型数据库

​ nosql: not only sql 应用于云计算/大数据方面

关系型数据库和非关系型数据库的区别?

​ 1 看 是否 是 二维表!

  • 有无元组
    • 行和列

下载数据库

安装数据库


1命令:

  1. 查询所有数据库 show databases;
  2. 选择数据库 use 0315;
  3. 查询该数据库内 所有的表 show tables

Sql语言划分:

​ DDL 数据定义语言 Data Definition Language

关键字

描述

create

创建

alter

修改

drop

删除

​ DCL 数据控制语言 Data Control Language

关键字

描述

grant

赋予权限

revoke

撤销权限

DML 数据操纵语言 Data Manipulation Language

关键字

描述

insert

插入表数据

update

更新表数据

delete[荐 ]/ truncate

删除表数据

​ DQL 数据查询语言 Data Query Language

关键字

描述

select

查询

TCL 事务控制语言 Transaction Control Language

关键字

描述

begin transaction/savePoint

开启事务/保存点

rollback

回滚

commit

提交

数据库 、 表、 数据 有什么区别?

​ 现有数据库、其次有表、再其次有数据记录


传统类型项目大致有:

缩写

中文描述

ERP

企业资源计划

CRM

客户关系管理

OA

办公自动化系统

MAIL

邮箱系统

BOS

商务操作系统

EHR

人力资源管理

权限管理系统最少要有五张表:

表一

表二

表三

表四

表五

用户

权限

角色

用户_角色

权限_角色


约束信息:

约束名称

中文名称

描述

主键

primary key

表里的唯一标识、自动递增 auto_increment

外键

foreign key

表与表之间关联关系

非空

not null

不许为空

唯一

unique

数据唯一性

检查

check

默认/缺省

defaulte

默认值


1.DDL 数据定义语言。
代码语言:javascript
复制
-- 删除数据库  如果存在则删除 否则跳过!
drop database if  EXISTS `crm01`;

create database  crm01;

use crm01;
-- 删除用户表  如果存在则删除 否则跳过!
drop table if  EXISTS user;

CREATE TABLE user(
	
id  int  primary key  auto_increment,
name VARCHAR(60) not null  unique,
pwd VARCHAR(60) not null,
sex char(6),
birthday date,
type varchar(50)  default '普通用户'
);

需求: 需要在刚才的user表再加入一列 如: address

代码语言:javascript
复制
ALTER table user add `address` VARCHAR(255);

需求: 需要在user表基础上更改表名称位users{ 很少用!}

代码语言:javascript
复制
RENAME table user [to] users;

需求: 需要在刚才的user表的一列 addess 更改为 address

代码语言:javascript
复制
alter TABLE users CHANGE  addess  address varchar(50);

需求: 需要在刚才的user表的一列 address 长度更改为200

代码语言:javascript
复制
alter TABLE users MODIFY  address VARCHAR(200);

需求: 创建用户 用户名称叫 旺财! wangcai

代码语言:javascript
复制
create user  wangcai;

需求: 更改用户名称 原用户名称叫 旺财! wangcai 新为小强 xiaoqiang

代码语言:javascript
复制
rename user  wangcai to xiaoqiang ;

需求: 赋予小强权限 查询权限

代码语言:javascript
复制
-- *.* 是一个对象
-- 第一个* 表示任意数据库
-- 第二个* 表示任意表
GRANT SELECT ON *.* to xiaoqiang;

需求: 赋予小强权限

代码语言:javascript
复制
REVOKE SELECT ON *.* from xiaoqiang;

需求: 删除users表

代码语言:javascript
复制
drop table user;

需求:查询表中的所有数据

代码语言:javascript
复制
-- 固定格式: select * from  表的名称
-- `*` 代表的是表中的所有行和所有列
select * from users;

需求: 查询user表的表结构

代码语言:javascript
复制
-- 第一种方式
desc user
-- 第二种方式
show columns from users;

MySQL 注释:

  • 减号 减号 空格 --
  • 多行注释 以/*开头、*/结尾 示例代码:/**/
  • 注释代码: #
DML 数据操纵语言。
插入语句:

​ 格式:

insert into 表名(字段1,字段2...) values ('字段1的值','字段2的值'...)

​ |–- 全部插入语句: 顾名思义 全部的字段

​ eg

代码语言:javascript
复制
insert [into] users values ('1','jack','123','男','1999-09-09','管理员');

​ |–- 部分插入语句: 顾名思义 部分的字段

​ eg: 注意:[] 不可以运用在语句中!

代码语言:javascript
复制
insert into users(name,pwd) values ('rose','1456');
insert into users(name,pwd) values ('王轩','1456');
insert into  users(name,pwd) values ('李旺','1456');
insert into users(name,pwd) values ('孙王娃','1456');
insert into users(name,pwd) values ('赵钱孙','1456');
insert into users(name,pwd) values ('冯陈褚','1456');
在这里插入图片描述
在这里插入图片描述
更新语句

​ 格式:

update 表名 set 字段1 = 字段1新的值 ,字段2 = 字段2新的值 where id = 被修改数据的id

代码语言:javascript
复制
update users set birthday = '2000-02-02' , sex = '女'  where id = 2;
删除语句
代码语言:javascript
复制
delete  from users where id = 3 ;
DQL 数据查询语言。
单表查询:
查询语句:
代码语言:javascript
复制
select *  from users  ;
SQL优化:
代码语言:javascript
复制
在查询中尽量避免使用 `*` 符号 
条件查询语句

需求: 查询id为2号的用户信息

代码语言:javascript
复制
select *   from users where id = 2 ;

需求:查询用户成绩在60~80区间
select * from users where grade BETWEEN 60  and 80;
空值查询语句

需求: 查询出生日期为空的用户的信息

代码语言:javascript
复制
select * from users where birthday  is  null  ;
去重查询语句 – > 多表查询 根据 用户性别查询各自信息

需求: 查询不重复显示用户性别的信息

代码语言:javascript
复制
select *   from users ;
排序查询语句

需求: 在用户表进行安装id倒序排序查询

代码语言:javascript
复制
select  *   from users order by id desc ;

需求: 在用户表进行安装id升序排序查询

代码语言:javascript
复制
select  *   from users order by id asc ;
模糊查询语句

``_叫做占位符。 代表任意一位数据%` 叫做通配符。代表任意长度、任意数据

需求: 在用户表进行查询姓王的用户信息

代码语言:javascript
复制
select * from users where name like '王%' ;

需求: 在用户表进行查询姓名是五位长度的用户信息

代码语言:javascript
复制
select * from users where name like '_____' ;

需求: 在用户表进行查询姓j,名称最后为y的用户信息

代码语言:javascript
复制
select * from users where name like 'j%y' ;
多条件查询 | And | Or

需求: 在用户表进行查询性别为男且类型是管理员的用户信息

代码语言:javascript
复制
select * from users where sex ='男' and type = '管理员';

需求: 在用户表进行查询性别为女或类型是管理员的用户信息

代码语言:javascript
复制
select * from users where sex ='女' or type = '管理员';

需求: 在用户表进行查询性别为女或类型是管理员 并且出生日期为空 的用户信息(性别为女且出生日期为空 | 类型是管理员且出生日期为空)

代码语言:javascript
复制
select * from users where (sex ='女' or type = '管理员') and birthday is null;

And 和Or 同用。MySQL中,AND的执行优先级高于OR 可以使用括号进行修整优先级顺序

函数
聚合函数/组函数

关键字

中文描述

Max

最大值函数

Min

最小值函数

Sum

求和函数

Avg

平均值函数

Count

统计函数


☆ 数据库集群!!!

​ 负载均衡


扩展:Oracle 数据类型:

  1. 数值型 1. 整数和浮点 1. number(5) 表示一共有五位数、 其区间是 -99999~99999 2. number(5,2) 表示一共有五位数、小数部分占据两位数 其区间是 -999.99~999.99
  2. 字符串类型 1. char 固定长度 2. varchar2 可变长度
  3. 日期 1. date 2. 时间戳
  4. lob(大对象数据类型) blob 存储二进制类型的Lob ;适用于 存放图片、音频、视频等资源 最大可存放的空间是4G clob
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年04月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据库:
    • 关系型数据库和非关系型数据库的区别?
      • 下载数据库
        • 安装数据库
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档