Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1146209
  • 博文数量: 221
  • 博客积分: 10152
  • 博客等级: 上将
  • 技术积分: 1518
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-22 10:42
文章分类

全部博文(221)

文章存档

2018年(1)

2015年(6)

2014年(3)

2013年(4)

2012年(1)

2011年(5)

2010年(14)

2009年(10)

2008年(28)

2007年(33)

2006年(114)

2005年(2)

我的朋友

分类: Mysql/postgreSQL

2006-10-20 11:48:45

数据库都不精通还玩P网络编程?我也是菜鸟慢慢来,一点点积累,高手是练出来的.一起进步.

 

 

运算符###########################################

 

=,!=(<>),>,>=,<,<= is null , is not null, isnull(expr) expr between min and max expr in(v1,v2,...)

 

流程#############################################

mysql> select ifnull(1,0); #如果第一个参数为NULL,则返回第二个参数值,否则返回原值.

 

------------------------------------------------

 mysql>select case 1 when then 'one' when 2 when 'two' else 'more' end;

------------------------------------------------

 mysql>select if(1>0,'ok','no') #如果条件为真则返回OK,否则返回NO.

------------------------------------------------

 mysql>select nullif(1,2) #如果exp1 = exp2则返回NULL,否则返回exp1

------------------------------------------------

 

 

字符串###########################################

 mysql>select ASCII('a'); #返回字符串最左边那个字符的ASCII码值

 

-----------------------------------------------

mysql>select oct(12); #返回字符串表示的八进制形式.

-----------------------------------------------

mysql>select hex(255); #返回字符串的十六进制形式.

-----------------------------------------------

mysql>select char(3333342); #返回ASSCII码值对应的字符串

------------------------------------------------

mysql>select char_length('text') #返回字符串的个数

 

------------------------------------------------

 mysql>select length(text) #返回字符串的字节数

________________________________________________

mysql>select concat('str1','str2','str3','str4','strn',) #将参数连接成字符串返回

-------------------------------------------------

 mysql>select locate('字串','母串') #返回字串在母串中第一次出现的位置,如果不存在则返回0

-------------------------------------------------

mysql>select lpad('str',11,'.');

mysql>select rpad('str',11,'.'); #用字符串对str进行左边或右边填充直到他的长度达到11.

-------------------------------------------------

 

mysql> select left('strstrstr',5); #返回字符串最左边的N个字符. mysql>select right('strstrstr',5); #返回字符串最右边的N个字符.

-------------------------------------------------

mysql> select substring('xxxxxx',3,3); #从字符串的第三个字个位置起截取三个字符.

-------------------------------------------------

mysql> select ltrim(str);

mysql>select rtrim();

mysql> select trim(' str ');

mysql> select trim(both 'x' from 'xxx..xxx'); #去空格

-------------------------------------------------

 

mysql> select space(6); #返回门个空格

-------------------------------------------------

 

mysql> select repeat('str',3); #返回重复三次的字符串

-------------------------------------------------

mysql>select replace('','tom','sina'); #字符串替换

-------------------------------------------------

mysql>select reverse('abc'); #字符串颠倒

-------------------------------------------------

 mysql>select lower('UPPER');

mysql>select upper('lower'); #转换大小写

--------------------------------------------------

 

mysql> update table set filed = load_file('/tmp/file'); where id=1; #读入文件

 --------------------------------------------------

 

mysql> select abs(-1); #返回绝对值

--------------------------------------------------

 

mysql> select 4 div 2; #除

--------------------------------------------------

 

mysql> select 5 mod 2; #余

--------------------------------------------------

 

mysql> select floor(x) #返回不大于X的最大整数值

--------------------------------------------------

 

mysql> select ceiling(x) #返回大于X的最小整数

 --------------------------------------------------

 

mysql> select round(2.23) #四舍五入

__________________________________________________

 

时间 mysql>select now(); select now() + 0; #返回时间

 

--------------------------------------------------

 mysql>select curdate(); select curdate() + 0; #返回年月日

--------------------------------------------------

 mysql>select curtime(); select curtime() + 0 #返回小时分秒

--------------------------------------------------

 mysql>select database() #返回当前数据库的名子

--------------------------------------------------

mysql>select user();

select system_user();

select session_user(); #返回当前MYSQL用户名子

---------------------------------------------------

 mysql>select password('abc'); #口令加密

---------------------------------------------------

 

删除所有表记录 #truncate table 表名;

#速度快于delete from table

---------------------------------------------------

加载数据 load data infile /PATH/文件 into table || mysqlimport dbname /PATH/file.txt 相关命令参数如下:

Usage: mysqlimport [OPTIONS] database textfile... --print-defaults 输出程序参数并退出,该选项为缺省值

--no-defaults 不读入缺省参数,该选项为缺省值

--defaults-file=# 从给定的文件中读入参数

-d, --delete 删除表中元素

--fields-terminated-by=name 每个元素之间的分隔符

--fields-enclosed-by=name 将每个元素括起来的符号

-f, --force 如果有sql错误也继续执行 -?,

--help 显示帮组并退出 -h,

--host=name host的名字 -i,

--ignore 如果有重复的行,保持原行

--ignore-lines=# 忽略开始n行

--lines-terminated-by=name 每行元素分隔符

-p, --password[=name] 连接host时使用的密码 -r,

--replace 如果key重复,使用新行代替原行 -u,

--user=name 用户名

----------------------------------------------------------

 如何导出数据?方法一: mysql> select * from 表名 outfile '/PATH/file.sql'

mysql> load data infile '/PATH/file.sql' into table fields terminated by ',';

----------------------------------------------------------

 全文搜索怎么建立?

例如: create table mytable ( name varchar(10), address text, fulltext(name,address) );//OK搞定了

----------------------------------------------------------

 MYSQL全文搜索(FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上创建)

例: mysql>select * from table where match(字段一,字段二,字段三) against('要搜索的关键字');

------------------------------------------------------------

 MYSQL逻辑全文检索?

呵呵 是像这样地: mysql> select * from table where match(字段一,字段二...) against('+要找的数据-不要找的数据');

---------------------------------------------------------

 

补充逻辑全文检索: against里边还可以有什么东东?(1)数据1 数据2: 表示要找到资料当中至少包含数据1或数据2(两数据有一个即可) (2)+ 数据1 +数据2:表示两个数据都要包含在内 (两数据必须同时存在)

 

----------------------------------------------------------

 

MYSQL'查询缓存'是什么东东 接着砍砍? 优点?对于执行大量相同SELECT的操作来说这个东西可以提高查询效率(传说是百分之一秒,现在用的MYSQL是5.0,也许5.0.24会不同了 呢?),MYSQL执行查询的时候他会在内存中留下以往查询的语句,这样如果下次有相同的查询时就直接调用这个(前提条件这些查询语句必须完全相同!差一 点都不行严格到按字节匹配,MYSQL还不支持模糊,并且有过期时间是动态更新的),其实同个SELECT不是这么简单的,他也要经过许多的步骤--》对 MYSQL服务器而言,所以下一个脚本里加上这个功能吧.

 

------------------------------------------------------------

 

 如何查看环境变量查询缓存是否开始?其他状态查询方相同的 mysql>show variables like 'have_query_cache'; mysql>show variables ; //显示所有状态 mysql> show variables like '%关键字%' ==>模糊查找。。。。

----------------------------------------------------------

 

mysql>select sql_cache 字段一,字段二 from table; 指定此语句缓存

'''''sql_no_cache''''''''''''''''''''';。。。。。不缓存

---------------------------------------------------------

 

缓存查询结果的最大值也可自己设置

mysql> set @@global.query_cache_limit=1024; mysql> select @@query_cache_limit;

------------------------------------------------------------

 

 整理缓存。。。相当于硬盘的磁盘清理,不过不要担心,这个不会清掉缓存中的查询

mysql> flush query cache;

------------------------------------------------------------

 

 清空cache ===》这个是会清掉缓存中的所有查询!

mysql> reset query cache ; ==== mysql> flush tables;

----------------------------------------------------------

 

查看缓存状态,

show status like 'qcache%'

----------------------------------------------------

禁止查询缓存

set session query_cache_type = off;

----------------------------------------------------

 具改用户密码:

1. mysqladmin -uuser password mima;

2.mysql> set password for root=password('abcdefg');

3.mysql> update user set password=password('abcdef')

         where user='user1'

 

--------------------------------------------------

优化表:

mysql>optimize table;

------------------------------------------------

数据导入:

mysql> load data infile '/path/file' into table mytable;

or

mysqlimport dbname /path/file.txt

-------------------------------------------------

数据库备份

mysqldump --opt dbname > db.sql

mysqldump --opt dbname table1 table2 > 导出库中的两张表

mysqldump --databases db1 db2 > 多个数据库备份

--------------------------------------------------

 

 

阅读(1506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~