码迷,mamicode.com
首页 > 数据库 > 详细

MySQL常用语句汇总

时间:2015-10-21 17:29:55      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

一、库操作

1、创建数据库,创建时可以指定字符集和排序规则

CREATE DATABASE [IF NOT EXISTS] db_name
  [create_specification] ...
create_specification:
  [DEFAULT] CHARACTER SET [=] charset_name
  [DEFAULT] COLLATE [=] collation_name

2、删除数据库

DROPDATABASE [IF EXISTS] db_name;

3、修改数据库字符集合排序规则,如果是Innodb存储引擎还可以通过修改数据库目录中的.opt文件

ALTER DATABASE db_name
  [DEFAULT] CHARACTER SET [=] charset_name
  [DEFAULT] COLLATE [=] collation_name

#查看数据库支持的字符集和排序规则
SHOW CHARACTER SET;
SHOW COLLATION;
 

二、表操作

1、创建表

1、直接创建一张空表
CREATE TABLE [IF NOT EXISTS] tbl_name
  (create_definition,...)
  [table_options]
  [partition_options]
2、从另一张表查询数据并创建新表,不会保存原有表结构
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
  [(create_definition,...)]
  [table_options]
  [partition_options]
   select_statement
3、以另一张表为模板并创建一张新表
CREATE TABLE [IF NOT EXISTS] tbl_name LIKE old_tbl_name;

2、修改表

ALTER TABLE tbl_name
  [alter_specification [, alter_specification] ...]
  [partition_options]
1、添加字段
ADD col_name column_definition [FIRST | AFTER col_name];
2、删除字段
DROP  col_name;
3、修改字段
MODIFY col_name column_definition;  #只能修改字段定义
CHANGE old_col_name new_col_name column_definition;  #可以修改字段名
4、添加索引或键
ADD {INDEX | KEY} [index_name] [index_type] (index_col_name,...) [index_option] ...
5、删除索引或键
DROP {INDEX | KEY} index_name;
6、删除主键
DROP PRIMARY KEY;
7、修改表名
RENAME [TO | AS] new_tbl_name;
8、创建外键
ADD FOREIGN KEY [index_name] (index_col_name,...) reference_definition;

3、删除表

DROP TABLE [IF EXISTS] tbl_name;

 

三、DML语句

1、SELECT

  1、简单查询

SELECT field1,firld2... FROM tb_name; 投影
SELECT * FROM tb_name WHERE where_condition; 选择
/*
WHERE过滤支持的操作符:
    1、条件表达式 + - * / %
    2、逻辑关系 AND OR NOT
    3、正则表达式 REGP| RLIKE
    4、特殊操作符
        BETWEEN... AND... 两个条件之间
        LIKE %string% 匹配字符串
            _匹配任意单个字符串
            %匹配任意长度字符串
        IN 成员关系测试
        NOT IN
        IS NULL 空值测试
        IS NOT NULL 非空测试
 */

  2、子句

1、ORDER BY子句基于一个或多个列按升序或降序顺序排列数据
    ORDER BY column1, column2, .. {ASC(升序)|DESC(降序)}
    SELECT * FROM ORDER BY field_name;

2、LIMIT子句用于限制由SELECT语句返回的数据数量
    LIMIE [offset]count;
    SELECT * FROM COMPANY LIMIT 5;
    SELECT * FROM COMPANY LIMIT 2, 3;

3、聚合函数
    SUM() 求和
    MIN() 最小值
    MAX() 最大值
    AVG() 平均数
    COUNT() 次数

4GROUP BY子句用于对相同的数据进行分组,GROUP BY子句必须放在WHERE子句中的条件之后,必须放在ORDER BY子句之前
    GROUP BY column1, column2...;
    SELECT field1, SUM(field2) FROM tb_name GROUP BY field2;

5、HAVING子句用于由 GROUP BY子句创建的分组上设置条件
    支持操作符和WHERE子句一样

6、字段别名、表别名
    SELECT field1 AS new_field_name FROM tb_name AS new_tb_name;

  3、联合查询

1、... LEFT JOIN ....ON ...  左连接
2、... RIGHT JOIN ... ON ... 右连接
3UNION 联合查询
4FROM tb1, tb2 WHERE xxx
5FROM (select_statement) 子查询

2、INSERT

1INSERT INTO tb_name(col1, col2...) VALUES (value1, value2... ), ();
2INSERT INTO tbname SET col1=value1, col2=value2...;
3INSERT INTO tb_name (select_statement);

3、UPDATE

UPDATE tb_name SET col=value1, col=value2... WHERE ...;一定要跟WHERE条件,负责会修改全表的内容
 

4、DELETE

DELETE FROM tb_name WHERE ...;
一定要跟WHERE条件,负责会清空表
使用DELETE清空表后,AUTO_INCREMENT计数器不会清零,若是要清空表使用TRUNCATE tb_name;

5、VIEW

1CREATE VIEW view_name AS select_statement;
2DROP VIEW view_name;

 

四、数据类型

数值
  整数
    TINYINT 1字节,取值-128 - 127 | 0 - 255
    SMALLINT 2字节,取值-32768 - 32767 | 0 - 65535
    MEDIUMINT 3字节,取值-8388608 - 8388607 | 0 - 16777215
    INT | INTEGER 4个字节,取值-2147483648 - 2147483647 | 0 - 4294967295
    BIGINT 8个字节,取值-92333720368547758089223372036854775807 | 0 - 18446744073709551615
  浮点数
    FLOAT 4字节,单精度
    DOUBLE 8字节,双精度
    DECIMAL 对DECIMAL(M,D)如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 精确小数值

字符
    CHAR() 0-255字节 定长字符串
    VARCHAR() 0-255字节 变长字符串
    BINARY() 定长二进制字符串
    VARBINARY() 变长二进制字符串
文本对象
    TINYTEXT 0-255字节 短文本字符串
    TEXT 0-65535字节 长文本数据
    MEDIUMTEXT 0-16777215字节 中等长度文本数据
    LONGTEXT 0-4294967295字节 极大文本数据
    TINYBLOB 0-255字节 不超过255个字符的二进制字符串
    BLOB 0-65535字节 二进制形式的长文本数据
    MEDIUMBLOB 0-16777215字节 二进制形式的中等长度文本数据
    LOGNGBLOB 0-4294967295字节 二进制形式的极大文本数据

日期时间
    DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
    TIME 3 -838:59:59/838:59:59 HH:MM:SS 时间值或持续时间
    YEAR 1 1901/2155 YYYY 年份值
    DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
    TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

其他
    ENUM ENUM类型在系统内部可以存储为数字,并且从1开始用数字做索引。一个ENUM类型最多可以包含65536个元素,其中一个元素被MySQL保留,用来存储错误信息,这个错误值用索引0或者一个空字符串表示。
    SET 一个SET类型最多可以包含64项元素。在SET元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以SET类型中不可能包含两个相同的元素。
 

五、约束修饰符

1NOT NULL 不能为空
2、UNSIGNED 无符号
3DEFAULT 为字段自定一个默认值
4PRIMARY KEY 主键
5UNIQUE KEY 唯一键
6、FORIGEN KEY 外键
7、AUTO_INCREMENT 自动递增

MySQL常用语句汇总

标签:

原文地址:http://www.cnblogs.com/xiaohao8391/p/4869664.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!