mysql学习笔记3
插入记录 INSERT
INSERT [INTO] tbl_name [(col_name,...)] {VALUES|VALUE} ({expr|DEFAULT},...),(...),...
插入记录-范例
CREATE TABLE users(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
password VARCHAR(32) NOT NULL,
age TINYINT UNSIGNED NOT NULL DEFAULT 10,
sex BOOLEAN
);
//插入几条记录
INSERT users VALUES(NULL,"Tom","123",25,1);
INSERT users VALUES(DEFAULT,"Tom","123",25,1);
//写入多条记录
INSERT users VALUES(DEFAULT,"JOHN","123",25,1),(NULL,"Rose",md5("123"),DEFAULT,0);
如果想要id遵守默认的编号 只需要设置该列为NULL或者DEFAULT即可.如果有字段设置过DEFAULT 那么该列可以添加DEFAULT;
插入记录,使用子查询
INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},...
只能一次性插入一条记录
范例
INSERT users SET username="Ben",password="456";
单表更新记录UPDATE
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT},[, col_name2={expr2|DEFAULT}]...[WHERE where_condition]
范例
UPDATE users set age=age+5;
让users表中age加5.
范例2-更新多列
UPDATE users SET age=age-id,sex=0;
指定记录更新
UPDATE users SET age=age+10 WHERE id%2=0;
单表删除记录DELETE
DELETE FROM tbl_name [WHERE where_condition]
范例
DELETE FROM users WHERE id = 5;
删除后再插入一条记录 即使ID号不连续,那么新插入的id是已有的最大id+1
表达式解析
查找记录 SELECT
查找前两列
SELECT id,username FROM users;
别名
SELECT id AS userID,username AS uname FROM users;
group by 语句对查询结果分组
GROUP BY {col_name|position} [ASC|DESC],...]
对分组的结果进行分组
按照性别分组
SELECT sex FROM users GROUP BY sex;
having语句设置分组条件
SELECT sex,age FROM users GROUP BY sex HAVING count(id);
order by 语句对查询结果进行排序
[ORDER BY {col_name|expr|position} [ASC|DESC],...]
范例
SELECT * FROM users ORDER BY id DESC;
SELECT * FROM users ORDER BY age ASC,id DESC;
如果age遇到了相同的 那么再进行id排序
LIMIT
范例
SELECT * FROM users LIMIT 2
返回两条记录
SELECT * FROM users LIMIT 3,2 //id 4,5
从3开始向后截取两条记录3非id,指的是结果集中的第三条语句.数据库从0开始算,所以3会返回至id为4,5
插入记录
CREATE TABLE test1(
id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20)
);
跨表写入数据
INSERT test1(username) SELECT username FROM users WHERE age>=10;