昨日内容回顾 外键的变种三种关系: 多对一: 左表的多 对右表一 成立 左边的一 对右表多 不成立 foreign key(从表的id) refreences 主表的(id) 多对多 建立第三张表(foreign key) 一对一 foreign key+unique 单表查询: (1) where group by: 分组,通过某个字段 select age,count(1) from user group by age having avg(age)>25; having order by
mysql5.7版本开始创建用户需要create user 5.7版本之后,直接使用:grant select on MySQL.test01 to hug@localhost; 是不行的,会报错: Error Code: 1133. Can't find any matching row in the user table 5.7版本创建用户需要这样: CREATE USER hug@localhost IDENTIFIED BY '123456'; grant all on mysql.*
TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查.有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句. select 'grant '|| PRIVILEGE ||' to TESTUSERB;' from dba_sys_privs where GRANTEE='TESTUSERB' ;select 'grant '|| PRIVILEGE ||' on TESTUSERA.'||TABLE_NAME||' to TESTUSERB;' fr
1.多表查询 1)笛卡尔集: select * from 表名1,表名2 select * from 表名1.表名2 where 表名1.字段名=表名2.字段名 注: 若有两张表有同样名字的字段,则使用时需带表名(别名). order by 置于where 条件之后. 2)自连接:同一张表的连接查询.将一张表视为两张表或多张表. eg:显示公司每一个员工名字和他的上级的名字.将emp表看做两张表worker和boss select worker.ename 雇员,bos
A:对于死锁,进程的操作 1.查找当前活跃事务 SELECT * from information_schema.INNODB_TRX 根据trx_started等判断事务是否异常锁定 2.杀死线程 Kill id(上面查询出来的trx_mysql_thread_id) B:创建读写账号 grant select,update,delete,insert on dbName.tableName to 'user'@'%' identified by 'password'; [select,upd
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户: 1 CREATE USER username IDENTIFIED BY 'password'; 新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下: 1 GRANT ALL PRIVILEGES O
常用的查询条件有1.比较:=,<,>,<=,>=,!=,<>,!>,!< 2.确定范围:between and,not between and 3.确定集合:in,not in 4.字符匹配:like,not like 5.空值:is null, is not null 下面举个确定范围的简单例子:select * from s2 where a betw
子查询 子查询可以分为单行子查询和多行子查询 单行子查询 [1] 将一个查询的结果作为另外一个查询的条件来使用 特点: 子查询在主查询前执行一次 主查询使用子查询的结果 SELECT * FROM EMP WHERE SAL > (SELECT SAL FROM EMP WHERE ENAME='CLARK'); [2] 子查询可以作为insert语句的值来使用 -- 今天来了一个新员工,将他添加到