记录 SQL 语法(MySQL)
1、DDL
1.1、创建数据库
create datebase `DATABASE_NAME`;
1.2、创建表
create table `TABLE_NAME`(
FIELD_NAME TYPE(int, varchar, ...)
[primary key/unique/auto_increment/foregin key],
...
)
1.3、复制表
/* 复制 表结构 + 数据 */
create table `TABLE_NAME_NEW` as select ...
/* 复制 表结构 */
create table `TABLE_NAME_NEW` like `TABLE_NAME`
例子1:创建表 right_item_new,复制表 right_item 的结构。
create table right_item_new like right_item;
1.4、查看建表语句
show create table TABLE_NAME;
2、增删改查(DML 和 DQL)
2.1、插入语句
insert into TABLE_NAME(FIELD_NAME, ...) value (VALUE, ...);
insert into TABLE_NAME values (VALUE, ...);
2.2、删除语句
delete from TABLE_NAME [where ...]
例子1:有两张表 book_a 和 book_b,有字段 book_id,book_name,book_code(书的编号)等,删除 book_a 表中和 book_b 表 book_id 字段相同的记录。
delete from book_a where book_id in (
select book_id from (
select book_a.book_id from book_a, book_b
where book_a.book_id = book_b.book_id) as t
);
2.3、更新语句
update TABLE_NAME set FIELD_NAME = VALUE, ...
[where ...]
2.4、查询语句
select FIELD, ... from TABLE_NAME
[left/right join TABLE_NAME_2 on ...]
[where ...]
[group by FIELD_NAME][having by ...]
[order by FIELD_NAME][asc/desc]
[limit NUMBER]
3、索引
3.1、创建索引
create index INDEX_NAME on TABLE_NAME(FIELD_NAME);
3.2、删除索引
drop index INDEX_NAME on TABLE_NAME;
3.3、查看 SQL 语句的执行计划
explain ...
4、视图
4.1、创建视图
create view VIEW_NAME as select ....
[with check option]
4.2、删除视图
drop view VIEW_NAME;
5、触发器
5.1、创建触发器
create trigger TRIGGER_NAME
(before/after) TRIGGER_EVENT(insert/update/delete) on TABLE_NAME
for each row
[when ...]
...
5.2、删除触发器
drop trigger TRIGGER_NAME
6、存储过程
6.1、创建存储过程
create procedure PROCEDURE_NAME ([arg, ...])
begin
...
end
6.2、删除存储过程
drop procedure PROCEDURE_NAME;
6.3、创建函数
create function FUNCTION_NAME ([arg, ...])
begin
...
returns type(in/out/inout)
end
6.4、删除函数
drop function FUNCTION_NAME;