MySQL数据库

MySQL——基本语句

2017-10-07  本文已影响0人  SolaTyolo

Mysql-基础语法

导语

本博文主要是简述选择数据库和对表内容的增、删、改和查的一些基本语法

USE

语法:

SHOW

语法:

tips : Mysql支持用DESCRIBE COLUMNS; 来代替SHOW COLOMNS FROM tableName;
更多SHOW用法可以用help SHOW来查看

CREATE

语法:

CREATE TABLE `table`
(
    id int NOT NULL AUTO_INCREMENT,
    name char(50) NOT NULL DEFAULT 'hello',
    phone char(20) NULL,
    PRIMARY KEY (id)
    FOREIGN KEY(phone) REFERENCES othertable(id)
)ENGINE=InnoDB;

创建了一个名为table的表,拥有三列:id列是整形数据、非空、自增,name列字符型数据、非空、默认值为hello,phone字符型数据,可空。

tips:

  • 通常仅在表不存在是创建:CREATE TABLE IF NOT EXISTS table(···)
  • 在创建表时用:PRIMARY KEY(id)来创建主键,主键值必须唯一,主键也可以是多列联合
  • AUTO_INCREMENT表示自增,通常和单列主键配合使用,一个表只能有一个自增列
  • DEFAULT来指定默认值
  • NULL允许空值,插入行数据时允许不给出该列的值
  • ENGINE=InnoDB表示用InnoDB这个搜索引擎
  • FOREIGN KEY(phone) REFERENCES othertable(id)来创建外键phone指向另一个表的主键

ALTER

更新表结构

语法:

tips:

  • 删除表:DROP TABLE table;
  • 清空表: TRUNCATE TABLE table
  • 重命名表:RENAME TABLE table TO table1;

INSERT

语法:
INSERT INTO table(col1,col2,···)VALUES(value1,value2,···);

tips:

  • 如果表定义时对某行允许了空值或者设置了默认值,那INSERT操作可以省略该行
  • 因为INSERT操作是很耗时的,所以有时加入LOW_PRIORIRY降低优先级:INSERT LOW_PRIORITY INTO
  • 插入多行数据时每组值用()INSERT INTO table(col1,col2,···)VALUES(value1,value2,···),(value1,value2,···),(···);

UPDATE

语法:

DELETE

语法:

tips: 可用TRUNCATE TABLE table来代替DELETE FROM table,前者是直接删除表本身,再创建同名表,比后者速度快。

SELECT

语法:

DISTINCT

表示只返回不同值

用法 : SHOW DITINCT id FROM ···; ,DISTINCT只能放在列名最前面

LIMIT

限制返回数目

用法 :

ORDER BY

关系型数据库中,如果没有明确排序顺序,检索出来的数据顺序无意义

用法:

tips:

  • 通常字典排序是不区分大小写的
  • order by子句要在from子句之后,若是和limit联用,要放limit之前。与where联用,放where之后。

WHERE

根据where子句来对检索进行过滤

用法:

tips:

  • 可以用ANDOR来连接多个where子句,形成高级where
  • 若是有ANDOR组成的高级WHERE时,会先优先处理AND的语句的组合,所以为了避免组合错误应该使用()来明确组合,消除歧义。
  • WHERE子句中用NOT来否定之后所跟的任何条件

LIKE

LIKE后面跟的搜索模式利用通配符匹配

%(匹配任何字符出现任意次)

用法:

_(匹配单字符)

用法:

tips:

  • 通配符的效率较低,要尽可能避免使用
上一篇下一篇

猜你喜欢

热点阅读