一 创建用户、授权
--创建用户,设置密码
create user 'mydb'@'localhost' identified by '123456';
--授予用户mydb通过外网IP对数据库“db”的全部权限
grant all privileges on 'db'.* to 'mydb'@'%' identified by '123456';
--刷新权限,这样权限才会生效
flush privileges;
--授予用户“mydb”通过外网IP对于该数据库“db”中表的创建、修改、删除权限,以及表数据的增删查改权限
grant create,alter,drop,select,insert,update,delete on db.* to mydb@'%';
此处的"localhost",是指该用户只能在本地登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定ip,仅限某台机器可以远程登录。
用户名可以采用db或者业务相关命名
虽然可以授予其他用户全部权限,但是只有root用户才有创建用户的权限
一 数据库操作 DML
- where语句
- and --or --not
- order by ----asc--desc
- where ---in---
- where---between---and---
- distinct--
- xx as 别名,xx as 别名,
- limit m,n
- 聚合函数:
- sum,count,avg,max,min
二
- count(*)会运行两次,查询的时候会把null值计算进去;
- count(列名)查询一次,自动去掉null值
- having 与group by 一起使用
- order by 后面可以再排序
- order by 属性1 ASC,属性2 DESC 先按属性1排序再按属性2排序
三
创建视图creat view students AS select * from stu join sc on stu.sno=sc.sno
创建视图时不要使用order by 排序无效果;
四
求出数据表中的前 两名或者前三名
select * from table as A where (select count(*) from table as B where B.id=A.id and B.score>A.score)<2
SELECT * FROM t_sc AS s1 WHERE (SELECT COUNT(*) FROM t_sc AS s2 WHERE s2.cno =s 1.cno AND s2.score>=s1.score )<=3 ORDER BY cno,score DESC