zoukankan      html  css  js  c++  java
  • 简单SQL语句

    一、基础

    模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。

    主键的值不允许修改,也不允许复用(不能使用已经删除的主键值赋给新数据行的主键)。

    SQL 语句不区分大小写,但是数据库表名、列名和值是否区分依赖于具体的 DBMS 以及配置。

    SQL 支持以下三种注释:

    # 注释
    SELECT *
    FROM mytable; -- 注释
    /* 注释1
       注释2 */

    数据库创建与使用:

    CREATE DATABASE test;
    USE test;

    二、创建表

    CREATE TABLE mytable (
      id INT NOT NULL AUTO_INCREMENT,
      col1 INT NOT NULL DEFAULT 1,
      col2 VARCHAR(45) NULL,
      col3 DATE NULL,
      PRIMARY KEY (`id`));

    三、修改表

    添加列

    ALTER TABLE mytable
    ADD col CHAR(20);

    删除列

    ALTER TABLE mytable
    DROP COLUMN col;

    删除表

    DROP TABLE mytable;

    四、插入

    普通插入

    INSERT INTO mytable(col1, col2)
    VALUES(val1, val2);

    插入检索出来的数据

    INSERT INTO mytable1(col1, col2)
    SELECT col1, col2
    FROM mytable2;

    将一个表的内容插入到一个新表

    CREATE TABLE newtable AS
    SELECT * FROM mytable;

    五、更新

    UPDATE mytable
    SET col = val
    WHERE id = 1;

    六、删除

    DELETE FROM mytable
    WHERE id = 1;

    TRUNCATE TABLE 可以清空表,也就是删除所有行。

    TRUNCATE TABLE mytable;

    使用更新和删除操作时一定要用 WHERE 子句,不然会把整张表的数据都破坏。可以先用 SELECT 语句进行测试,防止错误删除。

    七、查询

    DISTINCT

    相同值只会出现一次。它作用于所有列,也就是说所有列的值都相同才算相同。

    SELECT DISTINCT col1, col2
    FROM mytable;

    LIMIT

    限制返回的行数。可以有两个参数,第一个参数为起始行,从 0 开始;第二个参数为返回的总行数。

    返回前 5 行:

    SELECT *
    FROM mytable
    LIMIT 5;
    SELECT *
    FROM mytable
    LIMIT 0, 5;

    返回第 3 ~ 5 行:

    SELECT *
    FROM mytable