MYSQL数据库

MYSQL数据库

1. 启动/登录Mysql
//启动服务
net start mysql
//登录
mysql -uroot -p
//退出
exit
//关闭服务
net stop mysql    
2. 数据库相关的软件
  1. 关系型数据库 : mysql , Oracle , SQLServer , DB2(IBM) , SQLite , 表格形式
  2. 非关系型数据库 : redis , mongodb , menmoryche , 等键值对形式
  3. 一般两者结合使用
3. 数据库的概念
  1. 数据库服务器

安装好mysql数据库软件之后,这个服务器,支撑数据的存储

  1. 数据库

一个项目对应着一个数据库,数据库服务器下面可以有很多个数据库

  1. 数据表

一个数据库中可以有很多个表

  1. 字段和数据

一个数据库中可以有很多个字段和数据

总结: 数据库和服务器有很多个数据库, 一个数据库可以有很多表,一个表可以有多个字段和数据

4. 通过命令操作数据库

前提: 配置过全局变量

  1. win+r 进入命令界面

  2. 连接服务器命令

1. mysql -hlocalhost -uroot -p密码
2. mysql -uroot -p  回车后,输入密码
  1. 退出
exit;
  1. 查看数据库
show databases;
  1. 创建数据库
create database 数据库名;

mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
±-------------------+
4 rows in set (0.00 sec)

  1. 删除数据库
drop database 数据库名;
  1. 进入数据库
use 数据库名;
  1. 查看表
show tables;
  1. 创建表
create table 表名(字段1 数据类型,字段2 数据类型,字段3 数据类型,......)
mysql> create table Person1 (
    -> id int ,
    -> name varchar(32),
    -> age int
    -> );
  1. 查看表结构
desc 表名;
  1. 删除表
drop table 表名 ;
5. 修改创建好的表

alter 关键字

  1. 更改字段
alter table 表名 modify 字段名 数据类型;
  1. 添加字段
alter table 表名 add 字段名 数据类型;
  1. 在指定位置添加
alter table 表名 add 字段名 数据类型 first/after 字段名; 
  1. 修改字段

6. varchar 和 char 的区别
  1. varchar 是长度可变的
  2. char 是长度固定的的
5. 数据类型
  1. int
  2. tinyint(0) boolean
  3. char
  4. text
  5. double
  6. float
  7. decimal
6. 添加数据到表
  1. 插入一条数据到表
insert into  表名  values(值1,值2,......)
insert into  表名 (列名1,列名2,......) values(值,值2,......);
  1. 查看所有表数据
select * from 表名;
  1. 删除数据
delete from 表名 where 条件;
delete from 表名 where id=3;
  1. 删除多条数据
delete from 表名 where 字段名 in (值1,值2,...); 
  1. 修改数据
update 表名 set 字段名1 = 更新值, 字段名2=更新值2,... where 条件; 
7. 事务
  1. 维护数据完整性,保证成批的语句要么全部执行,要么全部不执行.

  2. 事务用来管理 insert , update , delete 语句
7.1, 开启事务, 把sqsl语句的默认提交关闭
  1. 关闭自动提交
set autocommit =0;
  1. 写sql语句

  2. sql语句同时提交

commit;
  1. 回滚,都不提交
rollback;
8. 查询(重点🔺🔺🔺)
  1. 查询表中的说有数据
select * from 表名;  * 通配符,代表所有
  1. 查询指定字段的数据
select 字段1,字段2,... from 表名;
  1. 查询时,对字段起别名
select 字段1 as 别名1, 字段2 as 别名2,... from 表名; 
  1. 条件查询
select 字段名  from 表名 where 条件;
  1. 与查询相关的函数(方法)
1. max()  最大值     
	select max(salary) as '最大薪资'  from test01;
2. min()  最小值

3. avg()  平均值,null不计入  
	select avg(age) as '平均年龄' form test01;
4. sum()  和        
	select sum(salary) as '薪资和' from test01;
5. count() 统计数据条数
	select count(id) as '数据条数' from test01;
6. now()  返回当前的日期时间 
	select now() as '当前时间';
  1. 分组 group by
select 字段1 from 表名 group by 字段1 ;
1. 统计和分组套用
	select gender as'性别' ,count(gender) as '人数'  from test01 group by gender ;
+--------+--------+
| 性别   | 人数   |
+--------+--------+
|      0 |      1 |
|      1 |      2 |
+--------+--------+

2. 分组,统计,对统计结果筛选  不用where ,条件在having之后
	select gender,count(gender)  from test01  group by gender having count(gender)>1;
9. 特殊判断符号
  1. between 在某个范围内
select 字段名 from 表名 where 字段  between 值1 and 值2;
  1. LIKE 模糊匹配 字段中查询带有某个值的数据
select * from 表名 where 字段 like '%值%';   % 占位 可以有也可以没有值
  1. or 或 ||

  2. and 且 &&

10. 功能
  1. 排序 order by 默认升序 (asc)
select * from 表名 order by 字段 ; 
  1. 降序 添加 desc
select * from 表名 order by 字段 desc; 
  1. where 在 order by 前面

  2. 在字段1降序的基础上,在安照字段2升序

select * from 表名 order by 字段1 desc , 字段2 asc; 
  1. limit 取从第值1条位置开始,往后值2条的数据,默认从0开始 (用于分页)
select * from 表名 limit 值;
select * from 表名 limit 值1,值2;

每页显示的数据:

int pageNo = 1;
int pageCount = 3;  //每页显示的数据
limit (pageNo - 1)* pageCount ,pageCount;  //从第条开始,显示几条
11. 数据约束

在创建表的时候,一定要对字段进行约束,这样插入数据的时候,才更加合理,约束性

数据约束在创建字段的时候就开始添加了

11.1, 默认值
default
  1. 创建格式,在数据类型的后面
name varchar(22) default ''
11.2, 非空
not null
  1. 在创建时放在数据类型后面,表示数据不能为空,为空报错

  2. 创建

id int not null,
11.3, 唯一
unique 不能重复
  1. 创建
name varchar(22) unique,
11.4, 主键
primary key 主键时唯一和非空的组合
  1. 创建
id  int primary key
11.5, 自增长
auto_increment 不用赋值,自己增加
  1. 创建
id int auto_increment primary key
12. 日期和时间类型
类型格式用途是否支持默认值字节
date (重要)YYYY-MM-DD日期值3
timestamp (重要)YYYY-MM-DD HH:MM:SS时间戳支持4
datetimeYYYY-MM-DD HH:MM:SS混合日期时间8
timeHH:MM:SS时间值或持续时间3
yearYYYY年份值1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值