数据库-mysql

6. DML数据操作语句2

2018-04-19  本文已影响3人  光小月

create table


create table if not exists `employ`(
    id int  unsigned auto_increment,   
    version int(8) not null,
    `create_user` varchar(20),
    `create_time` datetime,
    name varchar(8),
    birthday datetime,
    constraint pk_employee primary key(id)
);

drop table

drop table employ;

insert into

INSERT INTO employ 
(version,`create_user`,`create_time`,name,
 birthday)
 VALUES
 (1, 'asd',now(), 'asd', now());

insert into more

INSERT INTO table_name  (field1, field2,...fieldN)  
VALUES  (valueA1,valueA2,...valueAN),
(valueB1,valueB2,...valueBN),
(valueC1,valueC2,...valueCN)......; 

select sql

SELECT column_name,column_name
FROM table_name
[WHERE binary(条件是区分大小写) condition]
[LIMIT N][ OFFSET M]     

delete table values

delete from tablename;
truncat table tablename;

update table

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]              
 
UPDATE table_name SET field=REPLACE(field, 'old-string', 'new-string') 
[WHERE Clause]

delete table values

DELETE FROM table_name [WHERE Clause]

LIKE ...% 进行模糊匹配

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

union

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
:::DISTINCT: 可选,删除结果集中重复的数据。
默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
:::ALL: 可选,返回所有结果集,包含重复数据。

与oralce 的区别,oracle中的列需要明确,并加入一些分组函数
mysql 可以*, 列的是分组列与min(各列)

select * 
FROM employee_tbl
group by name;

coalesce(name, '总数') 函数与 oracle的nvl2(col, col, alias2)相似


连接

INNER JOIN(内连接,或等值连接:获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录

NULL 值处理

IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
<=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。
NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。

正则表达式

SELECT name FROM person_tbl WHERE name regexp '^st';
上一篇 下一篇

猜你喜欢

热点阅读