常用sql 、 数据库导入导出 、 优化 、更改用户密码、全文搜索
===语句===
DISTINCT用于返回唯一不同的值
对指定列进行返回组合的唯一
SELECT DISTINCT `userRole`, `userChannel`,`userInviteUid` FROM `t_user`
LIKE 操作符 _,%
SELECT * FROM Persons WHERE City LIKE 'N%'
注:在用索引时,支持用 '字符%/_'
IN 操作符允许我们在 WHERE 子句中规定多个值
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
BETWEEN 操作符 值可以是数值、文本或者日期;包括两头
SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'
SELECT * FROM Persons WHERE LastName
NOT BETWEEN 'Adams' AND 'Carter'
JOIN
LEFT JOIN
SELECT * FROM `A` LEFT JOIN `B` ON `A`.aID = `B`.bID
是以A表的记录为基础的,left join是以左表为准的.
左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
RIGHT JOIN
SELECT * FROM `A` LEFT JOIN `B` ON `A`.aID = `B`.bID
以右表(B)为基础的,A表不足的地方用NULL填充
INNER JOIN
SELECT * FROM `A` INNER JOIN `B` ON `A`.`A`ID = `B`.bID
只显示符合条件的记录,即列出A、B都有的。(INNER JOIN 与 JOIN 相同)
FULL JOIN
SELECT * FROM `A` FULL JOIN `B` ON `A`.`A`ID = `B`.bID
只要其中某个表存在匹配(返回所有的行),FULL JOIN 关键字就会返回行
UNION 操作符用于合并两个或多个 SELECT 语句的结果集 UNION ALL
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
SELECT COUNT(column_name) FROM table_name
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)
SELECT MIN(column_name) FROM table_name
AVG(),MAX(), MIN(),SUM()函数
SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY CustomerHAVING SUM(OrderPrice)<2000
HAVING 子句
GROUP BY 语句合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句
======
日期时间
NOW() 返回当前的日期和时间
CURDATE() 返回当前的日期
CURTIME() 返回当前的时间
UNIX_TIMESTAMP(date) 获取unix时间截
SELECT DATE('2008-12-29 16:25:46.635')
DATE(date) 提取日期或日期/时间表达式的日期部分
SELECT EXTRACT(YEAR FROM '2008-12-29 16:25:46.635')
EXTRACT(unit FROM date) 返回日期/时间按的单独部分
SELECT DATE_ADD('2008-12-29 16:25:46.635',INTERVAL 2 DAY)
DATE_ADD(date,INTERVAL expr type) 给日期添加指定的时间间隔
DATE_SUB(date,INTERVAL expr type) 从日期减去指定的时间间隔
SELECT DATEDIFF('2009-12-30','2008-12-29') AS DiffDate
DATEDIFF(date1,date2) 返回两个日期之间的天数
SELECT DATE_FORMAT(NOW(),'%Y %m %d %h:%i %s')
DATE_FORMAT(date,format) 用不同的格式显示日期/时间
字符串味道
SELECT LCASE(column_name) FROM table_name
UCASE 函数把字段的值转换为大写
LCASE 函数把字段的值转换为小写
SELECT MID(`login`, 1, 3) from `user`
MID(c,start[,end]) 函数用于从文本字段中提取字符,MID(column_name,start[,length]),start从1开始
SUBSTRING(c,start[,end]), substring(),同MID
LEFT(c,number_of_char)
RIGHT(c,number_of_char)
SELECT ROUND(column_name,decimals) FROM table_name
ROUND(c,decimals) 函数用于把数值字段舍入为指定的小数位数。decimals小数位数
FORMAT(c,format)
===================================================================
运算符###########################################
=,!=(<>),>,>=,<,<= 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('www.tom.com','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 用户名
----------------------------------------------------------
全文搜索怎么建立?
例如: 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> 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 > 多个数据库备份
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:wcnc_db.sql (注:如果写成source d:\wcnc_db.sql,就会报语法错误)
--------------------------------------------------
优化表:
mysql>optimize table;
------------------------------------------------
消除数据表中的重复数据:
select distinct 字段 from 表名;
---------------------------------------------------------------
查出服务器支持哪个存储引擎
mysql> SHOW ENGINES;
分享到:
相关推荐
5.2 字符串函数 5.2.1 计算字符串长度 5.2.2 字符串转换为小写 5.2.3 字符串转换为大写 5.2.4 截去字符串左侧空格 5.2.5 截去字符串右侧空格 5.2.6 截去字符串两侧的空格 5.2.7 取子字符串 5.2.8 ...
5.2 字符串函数 5.2.1 计算字符串长度 5.2.2 字符串转换为小写 5.2.3 字符串转换为大写 5.2.4 截去字符串左侧空格 5.2.5 截去字符串右侧空格 5.2.6 截去字符串两侧的空格 5.2.7 取子字符串 5.2.8 ...
5.2 字符串函数 5.2.1 计算字符串长度 5.2.2 字符串转换为小写 5.2.3 字符串转换为大写 5.2.4 截去字符串左侧空格 5.2.5 截去字符串右侧空格 5.2.6 截去字符串两侧的空格 5.2.7 取子字符串 5.2.8 ...
5.2 字符串函数 5.2.1 计算字符串长度 5.2.2 字符串转换为小写 5.2.3 字符串转换为大写 5.2.4 截去字符串左侧空格 5.2.5 截去字符串右侧空格 5.2.6 截去字符串两侧的空格 5.2.7 取子字符串 5.2.8 ...
5.2 字符串函数 5.2.1 计算字符串长度 5.2.2 字符串转换为小写 5.2.3 字符串转换为大写 5.2.4 截去字符串左侧空格 5.2.5 截去字符串右侧空格 5.2.6 截去字符串两侧的空格 5.2.7 取子字符串 5.2.8 ...
MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度 5.BLOB TEXT类型,最大长度为65535(2^16-1)个字符...
o 7.1 文字:怎样写字符串和数字 + 7.1.1 字符串 + 7.1.2 数字 + 7.1.3 十六进制值 + 7.1.4 NULL值 + 7.1.5 数据库,表,索引,列和别名的命名 # 7.1.5.1 名字的大小写敏感性 o 7.2 用户变量 o 7.3 列类型 ...
7.4.7 类型转换运算符 7.4.8 控制流函数 7.4.9 数学函数 7.4.10 字符串函数 7.4.11 日期和时间函数 7.4.12 其他函数 7.4.13 与GROUP BY子句一起使用的函数 7.5 CREATE DATABASE ...
7.4.4 逻辑运算 7.4.5 比较运算符 7.4.6 字符串比较函数 7.4.7 类型转换运算符 7.4.8 控制流函数 7.4.9 数学函数 7.4.10 字符串函数 7.4.11 日期和时间函数 7.4.12 ...
空字符串“”是不等于null,0也不等于null create table temp( id int not null, name varchar(255) not null default ‘abc’, sex char null ) 上面的table加上了非空约束,也可以用alter来修改或增加非空约束 ...
查询数据是数据库操作中最常用,也是最重要的操作。用户可以根据自己对数据的需求,使用不同的查询方式。通过不同的查询方式,可以获得不同的数据。MySQL中是使用SELECT语句来查询数据的。在这一章中将讲解的内容...
MYSQL高级特性 81 4.1 集合函数 82 4.1.1 行列计数 82 4.1.2统计字段值的数目 82 4.1.3 计算字段的平均值 83 4.1.4 计算字段值的和 84 4.1.5 计算字段值的极值 84 4.1.6 总结 86 4.2 操作...
varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...
MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度 5.BLOB TEXT类型,最大长度为(2^16-1)个字符。 6...
大多数SQL实现支持以下类型的函数: 文本处理, 算术运算, 日期和时间, 数值处理。 Null:空值 空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price...
MYSQL高级特性 81 4.1 集合函数 82 4.1.1 行列计数 82 4.1.2统计字段值的数目 82 4.1.3 计算字段的平均值 83 4.1.4 计算字段值的和 84 4.1.5 计算字段值的极值 84 4.1.6 总结 86 4.2 操作...
实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...
实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...
拼接字符串,结果为:‘党工委副书记,总支副书记,党支部书记,党委书记,党委副书记,党总支书记,党工委书记,党总支副书记,党支部副书记’ 1.8.9 相似度 1.8.9.1 语法 select utl_match.edit_distance_similarity('...