插入记录(第一种方式):
1、先创建一张数据表:
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);
2、插入记录:
INSERT users VALUES(NULL,'Tom','123',25,1);
INSERT users VALUES(NULL,'John','456',25,1);
3、查询记录:
SELECT * FROM users;
4、id字段使用DEFAULT:
INSERT users VALUES(DEFAULT,'John','456',25,1);
SELECT * FROM users;
5、注意使用如下的命令插入一条记录会报错:
INSERT users VALUES(NULL,'John','456',25,);
因为使用的是 INSERT users,要求对所有的字段进行插入操作,这里缺少最后一个字段sex,所以会报错。
6、可以使用如下的带有表达式的命令进行插入操作:
INSERT users VALUES(DEFAULT,'Tom','123',3*7-5,1);
7、对age字段使用默认值插入:
INSERT users VALUES(DEFAULT,'Tom','123',DEFAULT,1);
8、插入多条记录,同时使用函数表达式:
INSERT users VALUES(DEFAULT,'Tom','123',3*7-5,1),(NULL,'Rose',md5('123'),DEFAULT,0);
SELECT * FROM users;
插入记录(第二种方式):
1、INSERT users SET username='Ben',password='456';
SELECT * FROM users;
更新记录:
1、UPDATE users set age = age + 5;
SELECT * FROM users;
2、UPDATE users SET age = age - id,sex = 0;
SELECT * FROM users;
3、UPDATE users SET age = age + 10 WHERE id % 2 = 0;
SELECT * FROM users;
删除操作:
1、DELETE FROM users WHERE id = 6;
SELECT * FROM users;
INSERT users VALUES(NULL,'111','222',33,NULL);
SELECT * FROM users;
查找操作:
最简单的查找操作:
1、SELECT VERSION();
SELECT NOW();
SELECT 3 + 5;
关于查询表达式 select_expr 的相关解释:
1、每一个表达式表示想要的一列,必须有至少一个;
2、每个列之间以英文逗号分隔;
3、星号(*)表示所有列。tbl_name.*可以表示命名表的所有列;
4、查询表达式可以使用 [AS]alias_name为其赋予别名;
5、别名可用于GROUP BY,ORDRE BY或HAVING子句。
举例演示如下:
1、SHOW COLUMNS FROM users;
2、SELECT id,username FROM users;
也可以将两个字段值颠倒过来:
3、SELECT username,id FROM users;
4、SELECT users.id,users,username FROM users;
5、SELECT id AS userId,username AS uname FROM users;
6、SELECT id username FROM users;(注意,此处只会显示一列username,且该列的实际值为id字段的值,此处的意思是省略了AS关键字,把username作为了id字段的别名)
条件表达式WHERE:
1、对记录进行过滤,如果没有指定WHERE子句,则显示所有记录;
2、在WHERE表达式中,可以使用MySQL支持的函数或运算符。
查询结果分组GROUP BY:
1、SELECT sex FROM users GROUP BY sex;
2、SELECT sex FROM users GROUP BY 1;
分组条件HAVING:
1、SELECT sex,age FROM users GROUP BY 1 HAVING age > 35;
2、SELECT sex FROM users GROUP BY 1 HAVING count(id) >= 2;
对查询结果进行排序ORDER BY:
1、SELECT * FROM users ORDER BY id DESC;(根据id降序排列,输出查询结果)
2、SELECT * FROM users ORDER BY age;(默认为根据age升序排列,输出查询结果)
3、SELECT * FROM users ORDER BY age,id DESC;(虽然默认为根据age升序排列,但中间可能有相同的age值,这时候其id字段也是以升序排列的,我们把age值相同的id字段值以降序排列,可以使用再在后面加 id DESC 即可)
限制查询结果返回的数量:
1、SELECT * FROM users LIMIT 2;(只返回两条记录)
2、SELECT * FROM users LIMIT 3,2;(表示从第三条记录开始,返回查询到的两条记录。注意:数据表中的记录下标从0开始)
3、同样也可以将 ORDER BY 和LIMIT 两个控制字结合起来使用,举例如下:
SELECT * FROM users ORDER BY id DESC LIMIT 2,2;(先将数据表users根据id字段降序排列,然后限制只输出查询到的从第2条记录开始的两条记录)
将INSERT命令和SELECT命令结合起来使用,即创建一个空数据表test,然后将数据表users中的符合某些条件的记录找到,插入到新创建的数据表test中,注意,新创建的数据表test中应该有与users相同的字段。举例如下:
1、新创建一个数据表test:
CREATE TABLE(id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,username VARCHAR(20));
2、将users表中的符合age值大于30的username字段找出来,插入到表test中:
INSERT test(username) SELECT username FROM users WHERE age >= 30;
知识点总结:
关于数据表的增、删、查、改的操作,做一个小总结如下:
1、增:INSERT
共有三种方式:直接插入,加SET关键字插入,结合SELECT语句插入。
2、删:DELETE
分为单表删除和多表删除,此处仅学习了单表删除,多表删除后面再介绍。
单表删除方式为:DELETE 加 WHERE 关键字。
3、查:SELECT
可以结合 FROM、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT这几种关键字进行查找操作。
4、改:UPDATE
分为单表更新和多表更新,此处仅学习了单表更新,多表更新后面再介绍。
单表更新删除方式为:UPDATE 加 SET 关键字。
1、先创建一张数据表:
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);
2、插入记录:
INSERT users VALUES(NULL,'Tom','123',25,1);
INSERT users VALUES(NULL,'John','456',25,1);
3、查询记录:
SELECT * FROM users;
4、id字段使用DEFAULT:
INSERT users VALUES(DEFAULT,'John','456',25,1);
SELECT * FROM users;
5、注意使用如下的命令插入一条记录会报错:
INSERT users VALUES(NULL,'John','456',25,);
因为使用的是 INSERT users,要求对所有的字段进行插入操作,这里缺少最后一个字段sex,所以会报错。
6、可以使用如下的带有表达式的命令进行插入操作:
INSERT users VALUES(DEFAULT,'Tom','123',3*7-5,1);
7、对age字段使用默认值插入:
INSERT users VALUES(DEFAULT,'Tom','123',DEFAULT,1);
8、插入多条记录,同时使用函数表达式:
INSERT users VALUES(DEFAULT,'Tom','123',3*7-5,1),(NULL,'Rose',md5('123'),DEFAULT,0);
SELECT * FROM users;
插入记录(第二种方式):
1、INSERT users SET username='Ben',password='456';
SELECT * FROM users;
更新记录:
1、UPDATE users set age = age + 5;
SELECT * FROM users;
2、UPDATE users SET age = age - id,sex = 0;
SELECT * FROM users;
3、UPDATE users SET age = age + 10 WHERE id % 2 = 0;
SELECT * FROM users;
删除操作:
1、DELETE FROM users WHERE id = 6;
SELECT * FROM users;
INSERT users VALUES(NULL,'111','222',33,NULL);
SELECT * FROM users;
查找操作:
最简单的查找操作:
1、SELECT VERSION();
SELECT NOW();
SELECT 3 + 5;
关于查询表达式 select_expr 的相关解释:
1、每一个表达式表示想要的一列,必须有至少一个;
2、每个列之间以英文逗号分隔;
3、星号(*)表示所有列。tbl_name.*可以表示命名表的所有列;
4、查询表达式可以使用 [AS]alias_name为其赋予别名;
5、别名可用于GROUP BY,ORDRE BY或HAVING子句。
举例演示如下:
1、SHOW COLUMNS FROM users;
2、SELECT id,username FROM users;
也可以将两个字段值颠倒过来:
3、SELECT username,id FROM users;
4、SELECT users.id,users,username FROM users;
5、SELECT id AS userId,username AS uname FROM users;
6、SELECT id username FROM users;(注意,此处只会显示一列username,且该列的实际值为id字段的值,此处的意思是省略了AS关键字,把username作为了id字段的别名)
条件表达式WHERE:
1、对记录进行过滤,如果没有指定WHERE子句,则显示所有记录;
2、在WHERE表达式中,可以使用MySQL支持的函数或运算符。
查询结果分组GROUP BY:
1、SELECT sex FROM users GROUP BY sex;
2、SELECT sex FROM users GROUP BY 1;
分组条件HAVING:
1、SELECT sex,age FROM users GROUP BY 1 HAVING age > 35;
2、SELECT sex FROM users GROUP BY 1 HAVING count(id) >= 2;
对查询结果进行排序ORDER BY:
1、SELECT * FROM users ORDER BY id DESC;(根据id降序排列,输出查询结果)
2、SELECT * FROM users ORDER BY age;(默认为根据age升序排列,输出查询结果)
3、SELECT * FROM users ORDER BY age,id DESC;(虽然默认为根据age升序排列,但中间可能有相同的age值,这时候其id字段也是以升序排列的,我们把age值相同的id字段值以降序排列,可以使用再在后面加 id DESC 即可)
限制查询结果返回的数量:
1、SELECT * FROM users LIMIT 2;(只返回两条记录)
2、SELECT * FROM users LIMIT 3,2;(表示从第三条记录开始,返回查询到的两条记录。注意:数据表中的记录下标从0开始)
3、同样也可以将 ORDER BY 和LIMIT 两个控制字结合起来使用,举例如下:
SELECT * FROM users ORDER BY id DESC LIMIT 2,2;(先将数据表users根据id字段降序排列,然后限制只输出查询到的从第2条记录开始的两条记录)
将INSERT命令和SELECT命令结合起来使用,即创建一个空数据表test,然后将数据表users中的符合某些条件的记录找到,插入到新创建的数据表test中,注意,新创建的数据表test中应该有与users相同的字段。举例如下:
1、新创建一个数据表test:
CREATE TABLE(id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,username VARCHAR(20));
2、将users表中的符合age值大于30的username字段找出来,插入到表test中:
INSERT test(username) SELECT username FROM users WHERE age >= 30;
知识点总结:
关于数据表的增、删、查、改的操作,做一个小总结如下:
1、增:INSERT
共有三种方式:直接插入,加SET关键字插入,结合SELECT语句插入。
2、删:DELETE
分为单表删除和多表删除,此处仅学习了单表删除,多表删除后面再介绍。
单表删除方式为:DELETE 加 WHERE 关键字。
3、查:SELECT
可以结合 FROM、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT这几种关键字进行查找操作。
4、改:UPDATE
分为单表更新和多表更新,此处仅学习了单表更新,多表更新后面再介绍。
单表更新删除方式为:UPDATE 加 SET 关键字。