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

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

  • 安装
  • 登录数据库服务器
  • SQL编写顺序
  • SQL执行顺序
  • DDL命令(还有一些查看命令)
    • 创建数据库 —— create database
    • 修改数据库 —— alter database
    • 删除数据库 —— drop database
    • 查看所有数据库 —— show databases
    • 查看创建数据库时的语句 —— show create database
    • 切换选中的数据库 —— use
    • 切换选中的数据库 —— select database();
    • --------------------------------------------------------------------------
    • 创建表 —— create table
    • 查看所有表 —— show tables
    • 查看创建表语句 —— show create table
    • 查看表结构 —— desc
    • 修改表 —— alter
      • 添加列 —— add
      • 修改列 —— modify
      • 修改列名 —— change
      • 删除列 —— drop
      • 修改表名 —— rename ==一般不要用==
      • 修改表字符集 ——character set ==一般不要用==
    • 删除表 —— drop
  • DML命令
    • 插入数据 —— insert
    • 删除记录 —— delete
      • 小知识:delete和truncate有什么区别
    • 更新表记录—— update
  • DQL命令(还有一些查看命令)
    • 查看表中所有值—— select
    • 查看表中部分数据—— select
    • 别名查询 —— as
      • 表别名 (用于多表查询)
      • 列别名 (用于多表查询)
    • 去除重复的值 —— distinct
    • 在查询出来的结果做运算处理
    • 条件查询 —— where
      • between and
      • 逻辑 —— and 、or 、not
      • 模糊查询 —— like
      • 在范围中获得值 —— in
    • 排序查询 —— order by (asc / desc)
    • 聚合函数 —— sum 、max 、min 、avg 、count
    • 分组 —— group by (having)
  • 插入中文乱码问题

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第1张图片
详细可见不同版本的mysql参考手册

安装

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

登录数据库服务器

mysql -u用户名 -p密码

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第2张图片

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 数据库名;	//如修改数据库的字符集编码方式

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第3张图片

删除数据库 —— drop database

drop database 数据库名; 

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第4张图片

查看所有数据库 —— show databases

show databases;

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第5张图片

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

show create database 数据库名;

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第6张图片

切换选中的数据库 —— use

use 数据库名;

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

select database();

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第7张图片

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

创建表 —— create table

create table 表名(
	列名 列类型 约束;
	列名2 列类型 约束;
)
java sql列类型
int int
char/String char:固定长度 / varchar:可变长度
double double
float float
boolean boolean
date date: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;

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第8张图片

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

show create table 表名;

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第9张图片

查看表结构 —— desc

desc 表名;

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第10张图片

修改表 —— alter

添加列 —— add

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第11张图片

修改列 —— modify

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

总是忘记打分号 /(ㄒoㄒ)/~~
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第12张图片

修改列名 —— change

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

注意:要加列的类型否则会报错,也可以更改类型。
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第13张图片
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第14张图片

删除列 —— drop

alter table 表名 drop 列名;

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第15张图片

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

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第16张图片

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

alter table 表名 character set 字符集;

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第17张图片
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第18张图片

删除表 —— drop

drop table 表名;

!

DML命令

插入数据 —— insert

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

在这里插入图片描述

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第19张图片

删除记录 —— delete

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第20张图片

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

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第21张图片

更新表记录—— update

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第22张图片
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第23张图片

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

查看表中所有值—— select

select * from 表名;

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第24张图片

查看表中部分数据—— 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)
);

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第25张图片

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第26张图片

别名查询 —— as

表别名 (用于多表查询)

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

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第27张图片

列别名 (用于多表查询)

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第28张图片

去除重复的值 —— distinct

select distinct price from product; 

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第29张图片

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

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第30张图片

条件查询 —— where

select * from product where 条件; 

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第31张图片
标准sql不等于<>

between and

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第32张图片

逻辑 —— and 、or 、not

模糊查询 —— like

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第33张图片

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第34张图片

在范围中获得值 —— in

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第35张图片

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

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第36张图片

select * from product order by price desc; 

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第37张图片

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第38张图片

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

注意:where后面不能加聚合函数
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第39张图片
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第40张图片

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第41张图片

分组 —— group by (having)

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

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第42张图片

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

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第43张图片

插入中文乱码问题

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第44张图片
先停止服务
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第45张图片
修改这个文件,将数据库服务器的编码方式改变
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第46张图片
改成gbk
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第47张图片
开启服务,注意这里要重新进入MySQL,修改表的编码方式
【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第48张图片

【数据库笔记03】(MySQL数据库语句,思维导图记忆)_第49张图片

你可能感兴趣的:(数据库)