MySql数据库基础

MySql数据库基础

1 .什么是数据库

数据库(DataBase,DB):指长期保存在计算机的存储设备(硬盘)上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合. 还是以文件的方式存在服务器的电脑上的。
**说白了就是数据的仓库, 用来持久化保存数据的,并且可以通过sql语句快速的增删查改数据.**

2. SQL概述

2.1什么是sql
SQL:Structure Query Language。(结构化查询语言),通过sql操作数据库(操作数据库,操作表,操作数据)SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准 各数据库厂商(MySql,oracle,sql server)都支持ISO的SQL标准。各数据库厂商在标准的基础上做了自己的扩展。 各个数据库自己特定的语法
2.2 sql的语法
1.每条语句每条语句以分号结尾(命令行里面需要),如果在navicat,java代码中不是必须加的。
2.SQL在window中不区分大小写,关键字中认为大写和小写是一样的
2.3 sql分类
1.Data Definition Language (DDL数据定义语言) 如:操作数据库,操作表
2.Data Manipulation Language(DML数据操纵语言),如:对表中的记录操作增删改(重点)
3.Data Query Language(DQL 数据查询语言),如:对表中的记录查询操作(重点)
4.Data Control Language(DCL 数据控制语言),如:对用户权限的设置

3.DDL数据库的操作

语法:
create database 数据库名; //创建数据库
show database //查看所有数据库
show creact database 数据库名 //查看数据库的定义结构
drop database 数据库名 //删除除数据库
alter database 数据库名 character set 字符集 //修改字符集编号
use database //切换数据库
select database //查看当前使用的数据库

4.DDL操作表

语法 :
//创建表
create table 表名(
字段 字段类型 [字段约束],
字段 字段类型 [字段约束],

字段 字段类型 [字段约束] //注 :最后一个没有逗号
);
类型
在这里插入图片描述

  1. 整型 一般使用int 或者bigint
  2. 浮点/双精度型:默认的范围 float或者double 指定范围 float(M,D) eg: float(4,2) 表达的范围: -99.99~99.99;
  3. 字符串 :固定长度 char(n) eg: char(20), 最大能存放20个字符. ‘aaa’, 还是占20个字符的空间, 可变长度 varchar(n) eg:varchar(20), 最大能存放20个字符. ‘aaa’, 占3个字符的空间
    4.日期: Date 表示年月日 DateTime 表示年月日时分秒

约束
在这里插入图片描述

作用:保证用户插入的数据保存到数据库中是符合规范的
1.not null: 非空 这个字段不能为空,必须要有数据
2.unique:唯一约束, 后面的数据不能和前面重复
3.1 primary key;主键约束(非空+唯一); 一般用在表的id列上面. 一张表基本上都有id列的, id列作为唯一标识的
3.2 auto_increment: 自动增长,必须是设置了primary key之后,才可以使用auto_increment
3.3 id int primary key auto_increment ; id不需要我们自己维护了, 插入数据的时候直接插入null, 自动的增长进行填充进去, 避免重复了.

5. DML操作表记录(重点)

1.插入记录
语法:
insert into 表名(列,列…)values(值,值…); //插入指定列
insert into 表名 values(值,值,值…) //插入所有的列
2.更新记录
语法 :
update 表名 set 列 =值 ,列 =值… [where 条件]
范例:
将所有商品的价格修改为5000元
将商品名是Mac的价格修改为18000元
将商品名是Mac的价格修改为17000,数量修改为5
将商品名是方便面的商品的价格在原有基础上增加2元

update product set price = 5000;
UPDATE product set price = 18000 WHERE name = 'Mac';
UPDATE product set price = 17000,num = 5 WHERE name = 'Mac';
UPDATE product set price = price+2 WHERE name = '方便面'```

3.删除记录
1.delete
语法: delete from 表名 [where 条件] //注:删除数据用delete,不用truncate
范例:
删除表中名称为’Mac’的记录
删除价格小于5001的商品记录
删除表中的所有记录

 delete from product where pname = 'Mac';
    delete from product where price < 5001;
    delete from product;

2.truncate
语法:
truncate table 表;
面试题:
delete 和truncate区别
DELETE 删除表中的数据,表结构还在; 删除的记录可以找回
TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表(空)。删除的记录不可以找回

6.DQL操作表记录-查询【重点】

1.基本查询语法:
select [] [列名, 列名] [列名 as 别名 ] [distinct 字段] from 表名[where 条件 ]
2.1 简单查找 语法
select * from 表名 //查看表中所有的列
2.2 查询某张表特定列记录 语法
select 列名,列名…from 表
2.3 去重查询 语法
select distinct 字段名,字段名。。。。from 表;
2.4别名查询 语法
select 列名 as 别名,列名 from 表 //列别名 as可不写
select 别名. * from 表 as 别名 //表别名
2.5 运算符查询 (+,-,
,/等)
范列:
把商品名,和商品价格+10查询出来
select pname ,price+10 from product;
2.6条件查询
select … from 表 where 条件
//取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回

在这里插入图片描述

2.6.1.between…and… 区间查询
范列:where price between 1000 and 3000 相当于 1000<=price<=3000
2.6.2.in(值,值…)
– 查询id为1,3,5,7的
select * from t_product where id = 1
select * from t_product where id = 3
select * from t_product where id = 5
select * from t_product where id = 7
select * from t_product where id in(1,3,5,7)

2.6.3.like 模糊查询 一般和_或者%一起使用
3.1 _ 占一位 %站0或者多位
范列:
name like ‘张%’ --查询姓张的用户, 名字的字数没有限制
name like ‘张_’ --查询姓张的用户 并且名字是两个的字的

2.6.4.and 多条件同时满足
范:where 条件1 and 条件2 and 条件3
`
2.6.5.or 任意条件满足~
范:where 条件1 or 条件2 or 条件3
3.排序查询~
3.1 单列排序
只按某一个字段进行排序,单列排序
语法:
SELECT 字段名 FROM 表名 [WHERE 条件] ORDER BY 字段名 [ASC|DESC]; //ASC: 升序,默认值; DESC: 降序
3.2 组合排序
同时对多个字段进行排序,如果第1个字段相等,则按第2个字段排序,依次类推
语法:
SELECT 字段名 FROM 表名 [WHERE 字段=值] ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];
4.聚合函数
在这里插入图片描述
语法:SELECT 聚合函数(列名) FROM 表名 [where 条件];

注意:聚合函数会忽略null值的

5.分组查询
5.1 分组 语法
SELECT 字段1,字段2… FROM 表名 [where 条件] GROUP BY 列 [HAVING 条件];

6.分页查询
语法:
select … from … limit 起始行数,查询的记录条数.
规律:
a:从哪里开始查询, 从0开始计数 【a=(当前页码-1)*b】
b: 一页查询的数量【固定的,自定义的】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值