用于登录的mysql语句,【数据库笔记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)

插入中文乱码问题

fc76b824043d9d76668642b9689bfd22.png

详细可见不同版本的mysql参考手册

安装

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

登录数据库服务器

mysql -u用户名 -p密码

9dbfd2f8205fdab117b439c8876c170d.png

SQL编写顺序

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

SQL执行顺序

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

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

创建数据库 —— create database

create database 数据库名字;

443bc17f1d8757fc6c2fad969c242b89.png

create database 数据库名字 character set 字符集; //字符集如utf8

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

修改数据库 —— alter database

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

cedfb97750ac9339e6da9e8692be5fea.png

删除数据库 —— drop database

drop database 数据库名;

4763a7688531ea3dd5e6ca9360def458.png

查看所有数据库 —— show databases

show databases;

9725a2b22c04aa8632332f9593995294.png

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

show create database 数据库名;

f62f1699c6daebc5866a3910bc790922.png

切换选中的数据库 —— use

use 数据库名;

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

select database();

9933f8ddfa0834653418b8413cf9e8f9.png

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

创建表 —— 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

分析实体(学生)

id

姓名

性别

年龄

create table students(

sid int primary key,

sname varchar(31),

sex int,

age int

)

df0d1b6fcdb208c32b88eb53407bc0a8.png

查看所有表 —— show tables

show tables;

b13d2ec5bf96ae217859b574968c4563.png

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

show create table 表名;

c33219807f0c55843eb4973f4a79aac1.png

查看表结构 —— desc

desc 表名;

3866be1e6373f44d39ed3cdb6d4820eb.png

修改表 —— alter

添加列 —— add

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

b6c52577af03df9f811df7ef29996aeb.png

修改列 —— modify

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

总是忘记打分号 /(ㄒoㄒ)/~~

dc60d74270cff26f9f91d1d9cdc5b9f0.png

修改列名 —— change

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

注意:要加列的类型否则会报错,也可以更改类型。

8edaa2ce1c1925ad2bff64311492cbcc.png

3e26f8f7a65296fc8e8cbe78b3919f6b.png

删除列 —— drop

alter table 表名 drop 列名;

27901966ee67fdf54a3f20928d808cb2.png

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

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

9e4df84fbaf2651d638a4ac135864f4f.png

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

alter table 表名 character set 字符集;

ac13f8e5a2027c528e047d82f99b9912.png

819ff1570370b6fa9a9b450acfc00183.png

删除表 —— drop

drop table 表名;

6014615d1c2133248f57052bef8f7ff5.png

DML命令

插入数据 —— insert

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

44e2db65bb8bec9f781ad23782d1d3f3.png

insert into 表名 values(值,值,值); //这里的值必须是所有的列

insert into 表名(列名,列名) values(值,值); //可以插入部分列

insert into 表名 values(值,值,值),(值,值,值),(值,值,值); //批量插入

fac8ea3da3c24810f58b37c74a743c56.png

删除记录 —— delete

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

18630bbf98e5c99bf45ab1aed738b1b0.png

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

delete:DML 一条一条删除表中数据

truncate:DDL 先删除表,再重建表

哪个比较高效?

– 数据比较少,delete高效。

– 数据多,truncate高效。

truncate 表名; //删除表中所有数据

3cf617ee78d1e8dd2dc89942c2877cae.png

更新表记录—— update

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

fc98a8966ca5c0963a46481cce27c203.png

05566b6592bde7055ea9288cef507c81.png

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

查看表中所有值—— select

select * from 表名;

985ecc7af8a227d7d2589bb5c0aba1d8.png

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

);

ffce2dda7139c845f82bca84df18f798.png

// 建立商品表

create table product(

pid int primary key auto_increment,

pname varchar(10),

price double,

pdate timestamp, //取当前时间

cno int

);

4031c8d1aecd92283f5aa6b6715b4871.png

别名查询 —— as

表别名 (用于多表查询)

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

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

12a2c3a264095491ee20872efe964bdd.png

列别名 (用于多表查询)

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

3edd5d7281a36b602a0c983fe79ebe76.png

去除重复的值 —— distinct

select distinct price from product;

f4b7d48c65ced1c97075816efda2fedd.png

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

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

1b82653b58431cccc97db8b481dd1ed0.png

条件查询 —— where

select * from product where 条件;

b76d0395c9976641f31344d7a3aa1d49.png

标准sql不等于<>

between and

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

12f8b0f4de3e1fa32bc48db3e0640373.png

逻辑 —— and 、or 、not

模糊查询 —— like

_ 代表一个字符

% 代表多个字符

例如:查出所有名字带口红的商品

select * from product where pname like '%口红%';

c9948c61ce4c4f39cdbd8c53dc01c53b.png

例如:查出所有名字第二个字是宝的商品

select * from product where pname like '_宝%';

eeb4afcbd51a1c972d0e7b484507434e.png

在范围中获得值 —— in

例如:查出所有商品是3、4类的商品

select * from product where cno in (3,4);

cdac8e31aac750a0653d19329742ccd6.png

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

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

dcce80884f1a67ee3861669efda1b675.png

select * from product order by price desc;

8ecbaa5bb3e059ea473db5d1227a43be.png

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

81fdebcf7f937c2b53a71c607ed1f049.png

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

注意:where后面不能加聚合函数

9507781f8268a68355681ab367e3d5d3.png

d1e1833514f10f111a960321a56d01a1.png

需要用子查询

select * from product where(select avg(price) from product);

374b4fd8ee88d2a452fbeac7a8435c50.png

分组 —— group by (having)

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

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

查出每个类别的商品有多少个

select cno,count(cno) from product group by cno;

c2af6946d04e888360ae4fc812fd8b3f.png

根据cno分组,分组统计每组商品的平局价格,且平均商品价格>60

select cno,avg(price) from product group by cno having avg(price) >60;

0315648dad0645ae5afb882356c81344.png

插入中文乱码问题

bb07456bdda9059af434f007baaccc6e.png

先停止服务

c690d44b544bc46c90438a441804b93b.png

修改这个文件,将数据库服务器的编码方式改变

2c2b5d5bb178082330c09facb6902693.png

改成gbk

76b1852eb1ffa781f7517c0cfcb97a5e.png

开启服务,注意这里要重新进入MySQL,修改表的编码方式

1c74ed114dc9a48a6ac14cd57cb3b706.png

733a629a362ed8fc08fe210b8351ff33.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值