MySQLMySQL常因而言语

一、前言

  今每一天气很好,大晴天,心情也美的。就将MySQL常因而底语总计一下,记录在随笔里,也顺手分享分享。日后,这首小说我拿会合不停革新,作为我要好的MySQL语句大全。

二、常用SQL语句

  我将出于外及里开展编辑(数据库及表再到数量)

  库层:

  1、SHOW DATABASES;

  2、CREATE DATABASE dbname;

  3、DROP DABABASE dbname;

  4、ALTER DATABASE dbname set=新字符集 collate=新校对集;

  5、USE dbname;

  6、SHOW CREATE DATABASE dbname;

  表层:

  1、创立表形式:

  CREATE TABLE tabname

  (

           字段名1,数据类型 [列级别约束规范] [默认值],

       字段名1,数据类型 [排级别约束原则] [默认值],

     …

      [表明级别约束规范]

  );

    a、使用主键约束PRIMARY KEY

       两单地方长:1、列约束原则地点(PRIMARY KEY) 
2、表级别约束规范位置([CONSTRAINT <约束名>]  PRIMARY KEY
[字段名])

    b、使用唯一性约束UNIQUE

       同齐一丁点儿独地点长:1、UNIQUE  2、[CONSTRAINT <约束名>] 
UNIQUE(<字段名>)

      
与主键的界别,两者如出一辙要求唯一,不过UNIQUE可以是NULL,主键不得以。且一个表中PRIMARY
KEY只好是一个,UNIQUE可以在三只。

    c、使用外键约束(InnoDB) FOREIGN KEY

       一个地方长:1、表级别约束规范地点补加 [CONSTRAINT
<外键名>]  FOREIGN KEY 字段名1[,字段名2,…]  REFERENCES
<主表名> 主键列 [,主键列2,….]

 
  注意:七只表明中爆发了外键的牵连,不克平昔去主表,否则会拧!若得要去除主表,可以预先去外键,再来删除主表。

    d、非空约束 NOT NULL

       一个地发添加:1、列约束规范位置  NOT NULL

    e、使用默认约束 DEFAULT

       一个职务添加:1、列约束规范地方  DEFAULT 默认值

    f、设置表的属于性值自动增加  AUTO_INCREMENT

       一个职务添加:1、列约束原则地点  AUTO_INCREMENT

    注意:此时之排列必须是主键或者唯一键!

   
索引问题:以下是通常索引、全文索引、空间引得。下边创立约束之又也是制造相应的目录,主键索引、唯一索引等等。

    g、普通索引 INDEX/KEY

       一个职添加:1、列约束原则地点  INDEX(<字段名>);

    h、全文索引(MyISAM) FULLTEXT

       一个职添加:1、列约束规范地点  FULLTEXT KEY [‘名字’]
(‘字段名’);

    i、创立空间引得(MyISAM) SPATIAL

       一个职添加:1、列约束原则地方  SPATIAL KEY [‘名字’]
(‘字段名’);

  2、DESCRIBE/DESC tabname;

  3、SHOW CREATE TABLE tabname;

  4、DROP TABLE [IF EXISTS] <表名>;

  5、ALTER TABLE <表名> ENGINE=<更改后的积存引擎>;

  6、ALTER TABLE <旧表名> RENAME [TO] <新表名>;

  7、ALTER TABLE <表名> MODIFY <字段名> <数据类型>;

  8、ALTER TABLE <表名> CHANGE <旧字段名> <新字段名>
<新数据类型>;

  9、ALTER TABLE <表名> ADD <新字段名> <新字段类型>
[封锁规范] [FIRST|AFTER 已存在的配段名];

  10、ALTER TABLE <表名> MODIFY <字段1> <数据类型>
FIRST|AFTER <字段2>;

  11、ALTER TABLE <表名>DROP <字段名>;

  #每当曾部分表上创造索引

  12、ALTER TABLE <表名> ADD INDEX [索引名] (字段名);

  13、ALTER TABLE <表名> ADD PRIMARY KEY (字段名);

  14、ALTER TABLE <表名> ADD FOREIGN KEY (字段名) REFERENCES
<主表名> (主键字段);

  15、ALTER TABLE <表名> ADD UNIQUE KEY (字段名);

  16、ALTER TABLE <表名> ADD FULLTEXT KEY(字段名);

  17、ALTER TABLE <表名> ADD SPATIAL KEY (字段名);

  18、ALTER TABLE <表名> ALTER <字段名> SET DEFAULT
默认值;

  #删去索引

  19、ALTER TABLE <表名> ALTER <字段名> DROP DEFAULT;

  20、ALTER TABLE <表名> DROP PRIMARY KEY;

  21、ALTER TABLE <表名> DROP FOREIGN KEY 外键名;

  22、ALTER TABLE <表名> DROP INDEX 索引名;

  23、DROP INDEX index_name ON tabname;

  数据层:

  1、插入数据

  INSERT INTO tabname (column_list) VALUES (value_list);

  INSERT INTO tabname (column_list) VALUES
(value_list1),(value_list2),….,(value_listn);

  INSERT INTO tabname SET 字段名1=值1,字段名2=值2,…..,字段名n=值n;\

  2、更新数据

  UPDATE tabname SET
column_name1=value1,column_name2=value2,…column_namen=valuen WHERE
(condition);

  3、删除数据

  DELETE FROM tabname[WHERE <condition>];

  TRUNCATE [TABLE] tabname;

  DELETE和TRUNCATE的区别:TRUNCATE直接删除所有表,再创一个一如既往的注脚。

  4、数据查询

  (1)、SELECT {*|<字段列表>}

  [

  FROM <表1>,<表2>,…,<表n>

  WHERE <表达式>

  GROUP BY <分组字段>

  HAVING <expression>

  ORDER BY <排序字段>

  LIMIT <num>

  ]

  (2)、SELECT [字段1,字段2,…,字段n] from [表|视图] WHERE
[询问条件];

  (3)、连接查询

  a、内连接查询  SELECT tab1.* tab2.* FROM tab1 INNER JOIN tab2 ON
<condition>;

  b、左连接查询  SELECT tab1.* tab2.* FROM tab1 LEFT [OUTER] JOIN
tab2 ON <condition>;

  c、右连接查询  SELECT tab1.* tab2.* FROM tab1 RIGHT [OUTER] JOIN
tab2 ON <condition>;

  (4)、合并查询结果

       SELECT column,… FROM tab1

       UNION [ALL]

       SELECT column,…FROM tab2;

 

(以上是上下一心之组成部分视角,若暴发不足或失实的地方要各位提议)

作者:那么一叶随风

宣称:本博客著作为原创,只象征本人于办事学习着某一时间内总的视角依旧结论。转载时请在篇章页面显然地方被起原先和链接。

 

网站地图xml地图