数据表操作
索引
显示所有索引信息:Show INDEX FROM xxx <br>增加一个全文索引:ALTER TABLE xxx库.xxx表 ADD FULLTEXT INDEX `索引名`(`索引列`);<br>分析sql执行的状况:EXPLAIN sql语句
创建索引
create index index_name on table_name (column_list [DSC/DESC]) ;<br>create unique index index_name on table_name (column_list) ;<br>
删除索引
drop index index_name on table_name ;<br>alter table table_name drop index index_name ;<br>alter table table_name drop primary key ;
表链接JOIN
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。<br>LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。<br>RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。<br>例 SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author
分组 GROUP BY
GROUP BY 语句根据一个或多个列对结果集进行分组。每种结果显示一个(第一条记录)<br>在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。<br>WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…<br>
排序 ORDER BY
默认ASC升序 或 DESC降序 关键字来设置查询结果排列。<br>SELECT field1, field2,...fieldN FROM table_name1, table_name2...<br>ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]<br>
多表查询 UNION<br>
UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)<br>UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)<br>SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions]<br>UNION [ALL | DISTINCT]<br>SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions];<br>参数<br>expression1, expression2, ... expression_n: 要检索的列。<br>tables: 要检索的数据表。<br>WHERE conditions: 可选, 检索条件。<br>DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。<br>ALL: 可选,返回所有结果集,包含重复数据。<br>
NULL值处理
IS NULL: 当列的值是 NULL,此运算符返回 true。<br>IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。<br><=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。
插入数据 INSERT INTO
INSERT INTO table_name ( field1, field2,...fieldN )<br> VALUES<br> ( value1, value2,...valueN );
删除数据 DELETE
如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。<br>DELETE FROM table_name [WHERE Clause]<br>
更新 UPDATE
UPDATE table_name SET field1=new-value1, field2=new-value2<br>[WHERE Clause]
LIKE 子句
SQL LIKE 子句中使用百分号 %字符来表示任意字符 如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。<br>SELECT field1, field2,...fieldN FROM table_name<br>WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'<br>
数据库操作
使用mysql二进制方式连接
[root@host]# mysql -u root -p<br>Enter password:******
创建数据库
CREATE DATABASE 数据库名;
删除数据库
drop database <数据库名>;
选择数据库
[root@host]# mysql -u root -p<br>Enter password:******<br>mysql> use RUNOOB;<br>Database changed<br>mysql>
数据类型
类型 范围 格式 用途<br>DATE 1000-01-01/9999-12-31 YYYY-MM-DD 日期值<br>TIME '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间<br>YEAR 1901/2155 YYYY 年份值<br>DATETIME 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值<br>TIMESTAMP 1970-01-01 00:00:00/2038 YYYYMMDD HHMMSS 混合日期和时间值,时间戳