- 当一条语句中有group by的话,select后面只能跟分组函数和参与分组的字段。
- distinct去重关键字select distinct job from emp;
- distinct只能出现在所有字段的最前面。
- 笛卡尔积现象:当两张表进行连接查询的时候,没有任何条件进行限制,最终的查询结果条数是两张表记录条数的乘积。
- 怎么避免笛卡尔积现象?当然是加条件进行过滤。
思考:避免了笛卡尔积现象,会减少记录的匹配次数吗?
不会,次数还是56次。只不过显示的是有效记录。 - 使用外连接的话,AB两张表中有一张表是主表,一张表是副表,主要查询主表中的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。
- limit分页查询 limit startIndex, length
startIndex表示起始位置,从0开始,0表示第一条数据。
length表示取几个 - varchar 可变长字符串(StringBuffer/StringBuilder)
- char 定长字符串(String)
优点:不需要动态分配空间,速度快
缺点:使用不当可能对导致空间的浪费 - insert into 表名(字段名1,字段名2,字段名3,....) values(值1,值2,值3,....)
- create table 表名 as select语句;
将查询结果当做表创建出来。 - 将查询结果插入到一张表中?
mysql> insert into dept1 select * from dept;
mysql> select * from dept1; - 语法格式:
update 表名 set 字段名1=值1,字段名2=值2... where 条件; - 将部门10的LOC修改为SHANGHAI,将部门名称修改为RENSHIBU
update dept1 set loc = 'SHANGHAI', dname = 'RENSHIBU' where deptno = 10; - 删除数据?
语法格式:
delete from 表名 where 条件;
delete语句删除数据的原理
表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!!
缺点:删除效率比较低
优点:支持回滚,后悔了可以再恢复数据!!! - 常见的约束有哪些呢?
非空约束(not null):约束的字段不能为NULL
唯一约束(unique):约束的字段不能重复
主键约束(primary key):约束的字段既不能为NULL,也不能重复(简称PK)
外键约束(foreign key):...(简称FK)
检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。 - 谁用了其他表的字段谁就是那个表的子表,被引用字段的那个表就是父表。
- 删除数据的时候,先删除子表,再删除父表。
添加数据的时候,先添加父表,在添加子表。
创建表的时候,先创建父表,再创建子表。
删除表的时候,先删除子表,在删除父表。
- 删除数据的时候,先删除子表,再删除父表。
-
什么是事务?一个事务是一个完整的业务逻辑单元,不可再分。
-
事物怎么做到多条DML语句同时成功和同时失败的呢?
InnoDB存储引擎:提供一组用来记录事务性活动的日志文件 -
mysql数据库默认的隔离级别是:可重复读。
-
事务隔离性存在隔离级别,理论上隔离级别包括4个:读未提交(read uncommitted),读已提交(read committed),可重复读(repeatable read),序列化读/串行化读(serializable)(最高)。
-
什么是索引?有什么用?
索引就相当于一本书的目录,通过目录可以快速的找到对应的资源。
索引是在数据库表的字段上添加的。
在数据库方面,查询一张表的时候有两种检索方式:
第一种方式:全表扫描
第二种方式:根据索引检索(效率很高) -
注意:主键和具有unique约束的字段自动会添加索引。
根据主键查询效率较高。尽量根据主键检索。索引底层采用的数据结构是:B + Tree -
数据库设计三范式
-
第一范式:任何一张表都应该有主键,并且每一个字段原子性不可再分。
-
第二范式:建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部分依赖。
-
第三范式:建立在第二范式的基础之上,所有非主键字段直接依赖主键,不能产生传递依赖。
-
mysql特别注意语句
最新推荐文章于 2024-10-01 17:33:05 发布