MySQL之增删改查

运行MySQL

如果没有开启Mysql服务需输入net start mysql;命令

1: cd 到mysql bin目录下:

2:链接到本地数据库:

-h localhost表示链接到本地数据库,-u表示数据库用户名(默认为root),-p表示数据库密码(默认为root) 3:导入sql文件 >mysql>create database dbname;     >mysql>show databases; >mysql>use dbname; >mysql>source c:.sql

4: 删除数据库 >drop database dbname;

5:创建表单:

1
2
3
4
5
6
7
8
CREATE TABLE doubanmovie (
name VARCHAR(100) NOT NULL, # 电影名字
info VARCHAR(150), # 电影信息
rating VARCHAR(10), # 评分
num VARCHAR(10), # 评论人数
quote VARCHAR(100), # 经典语句
img_url VARCHAR(100), # 电影图片
)default charset=utf8;
******

数据库操作增删改查:

1. 增

****** #### 2. 删 ##### 2.1 删除部分记录

2.2 删除全部记录

****** #### 3. 改 ##### 3.1 更新部分数据

3.2 更新全部数据

****** #### 4. 查 ##### 4.1 查询所有字段 >select 字段名1,字段名2,… from 表名

4.2 在select语句中使用(’*’)通配符代替所有字段

select * from 表名;

4.3 查询指定的部分字段

语法:select 字段名1,字段名2,… from 表名; 举例:查询student2表中的name字段和gender字段 命令:select name,gender from student2;

4.4 带关系运算符的查询

select 字段名1,字段名2,… from 表名 where 条件表达式

4.5 带 BETWEEN AND  关键字的查询

between and 用于判断某个字段的值是否在指定范围之内,若在,则该字段所在的记录会被查询出来,反之不会。

语法:select { 字段名1,字段名2,… } from  表名 where 字段名 [ not ] between 值 1  and  值 2; 举例:查询student2表中id值在2~5之间的人的id和name 命令:select id,name from students where id between 2 and 5;

4.6 带 distinct 关键字的查询

很多表中某些字段的数据存在重复的值,可以使用DISTINCT关键字来过滤重复的值,只保留一个值。

语法:SELECT DISTINCT 字段名 FROM 表名; 举例:查询student2表中gender字段的值,结果中不允许出行重复的值。 命令:SELECT DISTINCT gender FROM student2;

4.7 带 LIKE 关键字的查询

语法:SELECT * | 字段名1,字段名2,… FROM 表名 WHERE 字段名 [ NOT ] LIKE ‘匹配字符串’;

(1)百分号(%)通配符 匹配任意长度的字符串,包括空字符串。例如,字符串“ c% ”匹配以字符 c 开始,任意长度的字符串,如“ ct  ”,“ cut ”,“ current ”等;字符串“ c%g ”表示以字符 c 开始,以 g 结尾的字符串;字符串“ %y% ”表示包含字符“ y ”的字符串,无论“ y ”在字符串的什么位置。

举例1:查询student2表中name字段以字符“ s ”开头的人的id,name 命令:SELECT id,name FROM student2  WHERE name LIKE “S%”; 

举例2:查询student2表中name字段以字符“ w ”开始,以字符“ g ”结尾的人的id,name。 命令:SELECT id,name FROM student2 WHERE name LIKE ‘w%g’;

举例3:查询student2表中name字段不包含“ y ”的人的id,name。 命令:SELECT id,name FROM student2 WHERE name NOT LIKE ‘%y%’;

(2)下划线通配符 >下划线通配符只匹配单个字符,若要匹配多个字符,需要使用多个下划线通配符。例如,字符串“ cu_ ”匹配以字符串“ cu ”开始,长度为3的字符,如“ cut ”,“ cup ”;字符串“ c__l”匹配在“ c ”和“ l ”之间包含两个字符的字符串,如“ cool ”。

举例:查询在student2表中name字段值以“ wu ”开始,以“ ong ”结束,并且中间只有一个字符的记录。 命令:SELECT * FROM student2 WHERE name LIKE ‘wu_ong’;


高级查询

(1)COUNT()函数:统计记录的条数 >举例:查询student2表中一共有多少条记录 命令:SELECT COUNT(*) FROM student2;

(2)SUM()函数:求出表中某个字段所有值的总和 >语法:SELECT  SUM(字段名) FROM 表名; 举例:求出student2表中grade字段的总和 命令:SELECT SUM(grade) FROM student2;

(3)AVG()函数:求出表中某个字段所有值的平均值 >语法:SELECT AVG(字段名) FROM 表名; 举例:求出student2表中grade字段的平均值 命令:SELECT AVG(grade) FROM student2;

(4)MAX()函数:求出表中某个字段所有值的最大值 >语法:SELECT MAX(字段名) FROM 表名; 举例:求出student2表中所有人grade字段的最大值 命令:SELECT MAX(grade) FROM student2;

(5)MIN()函数:求出表中某个字段所有值的最小值 >语法:SELECT MIN(字段名) FROM 表名; 举例:求出student2表中所有人grade字段的最小值 命令:SELECT MIN(grade) FROM student2;


对查询结果进行排序

语法:SELECT 字段名1,字段名2,… FROM 表名 ORDER BY 字段名1 [ ASC | DESC ],字段名2 [ ASC|DESC ]…                      在该语法中指定的字段名是对查询结果进行排序的依据,ASC表示升序排列,DESC 表示降序排列,默认情况是升序排列。                            >举例1:查出student2表中的所有记录,并按照grade字段进行降序排序 >命令:SELECT * FROM student2 ORDER BY grade DESC;