数据库操作
create database 数据库名;
drop database 数据库名;
表操作
-- 建表
create table userinfo(
id int(10) primary key auto_increment, -- primary key关键字 auto_increment自增
username varchar(20) unique, --unique唯一
status varchar(20)
);-- 删除主键(primary key)
alter table userinfo drop primary key;-- 删除唯一(unique)
alter table userinfo drop key username;-- 删除自增
alter table userinfo modify id int;
-- 删表
drop table userinfo;-- 备份表
create table 表名 as (select * from 表名);-- 改表名
rename 表名 to 表名;
表中字段进行添加 add、删除 drop、修改change/modify的操作
语法:alter table 表名 add | change/modify | drop 字段名 类型 约束;
alter table userinfo add status int;alter table userinfo drop email;alter table userinfo change username login_name varchar(20);
alter table userinfo modify username varchar(16); #modify不可以用来修改字段名
alter table userinfo change username username int;
alter table userinfo change username my_username varchar(16); #同时修改字段名和数据类型
alter table userinfo modify `status` int first;
alter table userinfo modify `status` int after login_name;
操作表
查询的完整语法:
select 字段|表达式 from 表名|视图|结果集
[where 条件]
[group by 分组]
[having 分组之后进行检索]
[order by 排序]
[limit 限制结果]
-- 最低工资大于等于100,用户ID在75,702,5606,804,818中,管理员姓名第二个字母是z,工资倒序排列
select distinct a.name 名字去重,o.order_id,a.user_id,o.price 价格,if(o.price = 1999,'工资高','工资低'), -- ifnull(price ,0) 判断price 列是否是null,如果是null,则赋值为0avg(o.price ) + 0.5 AS 平均数
fromsxo_answer ainner join sxo_order_detail o on a.user_id = o.user_id
where -- where后面不可以接聚合函数,where单独使用使用o.user_id in ( 75, 702, 5606, 804, 818 ) and a.name like '_z%'
group byo.price
having -- having 后面可以接聚合函数,having搭配group by使用min(o.price )>= 100
order byo.order_id desc limit 2, 3;-- limit是从第3行开始,往后取3行(取3到6行)
-- limit m,n m:开始的位置,索引值从0开始 n:取值的长度(个数)-- 插入
insert into sxo_answer(id,user_id,name) values(1,1,'abc'),(2,2,'edf');-- 修改
update sxo_answer set name='abc' where id=1;-- 删除
delete from sxo_answer where id=1;-- 清空
truncate table sxo_answer;-- 删表
drop table sxo_answer;min() -- 最小值
max() -- 最大值
avg() -- 平均值
sum() -- 总计
count() -- 统计行数
round() -- 四舍五入表名 left join 表名 on 条件
表名 right join 表名 on 条件
注意:delete与truncate的区别是什么
1:delete是逐行删除,truncate是文件级别的清空
2.delete删除后,自增性会继续执行,不会重置
3.truncate删除后,自增性重置
上一篇:mysql备份与还原