【数据库笔记03】(MySQL数据库语句,思维导图记忆)

【数据库笔记03】(MySQL数据库语句,思维导图记忆)


在这里插入图片描述
详细可见不同版本的mysql参考手册

安装

【数据库笔记02】(MySQL数据库安装)

登录数据库服务器

mysql -u用户名 -p密码

在这里插入图片描述

SQL编写顺序

select------from------where------group by------having-------order by

SQL执行顺序

from------where------group by------having------select-------order by

DDL命令(还有一些查看命令)

创建数据库 —— create database

create database 数据库名字;

在这里插入图片描述

create database 数据库名字 character set 字符集;  //字符集如utf8
create database 数据库名字 character set 字符集 collate 校对规则;  //校对规则如utf8_bin(默认规则不区分大小写)

修改数据库 —— alter database

alter database 数据库名;	//如修改数据库的字符集编码方式

)

删除数据库 —— drop database

drop database 数据库名; 

在这里插入图片描述

查看所有数据库 —— show databases

show databases;

在这里插入图片描述

查看创建数据库时的语句 —— show create database

show create database 数据库名;

在这里插入图片描述

切换选中的数据库 —— use

use 数据库名;

切换选中的数据库 —— select database();

select database();

在这里插入图片描述

--------------------------------------------------------------------------

创建表 —— create table

create table 表名(
	列名 列类型 约束;
	列名2 列类型 约束;
)
javasql列类型
intint
char/Stringchar:固定长度 / varchar:可变长度
doubledouble
floatfloat
booleanboolean
datedate:YYYY-MM-DD / time:hh:mm:ss
~datetime:YYYY-MM-DD hh:mm:ss(默认null)
~timestamp:YYYY-MM-DD hh:mm:ss(默认当前时间)
-text(用来存文本)
-blob(存二进制)
列的约束语句
主键约束primary key(唯一且不为空 )
唯一约束unique
非空约束not null

分析实体(学生)

  1. id
  2. 姓名
  3. 性别
  4. 年龄
create table students(
	sid int primary key,
	sname varchar(31),
	sex int,
	age int
)

j

查看所有表 —— show tables

show tables;

在这里插入图片描述

查看创建表语句 —— show create table

show create table 表名;

在这里插入图片描述

查看表结构 —— desc

desc 表名;

在这里插入图片描述

修改表 —— alter

添加列 —— add

alter table 表名 add 列名 列的类型 列的约束;

在这里插入图片描述

修改列 —— modify

alter table 表名 modify 列名 列的类型 列的约束;

总是忘记打分号 /(ㄒoㄒ)/~~
在这里插入图片描述

修改列名 —— change

alter table 表名 change 列名 要改的名字 列的类型;

注意:要加列的类型否则会报错,也可以更改类型。
在这里插入图片描述
在这里插入图片描述

删除列 —— drop

alter table 表名 drop 列名;

在这里插入图片描述

修改表名 —— rename 一般不要用

rename table 表名 to 要更改的表名;

!

修改表字符集 ——character set 一般不要用

alter table 表名 character set 字符集;

在这里插入图片描述
在这里插入图片描述

删除表 —— drop

drop table 表名;

!

DML命令

插入数据 —— insert

insert into 表名(列名,列名,列名) values(值,值,值);

在这里插入图片描述

insert into 表名 values(值,值,值); //这里的值必须是所有的列
insert into 表名(列名,列名) values(值,值); //可以插入部分列
insert into 表名 values(值,值,值),(值,值,值),(值,值,值); //批量插入

在这里插入图片描述

删除记录 —— delete

delete from 表名 where 条件语句;  //没有where条件会删除全部数据

在这里插入图片描述

小知识:delete和truncate有什么区别

  • delete:DML 一条一条删除表中数据
  • truncate:DDL 先删除表,再重建表
  • 哪个比较高效?
    – 数据比较少,delete高效。
    – 数据多,truncate高效。
truncate 表名; //删除表中所有数据

在这里插入图片描述

更新表记录—— update

update 表名 set 列名=列的值,列名2=列的值 where 条件; //后面不加where条件会将表中所有数据都改变

在这里插入图片描述
在这里插入图片描述

DQL命令(还有一些查看命令)

查看表中所有值—— select

select * from 表名;

在这里插入图片描述

查看表中部分数据—— select

distinct:去除重复数据

select [distinct] [*] [列名,列名2] from 表名 where 条件; 
//建一个商品类别表 商品类别id 名字 描述
create table category(
	cid int primary key auto_increment, //auto_increment主键自增
	cname varchar(10),
	cdesc varchar(31)
);

在这里插入图片描述

// 建立商品表
create table product(
	pid int primary key auto_increment,
	pname varchar(10),
	price double,
	pdate timestamp, //取当前时间
	cno int
);

在这里插入图片描述

别名查询 —— as

表别名 (用于多表查询)

先从from执行,select用于选择显示哪些列内容

select p.pname,p.price from product p; //as可以省略

在这里插入图片描述

列别名 (用于多表查询)

select pname as 商品名称,price as 商品价格 from product; //as可以省略

在这里插入图片描述

去除重复的值 —— distinct

select distinct price from product; 

在这里插入图片描述

在查询出来的结果做运算处理

select *,price*0.85 as 折后价 from product; 

在这里插入图片描述

条件查询 —— where

select * from product where 条件; 

在这里插入图片描述
标准sql不等于<>

between and

select * from product where price between 100 and 10000;  //前小后大

!

逻辑 —— and 、or 、not

模糊查询 —— like

_ 代表一个字符
% 代表多个字符
例如:查出所有名字带口红的商品
select * from product where pname like '%口红%';  

在这里插入图片描述

例如:查出所有名字第二个字是宝的商品
select * from product where pname like '_宝%';  

!

在范围中获得值 —— in

例如:查出所有商品是3、4类的商品
select * from product where cno in (3,4);

在这里插入图片描述

排序查询 —— order by (asc / desc)

select * from product order by price; //默认是升序

在这里插入图片描述

select * from product order by price desc; 

在这里插入图片描述

select * from product where pname like '%口红%' order by price desc; 

在这里插入图片描述

聚合函数 —— sum 、max 、min 、avg 、count

注意:where后面不能加聚合函数
在这里插入图片描述
在这里插入图片描述

需要用子查询
select * from product where(select avg(price) from product); 

在这里插入图片描述

分组 —— group by (having)

having 可以接聚合函数,出现在分组之后
where 不可以接聚合函数,出现在分组之前

查出每个类别的商品有多少个
select cno,count(cno) from product group by cno; 

![

根据cno分组,分组统计每组商品的平局价格,且平均商品价格>60
select cno,avg(price) from product group by cno having avg(price) >60; 

在这里插入图片描述

插入中文乱码问题

在这里插入图片描述
先停止服务
在这里插入图片描述
修改这个文件,将数据库服务器的编码方式改变
在这里插入图片描述
改成gbk
在这里插入图片描述
开启服务,注意这里要重新进入MySQL,修改表的编码方式
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值