创建表
CREATE TABLE users(
-> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
-> username VARCHAR(20) NOT NULL,
-> password VARCHAR(20) NOT NULL,
-> age TINYINT UNSIGNED NOT NULL DEFAULT 18,
-> sex BOOLEAN
-> );
插入记录,id为自动编号,可以输入NULL实现整条记录插入
INSERT users VALUES(NULL,‘Ace’,‘123’,18,1);
也可以用default
INSERT users VALUES(DEFAULT,‘Luffy’,‘123’,18,1);
可以写入数学表达式37表示年龄
INSERT user VALUES(DEFAULT,‘veii’,‘123’,37,1);
同时添加多条记录 (md5 是一个函数,用来记录某个字符串的md5的哈希值)
INSERT users VALUES(DEFAULT,‘ace’,‘123’,19,1),(DEFAULT,‘ACE’,md5(‘123’),DEFAULT,0);
INSERT users VALUES(DEFAULT,‘ace’,md5(‘123’),38,1),(DEFAULT,‘Luffy’,md5(‘2’),37,1);
一次只能插入一条记录
INSERT users SET username=‘veii’,password=‘212’;
查询users表age=20的username.并将username结果插入test表(查找的username 插入test时需要写出来test(username))
INSERT test(username) SELECT username FROM users WHERE age = 20;
更改数据,users表中的age全部+5
UPDATE users SET age = age + 5;
同时修改表中的age和sex
UPDATE users SET age = age -id,sex = 0;
表中id为偶数的条件下,age+10(WHERE)
UPDATE users SET age = age + 10 WHERE id % 2 = 0;
删除表中id=5的数据
DELETE FROM users WHERE id = 5;
只查找users表中的username 和 id 两行,出现的id在后面,username在前面
SELECT username,id FROM users;
查找users表中的id和username在多表连接时使用。防止多表字段名一样
SELECT users.id,users.username FROM users;
用tbl_name.* 表示所有列
SELECT users.* FROM users;
查询id和username显示别名,显示结果为studentID和studentName(AS)
SELECT users.id AS studentID,users.username AS studentName FROM users;
查找id = 5的数据,只显示id和username列
SELECT users.id,users.username FROM users WHERE id = 5;
根据sex的结果分组,只会出现两条数据sex=0;sex=null;
SELECT sex FROM users GROUP BY sex;
根据第二个id分组。
SELECT sex,id,username FROM users GROUP BY 2;
一般常用
SELECT id,sex,username FROM users GROUP BY sex;
查询结果按照id的升序显示
SELECT id,sex,username FROM users GROUP BY id ASC
查询结果按照id的降序显示
SELECT id,sex,username FROM users GROUP BY id DESC;
(HAVING)后面跟条件,后面的age必须出现在前面,不然不能使用。除非放在函数里
SELECT sex FROM users GROUP BY age HAVING age > 5;
SELECT sex FROM users GROUP BY sex HAVING count(age)>5;
ORDER BY 对查询结果进行排序。DESC为降序,ASC为升序。
以age升序,age相同则以id降序
SELECT * FROM users ORDER BY age ASC , id DESC;
LIMIT 限制返回数据
SELECT * FROM users LIMIT 2; //返回前两条
SELECT * FROM users LIMIT 2,2;//从第三条开始,返回两条数据