输入banner图图片脚本导航/分类

常用SQL语句(Mysql)总结

库

1)创建数据库:create Database  database_name;

        database_name:(1)首字母不能是数字、$、空格、特殊字符、保留字

                       (2)最大128字节

                       (3)由字母、数字、下划线、@和$组成

2)查看数据库:show databases;

3)选择数据库:use  database_name ;

4)删除数据库:drop database  database_name;

 

 

2.存储引擎

1)查看所支持存储引擎:(1)show engines   (2)show variables like ‘have%‘;

2)查看默认的存储引擎:show variables like ‘storage_engine%‘;

 

 

3.表

1)创建表:create table table_name (属性名数据类型…)

2)查看表结构:

(1)表定义信息:describe  table_name        desc table_name

(2)表详细定义:show  create table  table_name

3)删除表:drop table  table_name

4)修改表(alter table):

(1)修改表名:alter table  老表名 rename新表名

(2)增加字段:(最后)alter table  表名 add 属性名属性类型

           (第一位置)alter table  表名 add 属性名属性类型 first

        (指定字段后)alter table  表名 add 属性名属性类型 after 属性名

 

(3)删除字段:alter table  表名 drop 属性名

(4)修改字段:

(修改数据类型)alter table  表名 modify 属性名属性类型

    (修改字段名)alter table 表名change 旧属性名新属性名旧类型

(同时修改)alter table 表名change 旧属性名新属性名新类型

(修改字段顺序)alter table 表名modify 属性名1 数据类型 FIRSE|AFTER 属性名2

 

 

4.数据操作

1)插入数据

    (1)INSERT INTO  table_name(field1….field n) VALUES(value1…value n)

(2)INSERT INTO  table_name (field1….field n)

VALUES(value1…valuen)…(value11…value mn)

(3)插入查询结果:INSERT INTO  table_name1 (field11….field 1n)

                  SELECT  (field21….field 2n)

                       FROM table_name2

                          WHERE…

2)更新数据:UPDATE table_name SETfield1=value1…fieldn=value n WHERE CONDITION

3)删除记录:DELETE FROM  table_name  WHERE CONDITION

 

 

5.单表数据查询

  1)SELECTfield1,field n FROM table_name

2)避免重复查询:SELECT DISTINCT field1,field n FROM table_name

3)四则运算:用AS定义别名,或省略AS关键字

4)显示格式查询:SELECT CONCAT(field格式) 【AS 别名】FROM table_name

5)条件数据查询:SELECT field1,field n FROM table_nameWHERE CONDITION

         _通配符:匹配单一字符

         %通配符:任意长度字符

6)排序查询:SELECT field1,field n FROM table_nameWHERE CONDITION

                ORDER  BY filedldm1 [ASC|DESC] [,filedldm1 [ASC|DESC],]

7)限制数据记录查询数量:SELECT field1,field n FROM table_nameWHERE CONDITION

                             LIMIT  OFFSET_START,ROW_COUNT

8)统计函数和分组数据记录查询:COUNT()函数、AVG()函数、SUM()函数、MAX()函数、MIN()函数

9)分组数据查询:SELECT function() FROM table_nameWHERE CONDITION GROUP BY field

10)实现统计功能的分组数据查询:SELECT GROUP_CONCAT(field)  FROMtable_name

WHERE CONDITION GROUP BY field

11)多字段分组查询:SELECT GROUP_CONCAT(field), function(field)

FROMtable_name

WHERE CONDITIONGROUP BY field1,field2……fieldn

 12)HAVING子句限定分组查询:SELECT function(field)  FROM table_name

WHERECONDITION

GROUP BYfield1,field2……fieldn

                                HAVINGCONTITION

 

 

6.多表数据查询:

  1)FROM子句利用(,)区分多个表,在WHERE子句中通过逻辑表达式来实现匹配条件

  2)FROM子句用 ”JOIN ON”,ON后接条件

 

 

7.操作表的约束

1)设置非空约束(NOT NULL,NK):create table table_name (属性名类型 NOT NULL );

2)设置字段默认值(DEFAULT):create table table_name (属性名类型 DEFAULT 默认值);

3)设置唯一约束(UNIQUE,UK):create table table_name (属性名类型 UNIQUE L );

4)设置主键约束(PRIMARY KEY,PK):

单字段主键:create table table_name (属性名类型 PRIMARY KEY );

多字段主键:create table table_name (属性名类型 ,…【CONSTRAINT 约束名】 PRIMARY KEY(属性名,属性名…) );

5)设置字段值自动增加(AUTO_INCREMENT):

create table table_name (属性名类型 AUTO_INCREMENT,… );

6)设置外键约束(FOREIGNKEY,FK):

      create table table_name (属性名类型; 属性名类型;…

CONSTRAINT 外键约束名 FOREIGN (属性名1)

REFERENCES 表名(属性名2));

 

 

8.索引

1)创建普通索引

     (1) CREATE TABLE table_name (

属性名数据类型,属性名数据类型,……属性名数据类型,

INDEX |KEY 【索引名】(属性名1【(长度)】【ASC|DESC】));

          注:INDEX 或KEY参数用来指定字段为索引

              不同存储引擎定义了表的最大索引数和最大索引长度

              Mysql所支持的存储引擎对每个表至少支持16个索引,总索引长度至少256

(2)CREATE INDEX  索引名

ON 表名(属性名1【(长度)】【ASC|DESC】));

(3)ALTERTABLE  table_name

ADDINDEX | KEY 索引名(属性名1【(长度)】【ASC|DESC】)

2)创建唯一索引

(1)CREATE TABLE table_name (

属性名数据类型,属性名数据类型,……属性名数据类型,

UNIQUE INDEX| KEY 【索引名】(属性名1【(长度)】【ASC|DESC】));

(2)CREATE UNIQUE INDEX  索引名

ON 表名(属性名1【(长度)】【ASC|DESC】));

(3)ALTER TABLE  table_name

ADDUNIQUE INDEX | KEY 索引名(属性名1【(长度)】【ASC|DESC】)

3)创建全文索引、

(1)CREATE TABLE table_name (

属性名数据类型,属性名数据类型,……属性名数据类型,

FULLTEXTINDEX | KEY 【索引名】(属性名1【(长度)】【ASC|DESC】));

(2)CREATE FULLTEXT INDEX  索引名

ON 表名(属性名1【(长度)】【ASC|DESC】));

(3)ALTER TABLE  table_name

ADDFULLTEXT INDEX | KEY 索引名(属性名1【(长度)】【ASC|DESC】)

4)创建多列查询

      (1) CREATE TABLE table_name (

属性名数据类型,属性名数据类型,……属性名数据类型,

INDEX |KEY 【索引名】(属性名1【(长度)】【ASC|DESC】)

                      …….

属性名n【(长度)】【ASC|DESC】));

(2)CREATE INDEX  索引名

ON 表名(属性名1【(长度)】【ASC|DESC】)

          …….

属性名n【(长度)】【ASC|DESC】));

(3)ALTERTABLE  table_name

ADDINDEX | KEY 索引名(属性名1【(长度)】【ASC|DESC】)

                       …….

属性名n【(长度)】【ASC|DESC】));

5)查询索引:EXPLAIN

6)删除索引:DROP  INDEX  index_nameON table_name

 

 

9.视图

1)创建视图reate view view_name AS 查询语句

2)查看视图:

   (1)名称:USE 库; SHOW TABLES;不仅会显示表名,还会显示视图名

   (2)详细信息:SHOW TABLE  STATUS 【FROM 库】【LIKE ‘关键字’】

   (3)设计信息:DESCRIBE|DESC view_name

   (4)系统数据库information_schema中视图信息的表格views

3)删除视图:DROP VIEW view_name1, view_name1……

4)修改视图:

   (1)替换的创建:create