mysql数据库语句

一、创建数据库表

1.student表

CREATE TABLE `studb`.`student`(

`id`INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,`name` VARCHER(45) NOT NULL,`sex` VARCHER(45) NOT NULL DEFAULT 'male',`age` INTEGER NOT NULL,`major` VARCHER(45) NOT NULL,PRIMARY KEY(`id`)

)

2.数据库表

二、MySQL基本语法

1.使用SELECT语句查询数据

  • SELECT<列名> FROM<表名> [WHERE<查询条件>]
  • SELECT * FROM student

2.使用INSERT语句插入数据

  • INSERT [INTO] <表名> [列名] VALUES<值列表>
  • INSERT [INTO] student (name,sex,age,major) values("黄山","male",19,"计算机")
  • INSERT [INTO] student values (0,"a","b",19,"c")
  • 注:种子列插入时使用0

3.使用UPDATE语句更新数据

  • UPDATE <表名> SET <列名=更新值> [WHERE<更新条件>]
  • UPDATE student SET age=20 WHERE name="李勇"

4.使用DELETE语句删除数据

  • DELETE FROM <表名> [WHERE<删除条件>]
  • DELETE FROM student

三、高级查询

1.查询的基本形式

SELECT<列名>

FROM<表名>

[WHERE <查询条件表达式>]                                      (过滤条件)

[ORDER BY <排序的列名>[ASC或DESC]]                 (排序条件)

例1:select * from student order by age;

例2:select * from student order by age asc,id desc;

2.使用AS重命名列

重命名的列名可以加单引号也可不加

例3:select id as 学生编号,name as n from student;

省略AS重命名列名

例4:select id 学生编号,name n from student;

3.使用limit限制行数

例5:查询customers表前10条记录

select * from customers limit 10;

select * from customers limit 0,10;

例6:查询第6-10条记录

select * from customers limit 5,5;

4.模糊查询

(1)通配符

(2)LIKE

模糊查询的字符串内容必须加单引号或双引号

例7:select * from student where name like "李_";

         select * from student where sex like 'fe%';

注意:等号连接字段内容被视为普通字符,不能使用等号进行模糊查询

select * from student where sex=fe%';

(3)BETWEEN…AND

模糊查询的字符串内容必须加单引号或双引号

例8:

半闭半开区间

select * from student where name between 'a%' and 'c%';

闭区间

select * from student where age between 18 and 20;

select * from student where name between '李%' and '张%';

(4)IN

范围内进行查询

例9:显示专业使计算机和数学的学生信息

select * from student where major="计算机" or major="数学";

select * from student where major in('计算机','数学');

(5)NULL

查询字段内容是否为空

例10:

显示专业为空的学生信息

select * from student where major is null;

显示专业不为空的学生信息

select * from student where major is not null;

四、聚合函数

1.COUNT()统计字段值的数目

select count(*) from student;

2.SUM()计算字段值的和(参数为数字)

select sum(age) from student;

3.AVG()计算字段的平均值(参数为数字)

select avg(age) from student;

4.MAX()返回最大值(参数可以为字符串)

select max(age) from student;

5.MIN()返回最小值(参数可以为字符串)

select min(age) from student;

五、分组查询

CREATE TABLE `studb`.`testing`

(

`id` int(10) unsigned NOT NULL auto_increment,`studentId` int(11) NOT NULL,`course` varchar(45) NOT NULL,`grade` varchar(45) NOT NULL, PRIMARY KEY (`id`))

ENGINE=InnoDB DEFAULT CHARSET=gbk;

1.在select语句中可以们更用group by子句将行划分成较小的组,然后,使用聚合函数返回每一个组的汇总信息,可以使用having子句限制返回的结果集。group by子句可以将查询结果分组,并返回行的汇总信息按照group by子句中指定的表达式的值分组查询结果。

2.注:在where条件中不能使用聚合函数。

例11:select distinct age from student group by sex;

查询考试科目大于2的学生id

select studentid from testing group by studentid having count(*)>2;

六、子查询

1.简单子查询

(1)子查询在WHERE语句中的一般用法:

  • SELECT… FROM 表1 WHERE 字段1>(子查询)
  • '>'可以替换为其它运算符
  • 外面的查询称为父查询,括号中嵌入的查询称为子查询

(2)UPDATE、INSERT、DELETE也可以使用子查询,语法类似于SELECT语句

例12:查询年龄大于欧阳丹丹的学生信息

select * from student where age>(select age from student where name="欧阳丹丹")

2.IN子查询

将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个,否则不允许将子查询写在=、!=、<>、<、<=、>、>=之后

查询年龄大于选数学专业的学生信息

select * from student where age>(select age from student where major="数学")   ×

例13:查询数学与计算机专业学生的考试信息

select * from testing where studentid in (select id from student where major="数学" or major="计算机")

查询不是数学与计算机专业学生的考试信息

select * from testing where studentid not in (select id from student where major="数学" or major="计算机")

七、联结查询

1.内联结(INNER JOIN)

select * from student as s inner join testing as t on s.id=t.studentid;

2.外联结

左外联结(LEFT JOIN )

select * from student as s left join testing as t on s.id=t.studentid;

右外联结(RIGHT JOIN)

select * from student as s right join testing as t on s.id=t.studentid;

3.交叉联结(CROSS JOIN)

笛卡尔积

select * from student as s cross join testing as t on s.id=t.studentid;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值