MySQL基本语句――增、删、查、改

1.数据库的创建、修改、删除

创建:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification];

例如:

CREATE DATABASE IF NOT EXISTS test CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

修改:

ALTER {DATABASE | SCHEMA} [db_name] alter_specification;

通常只能修改数据库字符集及排序规则。

删除:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;

2.表的创建、修改、删除

创建:表的创建有三种方式

    直接定义一张空表

CREATE TABLE [IF NOT EXISTS] tb_name (字段名称 字段定义,...) [table_options];

    从其它表中查询出数据,并以之创建新表:字段的格式定义将不会存在

CREATE TABLE [IF NOT EXISTS] tb_name [(字段名称 字段定义,...)]
    [table_options] select_statement;

    以其它表为模板创建一个空表

CREATE TABLE [IF NOT EXISTS] tb_name LIKE old_tb_name;

修改:

ALTER TABLE tbl_name
    [alter_specification [, alter_specification] ...];

alter_specification:

    ADD:添加字段、索引、约束。

    CHANGE | MODIFY:修改字段定义,change可以修改字段名称,而modify不行。

    DROP:删除字段、索引、约束。

    RENAME [TO|AS]:重命名表名。

    CONVERT TO CHARACTER SET:修改默认字符集。

删除:

DROP TABLE [IF EXISTS] tbl_name

3.索引的创建、删除

创建:

CREATE INDEX index_name ON tb_name (col_name [(length)] [ASC | DESC],...);

length:索引的长度,表示从最左侧起比较多长的字符。

ASC:升序排序。

DESC:降序排序。

删除:

DROP INDEX index_name ON tbl_name;

4.查询操作

简单查询:投影、选择

SELECT select-list FROM tb WHERE qualification;

FROM子句:要查询的关系。

WHERE子句:

    布尔关系表达式:=、<、>、>=、<=。

    逻辑关系:AND、OR、NOT。

    BETWEEN ... AND...:在谁和谁之间。

    LIKE:

        %: 任意长度任意字符
        _:任意单个字符

    REGEXP, RLIKE:和LIKE相似,支持正则表达式。

    IN:做离散取值,表示在某个列表当中。

    IS [NOT] NULL:是否为空。

ORDER BY field_name [ASC|DESC]:将查询后的结果排序。

字段别名:AS

LIMIT子句:LIMIT [offset,]count

    offset:表示偏移量,略过前offset条符合条件的结果。

    count:显示前count条符合条件的结果。

聚合:SUM(), MIN(), MAX(), AVG(), COUNT()。

GROUP BY: 分组

    HAVING qualification:在分组中过滤条件。

多表查询
    连接:
        交叉连接:笛卡尔乘积。
        自然连接:具有相同名字的属性上所有取值相同的行。

        外连接:以左表或右表为准,如果另一张表中没有对应值则显示NULL.
            左外连接:tb_name LEFT JOIN tb_name ON condition
            右外连接: tb_name RIGHT JOIN tb_name ON condition
        自连接:将同一张表中的查询结果连接在一起。

子查询

    比较操作中使用子查询:子查询只能返回单个值。
    IN():在IN中使用子查询。
    在FROM中使用子查询。

5.插入操作

INSERT INTO tb_name (col1, col2, ...) VALUES (val1, val2, ...)[,(val1, val2, ...);
INSERT INTO tb_name SET col1=expr,col2=expr,...;
INSERT INTO tb_name (col1, col2, ...) SELECT ...;

注:第三种表示将select语句的查询结果插入到表中,二、三中不能批量插入。

6.删除操作

DELETE FROM tb_name WHERE condition;

7.更新操作

UPDATE tb_name SET col1=..., col2=... WHERE condition;

你可能感兴趣的:(mysql)