-- 元素操作 这里是单表查询
#插入
insert into haojiahuo(userid,username,password,gender,phonenum) values (3,"SFD","123456",0,12345678909) #手动输入
alter table haojiahuo_copy1 rename to hao #复制表格方便演示下条语句
insert into hao(userid,username,password,gender,phonenum) select userid,username,password,gender,phonenum from haojiahuo #注意插入数据的类型要符合
#可以看出 前面是字段名,values,select后面是待处理的数据
insert into haojiahuo(birthday) values ('2023-12-25 18:32:16') #插入时间的格式形如'2023-12-25 18:32:16' 最少要精确到日,再数据库显示到日期
insert into haojiahuo(birthday) values (now()) #使用now()函数返回当前时间
#删除
delete from haojiahuo
delete from haojiahuo where isnull(userid)#删除单行 后面可加条件 这里删除userid 为空的数据
truncate haojiahuo #删除所有内容且重置自增标识符 慎用 但是保留表格结构
#更新
update haojiahuo set username = "真离谱" , password = "newbee" where userid = 1 #注意更新对象行
#查找 比较庞大 主要是 各种条件限定 连接(JOIN)、分组(GROUP BY)和聚合函数(如COUNT(), SUM()等)
#简单的where 表达式
select username from haojiahuo where age =12 and userid = 3 #where 后面用逻辑表达式即可 and or > < = 等等
select age from haojiahuo where age between 12 and 43 #包括端点
select * from haojiahuo where username like '%F%'
select * from haojiahuo where username like '_离_'
select * from haojiahuo where username like '%D%'
select age +10 from haojiahuo where userid >0 and userid <1000; #可以用表达式作为查询的内容
#指定别名
select userid ,age ,(userid +age)/2 as 平均 from haojiahuo #NULL 比任何值都小,升序最上面,降序最下面
#去重
select distinct age from haojiahuo
#排序
select userid from haojiahuo order by age asc #升序 可以用 没出现在结果的字段 排序,比如这里用age排序
select userid from haojiahuo order by userid desc #降序
select * from haojiahuo order by age desc ,userid asc#只有一套排序规则
select * from haojiahuo order by userid asc, age desc # 按书写顺序决定优先级
-- 小练习
-- 1.将一张表格的数据复制到另一个表格
#用create 实现
create table haojia select * from haojiahuo order by userid asc
#用insert 实现
insert into haojia select *from haojiahuo order by userid asc
truncate haojia
select *from haojia
-- 2.将一个表格进行排序(用现有知识)
#将原来的表格内容腾入新表,然后再清空原表格,装回原表格 略