mysql 常用 SQL 语句

 

(1)创建数据表同时将查询结果写入到数据表

     CREATE TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]  select_statement

 

(2)参照另一个表的数据来更新一个表

     UPDATE table1 (inner join, left join, right join) table2 ON table1.x = table2.x SET column=table2.x 

 

(3)插入另一个表的数据

    INSERT INTO table1(col1, col2, ...) (select col1, col2 from table2)

 

    如果本来记录存在中则更新,否则就插入(需要建立 UNIQUE KEY)

     INSERT INTO table (a,b,c) VALUES (1,2,3)  ON DUPLICATE KEY UPDATE c=c+1; 

 

(4)修改表的某列的类型

 

    ALTER TABLE table_name CHANGE col1(原列名) col2(新的列名) SMALLINT UNSINGED NOT NULL,

    如果要多列的修改,添加 ‘,’就可以了

 

(5)创建表

    CREATE TABLE [IF NOT EXISTS] table_name (xx,xx )

 

(6)插入记录

    INSERT INTO table_name(col1, col2) values(xx, xx2)

    如果不指定某列的数据,则使用它的默认值 DEFAULT 

 

(7)单表更新

    UPDATE TABLE table_name SET col1=xx1 WHERE condition。

 

(8)多表更新

    UPDATE tb1 (LEFT | RIGHT | INNER) JOIN tb2

        ON tb1.xxx = tb2.xxx

    SET tb1.xxx = tb2.xxx

        WHERE tb1.xxx = xx

 

(9)单表删除

    DELETE table_name WHERE condition

 

(10)查询语句

        SELECT * FROM table_name

            WHERE xxx

            GROUP BY co1

            HAVING conditon (条件语句的col 必须出现在 select xx 语句中,或者为聚合函数sum、avg等函数)

            ORDER BY xx

            LIMIT num;

 

(11)多表删除

        select goods_id, goods_name from tdb_goods GROUP BY goods_name HAVING count(goods_name) > 2 ,某个goods_name 重复的数据

        DELETE tbl_name[.*], [, tbl_name[.*]]

            FROM table_references 

            WHERE where_condition

        比如:DELETE t1 FROM tdb_goods AS t1 LEFT JOIN (SELECT goods_id, goods_name FROM tdb_goods GROUP BY goods_name HAVING count(goods_name) >=2 ) AS t2 ON t1.goods_name = t2.goods_name

WHERE t1.goods_id > t2.goods_id 

        删除同一个表里 goods_name 相同的数据

 

连接查询

   连接类型:

        join, cross join 和 join 是等价的, left[outer] join 左外连接, right[outer] join  右外连接

 

     连接条件:

        使用 ON 来作连接条件,也可以使用 where 来作连接条件。一般采用 ON 来作连接条件,然后使用  where 来过滤记录

 

     连接的区别:

        a. 内连接 (inner join , join , cross join)

            显示左表及右表符合连接条件的记录,相当与 两个表的交集

 

        b. 左外连接(left join)

            显示左表的全部记录及右表符合连接条件的记录(备注:如果右表中没有符合条件的记录,则返回 NULL)

            A LEFT JOIN B join_condition

            数据表 B 的结果集依赖数据表A。

            数据表 A的结果集根据左连接条件依赖所有数据表(B表除外)

            左外连接条件决定如何检索数据表 B (在没有指定 WHERE 条件的情况下)

            如果数据表A 的某条记录符合 WHERE 条件,但是在数据表 B 不存在符合连接条件的记录,将生成一个所有列为空的额外的 B 行

 

        c. 右外连接(right join)

            小时右表的全部记录及左表符合连接条件的记录(备注:如果左表中没有符合条件的记录,则返回 NULL)

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值