mysql的语句

#####数据库操作语法
#遍历整个数据库
show databases ;
#创建一个数据库
create database SoftUser;
#删除一个数据库,如果这个表存在
drop database  if exists superadmin1;
#使用这个数据库
use superadmin;
#查询当前处于哪个数据库
select database();

#####数据表操作语法
#遍历当前数据库所有表
show tables ;
#创建表
create table daili(
 id int(4) not null primary key auto_increment,
 name varchar(50) not null,
 sex int(4) not null default '0',
 degree double(16,2)) comment '信息表';
#给表添加成员类型
ALTER TABLE MyClass ADD MESSAGE VARCHAR(50) COMMENT '备注';
#修改表成员类型
ALTER TABLE MyClass change MESSAGE NEWname_MESSAGE int COMMENT '备注';
#删除表成员类型
ALTER TABLE MyClass drop NEWname_MESSAGE;
#修改表名
ALTER TABLE myclassnew RENAME TO MyClass;
#删除表,如果表存在
drop table  if exists MyClass1;
#查询表成员类型
desc MyClass;
#显示表成员创建的sql语句
show create table superadmin;

#########DML对表的数据进行操作
#增加数据(指定字段赋值)
insert into MyClass(id,name) values (3223,'22'), (11,'ggg');
#增加数据(所有字段赋值)
insert into MyClass values (3223,'22',2,2), (11,'ggg',1,1);
#删除数据
delete from MyClass where name = '1';
#改单个字段数据
update MyClass set sex='221' where id=1;
#改多个字段数据
update MyClass set sex='221', name= 'ak' where id=3223;
#查询表里字段信息
select name,id from myclass;
#查询表里字段信息并起别名
select name '名字',id'编号' from myclass;
#查询表所有成员
select * from myclass;
#查询表过滤
select * from MyClass where degree='2';
select * from MyClass where degree is null;
select * from MyClass where degree is not null;
select * from MyClass where sex  >10 && sex <500;
#查询表过滤 __每个字符代表一个占位符,%x代表最后一位是x
select * from MyClass where name like '__发';#查询名字是三个字,最后一个字是发的数据
select * from MyClass where name like '%发';
select * from MyClass where name like '%发%';#查询名字里任何位置包含发的数据

#聚合函数
#count统计数量 max取最大值 mix取最小值 avg取平均值 sum求和
select sum(sex) from myclass;
select sum(sex) from myclass where  sex = 1;

#分组查询,大多数配合聚合函数
#根据sex分组 ,求不同sex数量
select sex, count(*) from myclass group by sex;
select sex, avg(sex) from myclass group by sex;
# 查询sex小于100的成员,并根据id分类,获取id = 1的成员
select id ,count(*) from myclass where sex < 100 group by id having id = 1;

#排序查询 asc升序(默认可不写) desc降序
select * from myclass order by sex desc;
#按sex降序,如果sex相同则根据id升序
select * from myclass order by sex desc,id asc;

#分页查询 limit必须再最后
# limit 索引(页码-1)*需要展示的数量 ,需要展示的数量;
select * from myclass  limit 3 ,3 ;
# 按降序的方式查索引
select * from myclass order by sex desc limit 3 ,3 ;
#如果order by过滤的字段不唯一,则再加一个唯一的字段条件,否则可能漏数据
select * from myclass order by sex desc, name desc limit 3 ,3 ;



#用户管理
#创建用户 itcast,只能再当前主机localhost访问,密码 123456
create user 'itcast'@'localhost' identified  by '123456';

#创建用户 heimna,可以再任意主机访问访问,密码 123456
create user 'heimna'@'%' identified  by '123456';

#修改用户密码
ALTER USER 'heimna'@'%' identified with mysql_native_password by '1234';

#删除用户
DROP USER 'itcast'@'localhost';

#查询用户有什么权限
SHOW GRANTS  FOR 'heimna'@'%';
#授予用户权限 all select insert update delete ALTER drop create
grant all on superadmin.* to 'heimna'@'%';
#撤销权限
revoke all on superadmin.* from 'heimna'@'%';
#默认是localhost,改成%可以外网连接
#刷新资源(更改用户信息后需要)
FLUSH PRIVILEGES;

#约束 用于创建表的时候给成员加限定条件
#非空约束:限制该字段的数据不能为null---   NOT NULL
#唯一约束:保证该字段所有数据唯一性,不重复--- unique
#主键约束:主键是一个表的唯一标识,非空且唯一 --- primary key
#默认约束:保存数据时,若为设置值,则采用默认值 ---  default
#检查约束:保证字段值满足某一个条件 --- check (  )
#外键约束:让两张表建立连接,保证数据一致性 --- foreign key
  #alter table 表名  add constraint  外键名 foreign key (此表设置外键成员) references  主表名(主表的primary key/UNIQUE 成员名)

#创建一张表:ID(bigint),name(varchar(10非空唯一)),age(int大于0,小于等于120),status(char(1)默认1),gender(char(1))
create table superadmin(
    ID bigint primary key auto_increment comment '主键',    #auto_increment 自动增长
    name varchar(50) NOT NULL unique comment '名字',
    password varchar(50) NOT NULL  comment '安全码',
    Version varchar(50) NOT NULL  comment '版本号',
    Updateaddress varchar(50) comment '更新地址',
    Unbind int default 0 comment '解绑扣时间',
    announcement varchar(500)  comment '公告',
    Staticdata  varchar(50) comment '静态数据',
    Softwarestatus int default 0 comment '软件状态', #收费 免费 停用
    Updatemethod   bool  default 0  comment '更新方式', #0不强制 1强更
    registerTime   int default 0 comment '注册送时间',
    Openmore bool  default 0  comment '多开' #0不许 1可以
    #constraint   foreign key (此表设置外键成员) references  主表名(主表的primary key/UNIQUE 成员名)

) comment '软件信息';
drop table yueshu;

#外键约束
  #alter table 表名  add constraint   foreign key (此表设置外键成员) references  主表名(主表主键成员名)
#行为
#no action  /  restrict    拒绝参照表删除或更新参照字段;
# CASCADE   删除或更新参照表的参照字段时,外键表的记录同步删除更新;
#删除更新行为
  #alter table 表名  add constraint   foreign key (此表设置外键成员) references  主表名(主表主键成员名) on update行为 on delete 行为


#多表查询
#隐式内链接   查询的是 AB两表相交部分的信息
#select * from 表A,表B where 条件
select * from software,softkami where software.name = softwareName;
#显式内链接   查询的是 AB两表相交部分的信息
#select * from 表A inner join 表B on 条件
select * from software inner join softkami  on software.name = softwareName;

#左外连接   查询的是 A表所有数据 + AB两表相交部分的信息
#select * from 表A left outer join 表B on 条件
select * from software left  join softkami  on software.name = softwareName;
#右外连接    查询的是 B表所有数据 + AB两表相交部分的信息
#select * from 表A right outer join 表B on 条件
select * from software right  join softkami  on software.name = softwareName;

#自链接  查询的是 A表所有数据 ,必须把A表当两个表来看,给A表起别名
#内查询
select A.name,B.name from software A,software B where A.name = B.name;
#外查询
select A.name 'a表',B.name 'b表' from software A left  join software B  on A.name = B.name;

#联合查询 union     把多次查询的结果合并,形成一个结果集
#union all 合并所有结果
#union 合并后结果去重
select * from software where name ='1'
union
select * from software where software.password ='1';

#事务
#查看事务提交方式,1为自动提交,0为手动
select @@autocommit;
#设置事务提交方式
set @@autocommit =  1;
#提交事务   前面的修改表的sql语句必须执行commit才会生效,否则都是无效的
commit ;
#回滚事务   出现错误就回滚
rollback ;

#事务方式二,不修改提交方式
#开启事务
start transaction ;#begin也可
#提交事务   成功则提交
commit ;
#回滚事务   出现错误就回滚
rollback ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值