--创建表
create table 表名(
字段1 类型1,
字段2 类型2,
字段3 类型3,
...........
);
实例:
create table sb(
姓名 VARCHAR(10),
险种名称 VARCHAR(50),
费款所属期 DECIMAL(20,2),
单位应缴基数 DECIMAL(20,2),
个人应缴金额 DECIMAL(20,2));
--查看表结构
desc 表名;
--查看创建表的SQL语句
show create table 表名;
--修改表名
alter table 表名 rename to 新的表名;
--添加一个新的字段
alter table 表名 add 字段; 字段类型;
--修改字段名
alter table 表名 rename column 字段名 to 新的字段名;
--修改字段类型(注意类型修改前后数据是否兼容)
alter table 表名 modify column 字段名 新的字段类型;
--删除一个字段
alter table 表名 drop 字段名;
--删除表
drop table 表名;
--删除表时判断表是否存在,若存在则删除
drop table if exists 表名;
--查询users表中年龄在18~30岁之间的记录
--方式1 between..and..
select * from users where age between 18 and 30;
--方式2 &&
select * from users where age>=18 && age<=30;
--方式3 and
select * from users where age>=18 and age<=30;
--查询users表中年龄为18,20,30岁的记录
--方式1 or
select *from users where age=18 or age=20 or age=30;
--方式2 in
select *from users where age in(18,20,30);
--查询users表中姓名第一个字为李的记录
select *from users where name like '李%';
--查询users表中姓名第二个字为李的记录
select *from users where name like '_李%';
--查询users表中姓名含有李字的记录
select *from users where name like '%李%';
--查询users表中姓名是两个字的记录
select *from users where name like '__';
2.多条件
只有当第一个排序条件值一样,才会执行第二个排序条件
--查询users表中记录,并体育成绩降序,年龄降序
select *from users order by PE desc,age desc;
select sum(字段) as sum from 表名;
2.计算最大值 max
select max(字段) as max from 表名;
3.计算最小值 min
select min(字段) as min from 表名;
4.计算平均值 avg
select avg(字段) as avg from 表名;
5.计算个数 count
select count(字段) as count from 表名;
9.分组查询 group by
--查询users表中的记录,按照性别分组,查询男,女的考试成绩平均分
select sex,avg(result) from users group by sex;
--查询users表中的记录,按照性别分组,分别查询男、女的考试成绩平均分,人数
select sex, avg(result),count(id) from users group by sex;
--查询users表中的记录, 按照性别分组,分别查询男、女的成绩成绩平均分,人数 要求:分数低于60分的人,不参与分组
select sex, avg(result),count(id) from users where result> 60 group by sex;
--查询users表中的记录,按照性别分组,分别查询男、女的考试成绩平均分,人数 要求:分数低于60分的人,不参与分组,分组之后,人数要大于2个人
select sex,avg(result),count(id) from users where result > 60 group by sex having count(id)>2;
10.分页查询
--查询users表中的前10行条记录
select * from users limit 10;
--查询users表中第2~11条记录 (从第5条记录开始累加10条记录)
select * from users limit 4,10;
--查询users表中第5~17条记录 (从第5条记录开始累加13条记录)
select * from users limit 4,13;
11.内连接查询
如果查询数据的来源来自多张表,则必须对这些表进行连接查询
--语法1 (隐式内连接)
select 字段1,字段2...
from 表1,表2...
where 过滤条件;
--语法2 (显式内连接)
select 字段1,字段2...
from 表1 inner join 表2 ...
on 过滤条件;
12.外连接查询
左外连接:是表1和表2的交集再并上表1的其他数据
右外连接:是表1和表2的交集再并上表2的其他数据
--左外连接
select 字段1,字段2..
from 表1 left (outer) join 表2 on 过滤条件;
--右外连接
select 字段1,字段2..
from 表1 right (outer) join 表2 on 过滤条件;
-- 查询最大的年龄,左边条件是什么右边必须返回一样的
select * from user where age=(select max(age) from user);
4.DCL
数据控制语言:用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视
1.管理用户
1.添加用户
create user '用户名'@'主机名' identified by '密码';
2.删除用户
3.修改密码
USE mysql;
UPDATE USER SET PASSWORD=PASSWORD(‘密码’) WHERE User=’用户名’ and Host=’IP’;
FLUSH PRIVILEGES;
--将root的密码改为root
update user set password=password('root') where user='root' and host=’localhost’;
FLUSH PRIVILEGES;
4.查询所有用户
-- 查询用户
-- 1、切换到mysql数据库
USE mysql;
-- 2、查询user表
SELECT *FROM USER;
2.权限管理
1.权限管理
show grants for '用户名'@'主机名';
2.授予权限
--语法
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
--授予faker用户所有权限,在任意数据库任意表上
grant all on *.* to 'faker'@'localhost';
3.撤销权限
--语法
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
--撤销faker用户对tests数据库中city数据表的权限
revoke update on tests.city from 'faker'@'localhost';
原文链接:https://blog.csdn.net/m0_74825223/article/details/144317519