mysql 语句 注意
distinct 只能对整个请求语句而言,而不是其前置列
在同时使用where 和 order by的时候,需要将 order by 放在后面
where a=1 or a=2 and b=3 的计算顺序是:a=1 or (a=2 and b=3) 即and 的优先级比or高
表达式中的like 是对列值的匹配 regexp 正则表达式是在列值内匹配,在使用正则表达式的时候,其默认是不区分大小写的,可以使用binary 来指定区分大小写,在基于正则表达式中采用\\来引用元字符。验证表达式:select 'hello' REGEXP '[0-9]'
在进行人或者物的检索的时候,有的时候不能精确的定义名称,可以采用如下的soundex。select cust_name ,cust_contract from customers where soundex(cust_name) =soundex('li jiaija')
在对 db中的时间进行比较的时候,最好采用:select date(列)---'2012-12-23'/year(列)/time(列)列中的值如:2012/12/23 12:12:12
avg 函数对NULL 值行忽略 不进行任何的采集 (分子、分母都不含有)
count(*) 考虑 NULL 列 count(指定) 不考虑NULL
对于 avg 、sum 可以加入 distinct
group by 字句 必须出现在where 字句之后,order by 字句之前
where 在数据分组前进行过滤,having 在数据分组后进行过滤
inner join 自联结 自然联结 外部联结
可以设定删除或者插入的优先级 如insert low_priority into ...
在执行updata 指令的时候,当出现错误信息的时候,会导致本次整个updata行为回滚,为了即使在发生错误的情况下也会提交数据,这里特意设定ignore 来忽略错误的行为:update ignore customer
可以使用truncate table 来删除表中的数据
mysql 不可以使用函数作为默认值,只能使用常量
可以重新命名一个表:rename table original to target
视图不能索引,不能有关联的触发器
采用show create view viewname 来查看视图
视图中的内容是可以更新的,但不是所有的视图都是可以更新的,即如果mysql 不能正确的确定被更新的基数据,则不允许更新。(如分组、联结、子查询、并、聚集)、distinct、导出计算列
在创建一个新的表可以指定其对应的字符集以及校对规则
a varchar(10) character set *** collation ***
我们可以通过show character set 来查看支持的字符集
可以在order by 指令后添加 校对规则 collation **
查看一个表的定义语句,采用 describe table或者desc table 或者explain table
或者show columns from talbe 或者 show fileds from table.如果你只想看到某个列的值,可以采用desc table ‘%***’ 表达式或者 show columns from table like '%name'
show 语句查询的东西,同样也可以采用 mysqlshow来查看
外键的内容,要么是建立索引的,要么是组合索引的第一个
导入数据可以采用如下的方式:
基于是sql 语句
mysql ku<**.sql
mysql>source **.sql
基于是数据记录
load data local file '**.data' into table ** 改方法,有可能会执行失败,因为在某些情况下,改功能是关闭的,你可以采用如下的方式开启:mysql --local-file 数据库