SQL基础

一 前言

win10 mysql 5.7.32
记录一些命令行使用MYSQL基础,及SQL的一些语法基础

二 SQL

注意,命令行输入mysql命令后要以英文符;结束

mysql -p -u xxxuser

show databases
use xxxdatabase
show tables
show create table  xxxtable  显示创建xxx表的具体SQL语句

create database if not exists xx
drop database if exists xx
drop table if exists xx1, xx2
drop table xx1,xx2

desc xxtable  显示表结构,以表格的形式
create table xx2 like xx 复制表结构 创建新的表
create table xx3 as select * from xx  复制表结构和数据 创建新的表
create table xx3 as select * from xx where 1<>1 复制xx表的结构不复制数据 创建新的表
create table xx4 as select c1, c2, c3 from xx where 1<>1 复制xx表的3个字段创建新表 不复制数据
create  table xx5 as slect c1 as c11, c2 as c22, c3 as c33 where 1=2 复制xx表的部分字段同时修改字段名, 不复制数据

alter table xxtable add column xxx VARCHAR(100) NOT NULL 增加一列
alter table xxxtable drop xxx  删除一列
alter table xx change xxxold_name xxxxnew_name varchar(33)	#修改字段名 类型
alter table xx rename to xx2  #改表名

update  xxtable set col1=xx, clo2=col2+100 where id =1 or id=2  不加where 则更新指定字段的所有记录行数据

delete:物理删除
delete from xxtb where id =1 不加where则会删除表中的所有记录
通常是在表中增加一个字段表示删除标识,根据字段值表示该行是否被删除,即逻辑删除

insert into xx (c2,c1,c3) values(v2,v1,v3),(v22, v11, v33)	#向表中的部分字段插入值,指定了具体字段及字段顺序时,values后面数据值的顺序要和前面字段值的顺序一致
insert into  xx values(n1,n2,n3,n4,n5),(n11,n12,n13,null,null);	#只有插入的数据值,未明确指定字段,按照表中字段的顺序插入数据,无值的写null
insert into tablexx语句插入部分字段的数据时.省略的字段在设计表时必须要有默认值,否则插入的时候会报错
insert into xx (c2, c3, c4) select c22,c33,30 from xx2;	把xx2的数据插入到xx


SQL中的通配符:%替代0 或者多个字符, _替代一个字符
select * from xx where id like "%1%" order by desc limit 2;	#id(int)包含1的数据,取id最大的2个

select * from xx limit 1	#查询第一条
select * from xx limit 0,2	#第一行开始,前面2行数据
		
where is null #字段值的null的判断用is

select count(*) from xx #表有多少条数据
select count(col2) from xx # 根据列col2查询数量, null不统计在内
select count(distinct sex) from xx	#查询性别的数量 null不统计在内 重复的数据算一种

select sex from xx group by sex 分组查询具体有哪几种sex

查询时间
SELECT id, amount FROM xx WHERE create_time >'2023-10-23 12::00:00'
上述时间字段在mysql中的类型为 timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT

#字段是数值类型,其值可以用引号也可以不用
select user FROM demo WHERE id="1"
select user FROM demo WHERE id=1

#字段是字符类型的话,其值要用引号
select id FROM demo WHERE user="li";



where xxx between 2 and 3 #包括边界值
where xxx not between 2 and 3 #不包括边界值
where xxx in (1,2,3)
where xxx not in (11,22,33)

where 子句中不能使用聚合函数
posted @ 2024-08-27 21:32  工作手记  阅读(2)  评论(0编辑  收藏  举报