MySQL学习笔记

数据库:

什么是数据库?

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

数据管理管理系统:

专门用于创建和管理数据库的一套软件。介于操作系统和编程应用程序项目之间。数据库管理系统
  • 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 数据定义语言。
-- 删除数据库  如果存在则删除 否则跳过!
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

ALTER table user add `address` VARCHAR(255);

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

RENAME table user [to] users;

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

alter TABLE users CHANGE  addess  address varchar(50);

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

alter TABLE users MODIFY  address VARCHAR(200);

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

create user  wangcai;

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

rename user  wangcai to xiaoqiang ;

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

-- *.* 是一个对象
-- 第一个* 表示任意数据库
-- 第二个* 表示任意表
GRANT SELECT ON *.* to xiaoqiang;

需求: 赋予小强权限

REVOKE SELECT ON *.* from xiaoqiang;

需求: 删除users表

drop table user;

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

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

需求: 查询user表的表结构

-- 第一种方式
desc user
-- 第二种方式
show columns from users;

MySQL 注释:

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

​ 格式:

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

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

​ eg

insert [into] users values ('1','jack','123','男','1999-09-09','管理员');

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

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

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

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

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

select *   from users where id = 2 ;

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

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

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

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

select *   from users ;
排序查询语句

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

select  *   from users order by id desc ;

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

select  *   from users order by id asc ;
模糊查询语句

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

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

select * from users where name like '王%' ;

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

select * from users where name like '_____' ;

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

select * from users where name like 'j%y' ;
多条件查询 | And | Or

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

select * from users where sex ='男' and type = '管理员';

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

select * from users where sex ='女' or type = '管理员';

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券