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:\emmm.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;