使用DELETE FROM table_name删除的表可以回滚,删除速度相对较慢。
■创建表:
CREATE TABLE table_name;
■删除表:
DROP TABLE table_name;
■插入数据:
1.INSERT INTO table_name [(字段1,字段2,字段3,…)] VALUES (值1,值2,…);
如果向表中的每个字段都插入一个值,那么前面[]括号内字段名可写也可不写。
2.INSERT INTO pet VALUES('Puffball','Diane','hamster','f','1999-03-30',NULL);
3.从 源表 中筛选符合条件的记录,批量插入到 (指定的)目标表 中:
insert into 目标表(字段1, 字段2,...字段n) select 字段1, 字段2,...字段n from 源表 where 条件
4.向表中插入条数据:
insert into articles (id, content,userid)
values (2,’hahaha’,11),(null,’xixixi’,10),(13,’aiaiai’,1),…;
■删除数据:
DELETE FROM table_name WHERE id=’10’;
delete语句不能删除某一列的值,可使用update更新列值。
使用delete语句仅删除记录,不删除表本身,删除表使用drop table语句。
■更新数据:
UPDATE pet SET birth = '1989-08-31'WHERE name = 'Bowser' ORDER BY birth DESC;
ASC(升序,默认方式);DESC(降序)
WHERE 和 ORDER 语句也可用于查询select 与 删除delete
■查询数据:
1.SELECT * FROM pet WHERE name = 'Bowser';
SELECT * FROM pet WHERE birth > '1998-1-1';
SELECT * FROM pet WHERE species = 'dog' AND sex ='f';
SELECT * FROM pet WHERE species = 'snake' OR species= 'bird';
SELECT * FROM pet WHERE (species = 'cat' AND sex ='m')
OR(species = 'dog' AND sex = 'f');
SELECT name, birth FROM pet;
SELECT chinese+english+math FROM Students; //列之间可以进行运算
2.增加关键字DISTINCT检索出每个唯一的输出记录,把相同的记录值取其中一个即可。
SELECT DISTINCT owner FROM pet; //distinct [d 'st kt] 截然不同的
3.使用一个WHERE子句结合行选择与列选择:
SELECT name, species, birth FROM pet
WHEREspecies = 'dog' OR species = 'cat';
SELECT name, birth FROM pet WHERE species = 'dog' ORDERBY birth;
默认排序是升序,最小的值在第一。要想以降序排序,在你正在排序的列名上增加DESC(降
序)关键字:
SELECT name, birth FROM pet ORDER BY birth DESC;
5.可以对多个列进行排序,并且可以按不同的方向对不同的列进行排序:
SELECT name, species, birth FROM pet
ORDER BY species, birth DESC;
注意DESC关键字仅适用于在它前面的列名(birth);不影响species列的排列顺序。
6.MySQL提供了几个函数,可以用来计算日期,例如,计算年龄或提取日期部分:
SELECT name, birth, CURDATE(),((YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(),5)
SELECT name, birth, death FROM pet WHERE death ISNOT NULL ORDER BY birth;
使用deathIS NOT NULL而非death != NULL,因为NULL是特殊的值,不能使用普通比较符来比较。
7.MySQL提供几个日期部分的提取函数,例如YEAR( )、MONTH( )和DAYOFMONTH()。
SELECT name, birth, MONTH(birth) FROM pet;
SELECT name, birth FROM pet WHEREMONTH(birth) = 5;
概念上,NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。不能使用算术比较操作符例如=、<或!=。
请注意在MySQL中,0或NULL意味着假而其它意味着真。布尔运算的默认值是1.
8.同表查询:
SELECTa.id,a.nikename,a.address FROM users a,users b WHERE b.nikename=’haha’
anda.id>b.id;
也可写成
SELECT id,nikename,addressFROM users WHERE id>(SELECT id FROM users WHERE nikename=’haha’);
补充:在WHERE子句中经常使用的运算符
比较运算符
>、< 、<= 、>= 、= 、<>
大于、小于、大于(小于)等于、不等于
BETWEEN …AND…
显示在某一区间的值
IN(set)
显示在IN列表中的值,例:IN(100,200)
LIKE ‘张pattern’
模糊查询
IS NULL
判断是否为空
逻辑运算符
AND
多个条件同时成立
OR
多个条件任一成立
NOT
不成立,例:where not(salary>100);
注:LIKE语句中,%代表零个或多个任意字符,_代表一个字符,例firstname like ‘_a%’;