MySQL基础
来源:互联网 发布:网络推广平均工资 编辑:程序博客网 时间:2024/06/09 23:06
8.4学习心得
1. 数据库基础知识
创建数据库语句:create database 数据库名称;
查看已经存在的数据库:show databases;
- 修改数据库的编码:alter database 数据库名称 default character set 编码方式;
- 删除数据库:drop database 数据库名称;
- 数据类型
- 创建数据表:
Create table 表名
( 字段名1 数据类型 [完整性约束条件],
字段名2 数据类型 [完整性约束条件],
字段名n 数据类型 [完整性约束条件], );
- 查看数据表:show tables;
- 查看创建表时的定义语句和表的字符编码:Show create table 表名;
- 查看表细节:Describe 表名;或者简写为 desc 表名;
- 修改数据表
- 表的约束:主键约束(Primary key)、非空约束(Not null)、唯一约束(unique)、默认约束(Default)、外键约束(Foreign key)。
表的自增:Auto_increment(AUTO_INCREMENT=n 定义初始值)
添加数据:Insert into 表名(字段名1,字段名2,….)values(值1,值2,……);
- 更新数据:Update 表名 set 字段名1=值1[,字段名2=值2,…] [where 条件表达式]
- 删除数据:Delete from 表名 [where 条件表达式]
2. 单表查询(只列出了原来在SQL Server中不熟悉的部分查询方式,总体语法与SQL Server一样 )
- 实现方式:
Select [distinct] * | {字段名1,字段名2,字段名3,…}
from 表名
[where 条件表达式1]
[group by 字段名 [having 条件表达式2]]
[order by 字段名 [asc | desc]]
[limit [offset] 记录数]
- in关键字查询
- distinct关键字查询
- or 和 and 查询
注意:and的优先级高于or,因此当两者在一起使用时,应该先运算and两边的条件,再运算or两边的条件。
3. 高级查询(只列出了原来在SQL Server中不熟悉的部分查询方式,总体语法与SQL Server一样 )
- 聚合函数
(1)count()函数
Count()函数用来统计记录的条数
Select count(*) from 表名
(2)sum()函数
Sum()是求和函数,用于求出表中某个字段所有值的总和
Select sum(字段名) from 表名;
(3)avg()函数
Avg()函数用于求出某个字段所有值的平均值
Select avg(字段名) from 表名
(4)max()函数
Max()函数是求最大值的函数,用于求出某个字段的最大值
Select max(grade) from 表名;
(5)min()函数
Min()函数是求最小值的函数,用于求出某个字段的最小值
Select min(grade) from 表名;
详细函数调用方法:Mysql函数大全
- limit 限制查询
- 取别名方法
- 多表查询
(1)外连接
外连接可分为:左连接、右连接、完全外连接。
左连接:select * from student left join course on student.ID=course.ID;
右连接:select * from student right join course on student.ID=course.ID;
完全外连接(MySQL不可用,SQL Server可用):select * from student full join course on student.ID=course.ID;
MySQL可用union,同时实现左右连接,便可达到完全外连接。
(2)内连接(join 或 inner join)
select * from student inner join course on student.ID=course.ID;
(3)交叉连接(用的较少)
select * from student cross join course
(4)两表关系为一对多,多对一或多对多时的连接语句
作业:
1.查询student表的所有记录
SELECT * FROM student
2.查询student表的第2条到4条记录
SELECT * FROM student LIMIT 1,3
3.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息
SELECT id,`name`,department FROM student
4.student表中查询计算机系和英语系的学生的信息
SELECT * FROM student WHERE department = '英语系' OR department = '计算机系'
5.从student表中查询年龄27~30岁的学生信息
SELECT * FROM student WHERE birth BETWEEN (YEAR(NOW()) - 30) AND (YEAR(NOW()) - 27)
6.从student表中查询每个院系有多少人
SELECT department,count(*) FROM student GROUP BY department
7.从score表中查询每个科目的最高分
SELECT c_name,MAX(grade) FROM score GROUP BY c_name
8.查询李四的考试科目(c_name)和考试成绩(grade)
SELECT `name`,c_name,grade FROM student,score WHERE student.id=stu_id AND `name`='李四'
9.用连接的方式查询所有学生的信息和考试信息
SELECT student.*,c_name,grade FROM student LEFT JOIN score on student.id=stu_id
10.计算每个学生的总成绩
SELECT `name`,SUM(grade) FROM student LEFT JOIN score ON student.id=stu_id GROUP BY `name`
11.计算每个考试科目的平均成绩
SELECT c_name,AVG(grade) FROM student LEFT JOIN score ON student.id=stu_id GROUP BY c_name
12.查询计算机成绩低于95的学生信息
SELECT student.* FROM student WHERE student.id in (SELECT stu_id from score WHERE c_name = '计算机' AND grade < 95)
13.将计算机考试成绩按从高到低进行排序
SELECT grade from score WHERE c_name = '计算机' ORDER BY grade DESC
14.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
SELECT `name`,department,c_name,grade FROM student,score WHERE `name` LIKE '张%' OR `name` LIKE '王%' AND student.id=stu_id
- MySQL基础
- MySQL基础
- MySql基础
- MySQL基础
- mysql基础
- MYSQL基础
- MySQL基础
- mysql基础
- mysql基础
- MySQL 基础
- mysql基础
- mysql基础
- mysql 基础
- MySQL基础
- MySql 基础
- mysql基础
- mysql基础
- mysql基础
- Linux下getopt()函数的简单使用
- PHP开发环境部署
- Composer和laravel的理解
- B
- 【CodeForces617E】XOR and Favorite Number
- MySQL基础
- 自我实现itoa(整形转字符串)
- Linux学习之基础篇_2017.8.4
- Ceres(3)---Interfacing with Automatic Differentiation
- 数据结构顺序栈
- JavaScript--引用数据类型--objiect
- 从一个字符数组中读出相应的整数、实数
- Protobuf数据格式解析
- 2017 Multi-University Training Contest