mysql基础语法

1.用户&授权

1.1用户管理

创建用户: create user 用户名@‘ip地址’ identified by ‘密码’;
删除用户:drop user 用户名@‘IP地址’;
修改用户信息:rename user 用户名@’‘ip地址’ to 新用户名@‘新ip地址’;
修改密码:set password for 用户名@‘ip地址’ = password(‘新密码’);

1.2权限管理

查看权限:show grant for 用户名@‘ip地址’;
授权:grant 权限 on 数据库.数据表 to 用户名@‘IP地址’;
取消权限:revoke 权限 on 数据库.数据表 to 用户名@‘IP地址’;
基本权限分类:select(查) delete,drop(删) update(改) insert(增) all privileges(除grant外的所有权限)

2.sql语法基础

2.1数据库操作

查看数据库:shwo databases;
创建数据库:create database 数据库名;
删除数据库:drop database 数据库名;
进入数据库:use 数据库名;
//创建test数据库,编码格式和排序比较方法
实例:create database test default charset utf-8 collate utf8_general_ci;

2.2数据表操作

查看数据表: show tables;
查看数据表字段:desc 数据表;
删除表:drop tables 数据表;
清空表内容:delete from 数据表;
清空表内容,自增列排序回到原点:truncate table 数据表;
查询表:select * from 数据表;
设置是否为空:not null & null
设置默认值:default
设置自增列:auto_increment
创建test表其中id为主键自增,name不为空,age默认为18
实例:create table test(id int not null auto_increment primary key ,name varchar(20) not null ,age int default 18)engine=innodb default charset=utf8;
添加列:alter table 数据表 add 列名 类型;
删除列:alter table 数据表 drop column 列名;
修改列名和类型:alter table 数据表 change 原列名 新列名 类型;
添加主键:alter table 数据表 add primary key(列名) //一张表只能有一个主键,可以多列组成一个主键
删除主键:alter table 数据表 drop primary key;
设置默认值:alter table 数据表 alter 列名 set default 18;
删除默认值:alter table 数据表 alter 列名 drop default;

2.3数据行操作

增:
insert into 数据表(列名1,列名2,…) values(值1,值2,…),values(值1,值2,…),… //一次插入多行值
insert into 数据表1(列名1,…) select 列名1 from 数据表2; 从数据表2查询到的字段插入到数据表1
删:
delete from 数据表; //删除整张表
delete from 数据表 where 条件; //删除符合条件的表
改:
update 数据表 set 列名 = 值; //更新某张表的某一列的值
查:
select * from 数据表; //查询整张表数据
select * from 数据表 where 条件; //查询某张表符合条件的值
关于条件:where
select * from 数据表 where id > 1 and name=‘aaa0’; //大于
select * from 数据表 where id between 5 and 16; //在一个范围之间
select * from 数据表 where id in(1,2,3,4,5,6); //在xx中
select * from 数据表 where id not in(1,2,3,4,5,6); //不在xx中
select * from 数据表 where id in(select * from 数据表) //在后表查询结果内
通配符:% _
select * from 数据表 where name like ’aaa%‘; //%匹配多个任意字符
select * from 数据表 where name like ’aaa_‘; //_匹配一个任意字符
分页:limit
select * from 数据表 limit 2; //前两行a
select * from 数据表 limit 5 offset 4;//从第4行开始的5行
排序:order by
select * from 数据表 order by 列名 desc; //通过某列从大到小排列 desc 降序排列
select * from 数据表 order by 列名 asc; //通过某列从小到大排列 asc 升序排列
select * from 数据表 order by 列1desc,列2 asc; //先通过列1大到小排列,相同结果的数据按照列2小到大排列
分组:group by
select * from 数据表 group by 列名; //查询到的结果按照某列分组
聚合函数:min max sum avg count
select num from 数据表 group by num having max(id)> 20; //对聚合函数进行分组时使用having
###group by 要在where 之后 order by 之前,having 要在group by之后
连表查询:left join 数据表 on inner join 数据表 on
select * from student left join class on student.id=class.sid;
inner join 是对left join查询到的结果删选,剔除null值得到的结果,所以使用inner join查询到的结果不会出现null值

3.数据库导入导出

数据库导出:mysqldump -u账号 -p密码 数据库名 > 数据库名.sql;
数据库导入:mysqldump -u账号 -p密码 数据库名 < 数据库名.sql;

你可能感兴趣的:(mysql基础语法)