mysql教程

mysql

查询当前mysql所以数据库

show databases

创建数据库

create  database  数据库名 charset  字符集名称  [collate  校对规则名];
字符集名类似这些: utf8,  gbk,  gb2312,  big5,  ascii等。推荐用utf8。
创建
create  database dadesss charset utf8;

查看数据库创建信息

show create database dadessssa;

删除数据库

drop database dadesss;
修改现有数据库
alter  database  数据库名  charset  新的字符集名称 collate 新的校对规则名 

选择使用哪个数据库

use 数据库名;

创建表

create table biaoge (id int, name varchar(10), age int);
添加字段
alter table 表名 add 字段名 字段类型
修改字段
alter table 表名 change 旧字段名 新字段名 字段类型
删除字段
alter table 表名 drop 要删除的字段名;
修改表名
alter table 表名 rename 新的表名;
修改表字符集
alter table 表名 charset=新的字符集;
清空表
truncate 表名;

查看所有表

show tables;

查看表结构

desc biaoming;

查看表创建语句

show create table biaoming;

删除数据表

drop table biaoming;

增删改查

增
insert into dade_order_goods(name,price,state,stock,items,richtext,dade) values ($name,$price,$state,$stock,$items,$richtext,$date);
删
Db::execute("delete from dade_order_goods where id=$id");
改
update dade_order_goods set name=$name,price=$price where id=$id;
查
select * from dade_user_withdrawal where (state=2) order by id desc limit $pageSize,7

高级查询

查询写法顺序

select 子句 [from 子句] [where 子句] [group by子句] [having子句] [order by子句] [limit 子句];
1、
逻辑与:	&&  或  and
逻辑或:	||	 或  or
逻辑非:	!	 或  not
2、
like模糊查找运算符:xxx字段  like  ‘%关键字%’;(_表示一个模糊)
3、
group by 组信息;看有多少人是下单的
SELECT * FROM `ims_ewei_shop_order` group by openid;

(1)计数值: count(字段), 表示求出一组中原始数据的行数;
(2)最大值: max(字段),表示求出一组中该字段的最大值;
(3)最小值: min(字段),表示求出一组中该字段的最小值;
(4)平均值: avg(字段),表示求出一组中该字段的平均值;
(5)总和值: sum(字段),表示求出一组中该字段的累加和;
保留两位小数round(sum(charge),2)

as '最大';as是别名
count(*)
查总数
select count(*) as 总数 from dade_user_withdrawal;
查最大
SELECT max(price),ordersn FROM `ims_ewei_shop_order`;
4、
having  筛选条件。having的含义跟where的含义一样,但having是只用于对group by分组的结果进行的条件筛选。
SELECT * FROM `ims_ewei_shop_order` group by openid having openid != 1;

5、
order by 字段1 [asc或desc],排序正序asc, 倒序desc
SELECT * FROM `ims_ewei_shop_order` order by id desc;

6、
limit  起始行号,行数   分页
SELECT * FROM `ims_ewei_shop_order` limit 2, 10;

高级插入

insert into 表名 set 字段1=值1,字段2=值2;

联合查询

select查询1
union  [all或distinct]
select查询2
union  [all或distinct]
select查询3
...... 
[order by 字段  [asc或desc] ]
[limit  起始行号,数量];

on  连接条件

1、
联合查询union
SELECT id FROM `ims_ewei_shop_order` union SELECT id FROM `ims_ewei_shop_order_goods` limit 0,10;
2、
连接查询join
SELECT * FROM `ims_ewei_shop_order` join `ims_ewei_shop_order_goods` limit 0,100;
3、
内连接(inner join)
SELECT * FROM `ims_ewei_shop_order` as p inner join `ims_ewei_shop_order_goods` as d  on p.id = d.id;

左外连接(left join)
右外连接(right join)

子查询

SELECT * FROM `ims_ewei_shop_order` where id = (SELECT orderid FROM `ims_ewei_shop_order_goods` where orderid = 1169);

大于平均值
SELECT * FROM `ims_ewei_shop_order` where price > (SELECT avg(price) FROM `ims_ewei_shop_order`);

mysql用户

进入use mysql;
查用户select * from user;
create user ‘用户名’[@’允许登录的地址’]  identified  by  ‘密码’;
说明:
1,创建用户之后,数据库mysql中的user表中就会多一个用户。
2,‘允许登录的地址’,就是允许登录的客户端的ip地址,或
①”localhost”表示只能本地登录;
②“%”表示任何位置都可以登录;
③该部分可以省略,如果省略,默认就是”%”;
④后续涉及到用户的操作,都是这个格式。
创建用户
create user 'dadeee' identified by '123456';
删除用户
drop  user  用户[@’允许登录的地址’];
drop user dadeee@127.0.0.1;
修改密码
set  password  for  用户[@’允许登录的地址’] =  password(‘密码’);

授予用户权限
语法形式:
grant  操作1,操作2,....  on  *.*或 数据库名.* 或 数据库名.表名  to 用户[@’允许登录的地址’];
说明:
1,“操作”其实就是权限名,是一个“特定词”,比如:delete, insert, update, select, create,  等等。
①其中,还可以用“all”,表示“所有权限”(除了grant权限)。
2,on后表示对“什么东西”来设定该权限,意思是对什么库的什么表,其中:
①*.*	:表示所有库的所有表;
②数据库名.*	:表示该指定数据库的所有表;
③数据库名.表名:表示该指定数据库的该指定表;

取消用户权限
revoke  操作1,操作2,....  on  *.*或数据库名.* 或 数据库名.表名  from 用户[@’允许的地址’];

mysql查询去除重复项distinct方法

select distinct jurisdiction_id FROM cdj_administrators_jurisdiction

mysql时间戳转日期,日期转时间戳

select FROM_UNIXTIME(1606028010, '%Y-%m-%d %H:%i:%s');
select unix_timestamp('2018-01-15 09:45:16');

分组查询

SELECT house_id,count(*) FROM `cdj_pindex_allocation_id_house_id` group by house_id having count(*)>1;
SELECT house_id,count(*) FROM `cdj_pindex_allocation_id_house_id` where (pindex_id=43 and type=2) group by house_id having count(*)>1;

mysql删除索引,执行下面命令释放空间或删除大量数据

optimize table cdj_order

从一张表插入另外一张表

insert into cdj_order_speed(company_id,house_id,charge_id,allocation_id,type,ymt)SELECT company_id,house_id,charge_id,allocation_id,type,ymt FROM cdj_order;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大得369

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值