日期:2014-05-16  浏览次数:20806 次

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 数据库