day1
1.使用create table语句的(fulltext)子句,在创建基本表时可以启用全文本搜索
2.删除一列:alter table emp drop column addcolumn
3.查找表结构:DESC
4.在视图上不能完成的操作是(D)
A.查询 B.在视图上定义新的视图 C.更新视图 D.在视图上定义新的表
day2
1.从group by分组的结果集中再次用条件表达式进行筛选的子句是(having)
1.查询中用到的bai关键词主要包含六个,并且他们的du顺序依次为
select--from--where--group by--having--order by
其中select和from是必须zhi的,其他关键词是dao可选的,这六个关键词的执行顺序
与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行
from--where--group by--having--select--order by,
from:需要从哪个数据表检索数据
where:过滤表中数据的条件
group by:如何将上面过滤出的数据分组
having:对上面已经分组的数据进行过滤的条件
select:查看结果集中的哪个列,或列的计算结果
order by :按照什么样的顺序来查看返回的数据
2.from后面的表关联,是自右向左解析的
而where条件的解析顺序是自下而上的。
也就是说,在写SQL文的时候,尽量把数据量大的表放在最右边来进行关联,
而把能筛选出大量数据的条件放在where语句的最下面。
2.表达式降序排列是DESC,升序排列是ASC
升序:select * from 表名 order by 表中的字段 asc(MySQL中默认是升序排列,可不写) ;
降序:select * from 表名 order by 表中的字段 desc ;
3.条件“between 20 and 30”表示年龄在20-30之间,且包含20岁和30岁;
表示时间则有所不同:
MySQL本身是包含右边界的,如果是datetime,数据格式则会被转换为:2018-10-01 00:00:00,数据类型本身是date则不会出现上述问题。
SELECT * FROM userinfo WHERE xm='xiaoming' and datetime BETWEEN'2020-01-01' and '2020-01-31'
这种写法 查询出来的数据并不会包括 2020-1-31 日的数据,因为MySQL对日期的查询是默认“00:00:00”,所以上面的时间区间实际为:2020-01-01:00:00:00——2020-01-31:00:00:00,31日当天的数据是不在区间内的,所以查询不到。
解决方法:
1,把日期往后推一天,2018-10-01 - 2018-11-01
2,把右边界的时间精确到边界,2018-10-01 - 2018-10-31 23:59:59
补充:
以上问题只会在字段类型为‘DateTime’中会出现
4.DML操作:insert、update、delete
day3
1.关系数据库中,主键是(标识表中唯一的实体)
2.使用select语句随机的从表中挑出指定数量的行,可以使用的方法是(在order by子句中使用rand()函数,并用limit子句定义行数)
3.MySQL主从架构如下:
主 192.168.1.1 从 192.168.1.2
需要在从库上采用mysqldump备份并记录主库binlog、position点,需要加哪个参数(不考虑其他参数)(--dump-slave)