MySQL插入数据
语法: INSERT INTO table_name(field1,field2,field3,...fieldN) VALUES (value1,value2,value3,...valueN,)
如果数据是字符型,必须使用单引号或者是双引号,如"value"。
如: insert into student(username, age, sex, height) values("mengli", 26, 2, 165);
MySQL查询数据
1 语法:SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N][OFFSET M]
以下语句将取出学生表的全部记录:
如:select * from student;
有时取出所有信息数据量太大,浪费内存。比如只想查询所有同学的名字,则可以指定要查询的字段: SELECT username FROM student;
2. DISTINCT关键字
使用DISTINCT关键字可以指定某一列或者多列不重复,语法为:SELECT DISTINCT fields FROM table_name,
这样一来紧跟在DISTINCT后面的列将排重后显示出来,优先保留排在前面的行。
如:SELECT DISTINCT username FROM student;
结果:
MySQL WHERE 子句
该指令用于筛选由SELECT指令查询出的数据,本身不可以单独使用。
语法:SELECT field1,field2,...filedN from table_name1, table_name2...WHERE表达式(表达式由列,运算符值组成。)
列指的是表内规定好的列,运算符包括:=, !=,<,>,<=,>=,BETWEEN...AND...区间运算符,表示在某个闭区间内,LIKE 搜索运算符,搜索某个模式。
知道上述规则后,通过列、运算符和值的不同组合,就可以实现筛选。
如想查找60分以上的学生的ID和名字,SQL语句为:SELECT id,name, FROM student WHERE score >60;
BETWEEN AND 运算符
这是一个比较特殊的运算符,表示在某个区间内。比如要查询分数在 60 和 70 分之间的学生 ID 和名字,SQL 语句为: SELECT id, name FROM student WHERE score BETWEEN 60 AND 70;
LIKE 运算符
该运算符一般用于搜索,表示包含某个值。LIKE后跟的值中应使用通配符「%」表示任意字符串。
「%」放在值前表示以某值结尾,放在值后表示以某值开头,开头和结尾都有表示只要包含某个值就可以。
比如想搜索名字中包含文的学生ID和姓名,SQL 语句为: SELECT id, name FROM student WHERE name like "%文%"。
多个条件
WHERE 支持后跟多个筛选条件(即表达式),多个表达式之间可以有两种逻辑关系,
如下: AND 表示逻辑与关系,即当 AND 左右的表达式都成立时才筛选出 OR 表示逻辑或关系,当 OR 两边有一个表达式成立时就筛选出
如下 SQL 语句查询大于 20 岁且分数在 60 分以上的学生 ID 和姓名: SELECT id, name FROM student WHERE age > 20 AND score > 60
UPDATE
UPDATE table_name SET 列 = 值 (修改后的内容) WHERE 表达式
值、WHERE、表达式的语法同上。假设现在想修改陈文豪的成绩为 99,SQL 语句如下: UPDATE student SET score = 99 WHERE id = 1
修改数据时如果不指定 WHERE 子句将修改整个表的数据,因此 WHERE 子句一定要准确无误。如下语句的功能是将年龄超过 20 岁的学生分数统一修改为 100: UPDATE student SET score = 100 WHERE age > 20
DELETE
删除数据,需要 WHERE 指令配合,如果不使用 WHERE 子句将删除全表数据,语法为: DELETE FROM table WHERE 表达式
假设想删除陈文豪的数据,SQL 语句如下: DELETE FROM student WHERE id = 1
如果想删除所有分数高于 60 分的学生,SQL 语句如下: DELETE FROM student WHERE score > 60
ORDER BY 该关键字用来给查询到的结果排序。
ORDER BY 后跟一个或多个列,表示要根据某列排序,同时支持 ASC 和 DESC 关键字。
语法为: SELECT fields FROM table WHERE 表达式 ORDER BY 列名 关键字
ASC 关键字 根据 ASCII 标准顺序排序,即数字从 0-9,字母从 a-z 排序。默认就是使用这种顺序,因此该关键字可以省略。
DESC 关键字 倒序排序。
如下语句实现根据分数正序查询学生的 ID 和姓名: SELECT id, name FROM student ORDER BY score
倒序排序则为: SELECT id, name FROM student ORDER BY score DESC
还可以和 WHERE 配合使用,比如查询分数高于 60 分的学生 ID 和姓名,
按分数正序排列: SELECT id, name FROM student WHERE score > 60 ORDER BY score
ORDER BY 允许同时指定多个列,使用英文逗号隔开,根据顺序如果前边的列值相等,则按后一列排序
如: SELECT id, name FROM student WHERE score >= 60 ORDER BY score, age
上述 SQL 语句首先查询出分数大于等于 60 分的学生,同时根据分数和年龄正序排序。由于张大彪和费德勒都是 60 分,再根据年龄排序,得出张大彪在前的顺序。
7. LIMIT
这是 MySQL 独有的关键字,不在 SQL 标准中。用于截取查询结果的某一区间,往往在 SQL 语句的末尾。LIMIT 后跟两个整数参数,中间使用英文逗号隔开,语法如 下: SELECT fields FROM student LIMIT 值1,值2
其中第一个值表示从查询到的数据第 X+1 行(和数组下标一样第一行为 0)开始,第二个值表示继续保留 X 行数据。
第二个值可以忽略,当只输入第一个值时表示截取前 X 行数据。
使用 SELECT 查询出的结果往往很大,为了精简无用信息我们使用 WHERE 做进一步的筛选,
但有时候往往只需要筛选到的一部分数据,这时就要用到 LIMIT 关键字。 网站中常见的分页功能就是使用 LIMIT 实现。
如下 SQL 将查询 3 个学生出来: SELECT id, name FROM student LIMIT 3
如下 SQL 将查询分数前三名学生的 ID 和姓名,原理是先根据分数排名,然后取中前三条数据
如: SELECT id, name FROM student ORDER BY score LIMIT 3
也可以取出第四名和第五名,如下语句中表示从第 4 行开始(3+1)取两行
SELECT id, name FROM student ORDER BY score LIMIT 3, 2
通过 SQL,您如何返回 "Persons" 表中记录的数目?
SELECT COUNT(*) FROM Persons
联合查询
联合查询是SQL规范中比较复杂的部分。关系型数据库以关系模型为基础,表与表之间存在着某种关系可以相互联系,想要查找两个或多个表中有联系的数据时,就需要联合查询。联合查询即可以分为外连接,内连接,全连接。内连接使用JOIN关键字,外连接又分为左连接和右连接,分别使用LEFT JOIN和 RIGHT JOIN关键字,全连接使用FULL JOIN关键字。
display: box
https://blog.csdn.net/weixin_30681615/article/details/95422242