MySQL

1.简介

  • 数据库是一个文件系统,使用标准sql对数据库进行操作(增删改查)
  • MYSQL是关系数据库,存储实体之间的关系
  • 常见的数据库oracle,db2,SQLServer,MySQL,SQLite

2.存储结构

  • 存储结构:数据库、数据库表、表的记录

3.sql语言

  • Structured Query Language, 结构化查询语言,对数据库进行操作

分类

  • DDL(数据定义语言)创建数据库、数据库表
  • DML(数据操纵语言)对表中的记录进行增加、修改、删除操作
  • DCL(数据控制语言)数据库的编程的语言
  • DQL(数据查询语言)对表中的进行查询的操作
  • 常用的语句 create;select;insert;update;delete

4. 数据类型

字符串型:VARCHARCHAR
name varchar(20),存值 a ,直接把a存进去
name char(20),存值 b,把b存进去,后面加很多空格

日期型:
DATE:用于表示日期 1945-08-15
TIME:用于表示时间 19:10:40

DATETIME:手动添加时间到数据表里面
TIMESTAMP:自动把时间添加到表里面

5.常用操作

1.连接

mysql -u root -p 密码

2.创建

create database database_name;//创建数据库

//创建数据库表
create table table_name (
    id int primary key auto_increment ,//主键约束,自动增长
    username varchar(40) not null,//非空约束
    sex varchar(20),
    hobby varchar(20) unique//唯一性约束
)   
insert into table_name values(1,'aaa','123456','nan');//向表里面添加记录

3.查看

show databases;//查看数据库
show tables;//查看当前数据库里的表

use table_name;//切换数据库
desc table_name;//查看表结构

select database();//查看当前的运行的数据库

select * from user;//查询user表里面的所有的数据
select username,chinese from user;//查询user表里面用户名和语文成绩
select distinct * from table_name;//distinct,查看非重复记录

where:条件表达
select * from table_name where chinese > 60;//查询user表里面语文成绩大于60的所有的人员
select * from table_name where id=2;//查询user表里面id=2的数据

in:选择
select * from table_name where english in (80,90);//查询user表里面英语成绩是80、90的人员的信息

and:同时满足条件
select * from table_name where chinese=100 and english=30;//查询user表里面语文成绩是100,并且英语成绩是30的人员的信息

区间范围
select * from table_name where chinese >=70 and chinese <=100;
select * from table_name where chinese between 70 and 100;

like:模糊查询
select * from table_name  where username like '%a%';//username包含a
select * from table_name  where username like 'a%';//username包含以a开头
select * from table_name  where username like '%a';//username包含以a结束

order by:查询的记录排序,写在select语句的最后
//升序asc
select * from table_name  order by chinese asc;//asc默认可以省略
//降序 desc
select * from table_name  order by english desc;


聚集函数:
count()函数
//表里面语文成绩大于60的人员有多少
select count(*) from table_name  where chinese>60;

sum()函数
//表里面语文总成绩,英语的总成绩
select sum(chinese),sum(english) from table_name;

//表里面语文成绩的平均分(总的成绩/总的人数)
select sum(chinese)/count(*) from table_name;

avg()函数
max()函数:
min()函数:

select max(chinese),min(english) from table_name;//表里面语文成绩的最高分数,英语的成绩最低分数

分组操作,使用 group by 
在分组的基础之上再进行条件的判断 having,后面可以写聚集函数
//统计orders表里面每类商品的总的价格
select name,sum(price) from table_name group by name;

//对商品进行分类,得到每类商品的总价格大于66的商品
select name,sum(price) from table_name group by price having sum(price)>66;

mysql的专有关键字limit只能在mysql数据库里面使用
//查询user表里面前三条记录
select * from user limit 3;
select * from user limit 0,3;
//查询user表里面第二条到第四条记录
select * from user limit 1,3;//limited start_index,length   

4.修改

update table_name set username='QQQ',password='999' where id=1;//修改表里面的记录

5.删除

drop database database_name;//删除数据库
drop table table_name;//删除表

delete from table_name where id=1;//删除表里面的记录,不添加where条件,会删除所有记录

你可能感兴趣的:(学习笔记)