创建表
CREATE TABLE sample
(
id INT NOT NULL,`sample`
stringname VARCHAR(20) NOT NULL)
删除表
IF EXISTS // 判断当前表是否存在
DROP TABLE IF EXISTS sample ;
插入数据
INSERT INTO 表名
( 列1, 列2, ..., 列N)
VALUES
( 值1, 值2,..., 值N)
简化写法
INSERT INTO student
VALUES ('20181009','小张','18799891829','1992-4-19')
查询数据
select * from 表名 where 过滤条件
WHERE id='20180001'
WHERE id <>'20180001';/* 不等于 */
WHERE phone IS NULL;/* 手机号为空 */
WHERE birthday >='2000-1-1';/* 00后 */
多个条件可以用 AND OR
例如
WHERE id >'20180002' AND id <'20180005'
WHERE id <'20180002' OR id >'20180005'
指定列查询
select name, birthday from student where id<20180003;
更新数据
使用UPDATE 命令可以更新数据
UPDATE 表名 SET 列名='value' WHERE 过滤条件
示例:
UPDATE student SET phone='13810099890'
WHERE id='20180001'
UPDATE student
SET phone=NULL
WHERE id >='20180001' AND id <='20180003'
删除数据
用 DELETE 命令可以删除指定的行
delete from 表名 where 过滤条件
注意:如果不加where限制,则会删除所有行
结果集
更改列标签
SELECT id AS `学号`, `name` AS `姓名`
FROM student
结果集排序
SELECT *
FROM student
WHERE sex ='1' ORDER BY id ASC ,birthday DESC
按照id升序,如果id相同按照生日降序
ASC表示升序 ( ascending )
DESC表示降序 ( descending )
高级查询
范围查询
使用 IN 可以指定一个查询范围
示例
SELECT * FROM student
WHERE id IN ('20180001','20180003','20180005');
用IN指定一个列表,凡在此列表中的则符合条件
( 注: NOT IN 表示不在列表)
相似查询
对于字符串字段,可以使用精确查询或相似查询
精确查询: where name='张良'
相似查询:
where name LIKE '%良%'
where name LIKE '张%'
where name LIKE '张%良'
注:对于Oracle, SQL Server 通配符可能不是%
使用函数
SELECT * FROM student
WHERE YEAR(birthday)>=1980
AND YEAR(birthday)<1990;
其中YEAR(birthday),就是MySQL内嵌的函数,可以求日期字段的年份( 百度: MySQL 函数)