MySQL个人常用SQL语句记录

序言

本文并非教学使用,仅是为了便捷使用MySQL语句,和防止遗忘所写的,我对纯大写不敏感,所以基本我写sql语句都是使用小写,有我知道或我记得的便捷SQL语句就会记下来。

注:
①由于SQL对于大小写不敏感,所以命令及表名之类的是大写还是小写都无所谓,仅限于命令,表格数据使用大小写方便我们的查看;

②大多操作符不是仅能查看,也能运用在其他语句,比如插入,更新等。

非 常用命令

创建数据库

CREATE DATABASE 数据库名;

example:
create database mydata;

删除数据库

DROP DATABASE 数据库名;

example:
drop database mydata;

选择数据库

说明:只有选择了才可以对该数据库进行操作

USE 数据库名;

example:
use mydata;

查看数据库

可查看所有已创建的数据库,可使用操作符

SHOW DATABASES;

example:
show databases;

查看数据库中的表格

可查看所有已创建的数据库表格,可使用操作符

SHOW TABLES;

example:
show tables;
show tables like '%le';

查看表格的列数

select count(*) from information_schema.columns where table_schema = '数据库名' and table_name = '表名';
example:
select count(*) from information_schema.columns where table_schema = 'mydata' and table_name = 'myTable';

查看表格的类型(创建后)

DESC/DESCRIBE 表名;

.

创建(create)

简单创建表

create table myTable
(
	id int(5),				//10000
	age decimal(5,2),		//100.00
	name varchar(20),       //可20个汉字或20个字母,不限字类型,只限制个数
	time date				//默认yyyymmdd,20220322-》2022-03-22
);

.

创建索引

create index 索引名 on 表名(该表的列名);

.

创建主键

一是直接在创建表格的时候,在其类型后增加即可;
二是在末尾的地方加上即可。

	id int(50) primary key not null,
	...
或者
	id int(50) not null,
	age int(50) not null,
	...
	primary key(id)
	primary key(id, age)

.

删除(delete)

简单删除表里数据

delete from myTable;
delete * from myTable

删除表格

drop table if exists myTable;

查看(select)

简单查看

select * from myTable;

不重复查看(distinct)

说明:所查询的所有数据全都不重复才会显示

select distinct * from myTable;

排序查看(order by (DESC/ ASC)

//DESC逆序,ASC顺序
select * from mytable order by id DESC, age ASC;

AND和OR查看

//同时满足两个条件才会显示
select * from mytable where id = 10000 and age = 34.23;

//两个条件满足其一即可显示
select * from mytable where id = 10000 or age = 48.00;

//必须满足第三条件,前两个条件至少满足其一即可显示
select * from mytable where ( id = 10000 or id = 10001 ) and age = 23.33;

Top前几查看(limit)

//输出插入的顺序前两个
select * from mytable limit 2;

//按id顺序排序后的前两条数据
select * from mytable order by id limit 2;

模糊查看(like)

/*
 *'%a'     //以a结尾的数据
 *'a%'     //以a开头的数据
 *'%a%'    //含有a的数据
 *'_a_'    //三位且中间字母是a的
 *'_a'     //两位且结尾字母是a的
 *'a_'     //两位且开头字母是a的
 */
select * from myTable where name Like '马%梅';

//查找王/赵/李/梁任一开头的名字
select * from mytable where name like '[王赵李梁]%';

//下两条等同,凡姓王/赵/李/梁的都不显示
select * from mytable where name like '[^王赵李梁]%';
select * from mytable where name like '[!王赵李梁]%';

IN查看(in)

//查找name列为王大爷或者赵奶娘的行数据
select * from mytable where name in ( '王大爷', '赵奶娘');

between查看(between … and …)

//范围: >=10001 && <= 10003
select * from mytable where id between 10001 and 10003;

//范围:<10001 && > 10003; 
select * from mytable where id not between 10001 and 10003;

//下两条等同
select * from mytable where id not between 10001 and 10001;
select * from mytable where id not in(10001);

.

连接(join)

交叉连接(cross join)

select * from mytable cross join mytable2;

效果是:mytable的每一行,都会逐条对应mytable2的所有行数据,如下效果

AB
mytable1_1mytable2_1
mytable1_1mytable2_2
mytable1_1mytable2_3
mytable1_2mytable2_1
mytable1_2mytable2_2
mytable1_2mytable2_3

内连接(inner join)

select * from mytable inner join mytable2 on mytable.id = mytable2.id;

用法如上,效果就是on后面的命令相同的行信息则合并,不满足条件的略掉,mytable在前,mytable2在后,*处可以自由更改列显示

外连接(outer join)

略,待补充
.

更新(update)

简单更新

update myTable set id = 10001 where age = 23.33;

插入(insert)

简单插入

insert into myTable values( 10000, 23.33, '溪渣渣' , '20220322');

未完待续

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

溪渣渣_梁世华

打赏?我甚至没有任何收费的章节

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

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

打赏作者

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

抵扣说明:

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

余额充值