1.CREATE TABLE grade(
stuID INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
stuName VARCHAR(32),
stuAge INT
)
##修改表名
ALTER TABLE grade RENAME Grade1;
##伪造记录
INSERT  INTO grade1(stuName,stuAge)
VALUES('你是狗',22)
##查询
SELECT * FROM grade1;
##添加
ALTER TABLE grade1 ADD stuAddress VARCHAR(32) NOT NULL;
##修改
ALTER TABLE grade1 CHANGE stuName stuuserName CHAR(10) NOT NULL
##删除
ALTER TABLE grade1 DROP pwd;
##删除自增列
ALTER TABLE grade1    MODIFY  INT;
##删除主键约束
ALTER TABLE grade1 DROP  PRIMARY KEY;
##删除外键约束
##添加主键
ALTER TABLE grade1 ADD CONSTRAINT pk_grade PRIMARY KEY (stuID);
##添加唯一约束
##alter table grade1 add constraint stuuserName unique key()
#添加唯一约束
ALTER TABLE grade1
ADD CONSTRAINT UK_GNAME UNIQUE KEY(stuuserName);
#删除唯一约束
ALTER TABLE grade1
DROP INDEX UK_GNAME;
 
##添加默认值约束
ALTER TABLE grade1
ALTER COLUMN stuAddress SET DEFAULT '北京'
##删除默认值约束
ALTER TABLE grade1
ALTER COLUMN stuAddress DROP DEFAULT
##添加>=18约束
ALTER TABLE grade1 ADD CONSTRAINT  ck_stuAge CHANGE(stuAge>=18)
##3.验证stuage字段的检查约束是否成功
INSERT INTO student2(stuName,stuGradeid,stuage)
 VALUES('张三', 1,17)
##4.删除检查约束是不成功的
ALTER TABLE student2
DROP CONSTRAINT ck_stuage
 
##删除外键约束
ALTER TABLE student2
DROP FOREIGN KEY FK_Grade_Student_GradeId
##
ALTER TABLE student2 ADD CONSTRAINT FK_Grade_Student_GradeId FOREIGN KEY (stuGradeid) REFERENCES `grade`(gid)
 
4.Limit:实现分页
分页的目的:为了加快网站对数据的查询(检索)速度,我们引入了分页的概念'
SELECT * FROM result LIMIT 5  ##返回前5条记录
SELECT * FROM result LIMIT 5,10 ##返回6-15条记录

5.聚合函数

6.字符串函数

7.日期函数

示例:

#对象数组  List<Student>
#聚合函数 sum() max() min() avg() count()
SELECT COUNT(1) AS 总记录数 FROM easybuy_product
##聚合函数一般在什么场景下去使用??
##计算 统计分析
# 字符串函数
SELECT LOWER('蔡国鑫刚才米粒的眼神并没有俘获我的幼小的心CGX') SELECT CONCAT('Hello','World') ##insert
SELECT INSERT('周杰伦是残疾人',5,2,'好') ##郭世超 C# 中SubString(1) string str="郭世超'你坏'"; 结果是 世超'你坏' ## Substring(1,2) 第二个参数:是length,就是截取几个长度 ##dual 伪表
SELECT SUBSTRING('明天会有一场全国运动,高考',7,4) FROM DUAL ##日期函数
SELECT CURDATE() FROM DUAL ## 2018-6-6 19:27:53
SELECT NOW() FROM DUAL ##50多周 22周
SELECT WEEK(NOW()) FROM DUAL ##两个日期做差,看看某个人活了多久???
SELECT DATEDIFF(NOW(),'1998-06-26') FROM DUAL
###人生不过3万天 SELECT ADDDATE(NOW(),INTERVAL 3 MONTH) FROM DUAL ##数学函数 ceil 向上取整 floor 向下取整
SELECT CEIL(1.001) FROM DUAL SELECT FLOOR(1.9999) FROM DUAL

8.子查询:

子查询就是一个查询中又包含了另一个查询,典型的语法结构(),一般来说,子查询会使用()扩起来,并且小括号内的检索结果作为外层查询的条件存在

伪代码如下:

Select * from A表

Where 列名=(select 列名 from B表)

SELECT stuName,stuBirthday FROM student
WHERE stuBirthday>
(
SELECT stuBirthday FROM student
WHERE stuno=3
)

一下为in子查询:

 #查询“数学”课程至少一次考试刚好等于60分的学生信息
  ##学生姓名
 
  SELECT * FROM result
 
  SELECT stuName FROM student
  WHERE stuNo IN
  (
    SELECT Studentno FROM result
    WHERE subjectid=
    (
       SELECT subjectid FROM SUBJECT
       WHERE subjectname='数学'
    ) AND studentresult=60
  )

一下为 not in 子查询:

##案例6:查询最近一次未参加  数学  考试的学生名单
##1.检索到参加了考试的学生学号
##select * from studentno where studentno not in (1......)
SELECT * FROM student WHERE stuno NOT IN
(
SELECT studentno FROM result
WHERE subjectid=
(
SELECT subjectid FROM SUBJECT
WHERE subjectname='数学'
)
AND examdate=
(
SELECT MAX(examdate) FROM result
WHERE subjectid=
(
SELECT subjectid FROM SUBJECT
WHERE subjectname='数学'
)
)
)
AND stugradeid=
(
SELECT gradeid FROM SUBJECT
WHERE subjectname='数学'
)

truncate 和delete区别:

##truncate 和delete区别  mdf  ldf  ndf
##delete from product ---->update
##1.delete 可以删除部分记录 truncate 删除的是全部记录,不能有where
##2.delete 从原则上来说,他是可以恢复部分数据的,记录日志,truncate 不留痕迹
##3.delete 删除速度慢,truncate 删除速度快
##4.delete 删除所有记录,再Insert,编号是接着上次的自增编号继续,
##trucate编号从起始的开始编号

Exisit和Not Exisits子查询:

#检测是否有S2的学生记录
#如果存在,从成绩表中查询S2科目的学员成绩信息
SELECT studentno,subjectid,studentresult,examdate
FROM result
WHERE EXISTS
(
SELECT * FROM student WHERE stuGradeid=
(
SELECT gid FROM grade
WHERE gname='S1'
)
)
AND subjectid IN
(
SELECT subjectid FROM SUBJECT
WHERE gradeid=
(
SELECT gradeid FROM grade
WHERE gname='S1'
)
)
Select  * from TableA  a  where Not Exists (Select * from TableB  b where a.id=b.id and a.name=b.name);

MySql数据and高级查询的更多相关文章

  1. MySQL数据操作与查询笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 第1章 MySQL数据操作与查询笔记 • [第1章 MySQL数据库基础] 第2章 MySQL数据操作与查询笔记 • [第2章 表结构管 ...

  2. 《MySQL数据操作与查询》- 综合项目 - 学生管理系统

    <MySQL数据操作与查询>综合项目需求 一.系统整体功能 维护学生信息.老师信息和成绩信息. 支持按多种条件组合查询学生信息和成绩信息. 二.系统的信息需求 一个班级有一个讲师一个班主任 ...

  3. 10月17日下午MySQl数据库CRUD高级查询

    高级查询:1.连接查询 #适用于有外键关系的  没有任何关系没法用select * from Info,Nation #同时查询这俩表并把两表每个数据相互组合,形成笛卡尔积 select * from ...

  4. MySQL数据优化总结-查询备忘录

    一.优化分类 二.测试数据样例 参考mysql官方的sakina数据库. 三.使用mysql慢查询日志对有效率问题的sql进行监控 第一个,开启慢查询日志.第二个,慢查询日志存储位置.第三个,没有使用 ...

  5. MySQL数据操作与查询笔记 • 【第6章 聚合函数和分组查询】

    全部章节   >>>> 本章目录 6.1 sum.max 和 min 聚合函数 6.1.1 聚合函数介绍 6.1.2 sum 函数 6.1.3 max/min 函数 6.2 a ...

  6. mysql中的高级查询

    以前学习的查询语法: select 字段名 from 表名 where 条件 其实,查询的语法变化很多: 1. select 可以查询表达式, 表达式就是 运算符+操作数. 比如 1 + 1 2 * ...

  7. MySQL数据连表查询思路

    我们在网站开发中,涉及MySQL数据库查询时,常常需要将两个表或多个表联合起来进行查询数据,这就用到了MySQL中的JOIN函数. JOIN函数有三种,分别是: LEFT JOIN  左连接查询: 查 ...

  8. mysql中的高级查询语句

    此随笔用到的数据全是来自  关于mysql中表关系的一些理解(一对一,一对多,多对多) 提及的    学院表,学生表,学生详情表,选课表,课程表 单标查询:(查看学生表的学生名单) select st ...

  9. Mysql数据多表查询及pymysql的使用

    Exists关键字表示存在,在使用exists关键字时,内增查询语句不返回查询记录,而是返回一个真假值,True或者False,返回True外层语句才会进行查询:返回False时,外层查询语句不会进行 ...

随机推荐

  1. [物理学与PDEs]第1章第8节 静电场和静磁场 8.1 静电场

    1. 静电场: 由静止电荷产生的稳定电场. 2. 此时, Maxwell 方程组为 $$\bex \Div{\bf D}=\rho_f,\quad \rot{\bf E}={\bf 0}. \eex$ ...

  2. [译]Ocelot - Delegating Handlers

    原文 可以为HttpClient添加delegating handlers. Usage 为了添加delegating handler需要做两件事. 首先如下一样创建一个类. public class ...

  3. Pandas的一些简单函数总结

    pd.Series(my_list) # 从一个可迭代的对象 my_list 中创建一个数据组df.index = pd.date_range('2017/1/1', periods=df.shape ...

  4. 《尚学堂_史上最易懂的设计模式视频》--章节5 动态代理-JDK6自带的编译器

    所有的设计模式中最难的一个 ==组合和聚合是有很大区别的 组合和聚合是有很大区别的,这个区别不是在形式上,而是在本质上: 比如A类中包含B类的一个引用b,当A类的一个对象消亡时,b这个引用所指向的对象 ...

  5. 获取多<a/>标签id值的点击事件

    <li> <div class="pic"> <c:if test="${userId != null }"> <a ...

  6. vmware 14 密钥

    VMware 2017 v14.x 永久许可证激活密钥 FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD 来源链接: http:/ ...

  7. [Kubernetes]如何让集群为我们工作?

    前一段时间倒腾k8s的时候,写了一系列的博客,有很多人不理解那样做的意义是什么,为什么要那样做,这篇文章就尝试解释一下,在实际环境中,是如何让集群为我们工作的. 因为只研究了一个月左右的时间,认识难免 ...

  8. Lua中的表达式

    [算术操作符] Lua支持常规的算术操作符有:”+”(加法),”-“(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-“(负号).所有的这些操作符都用于实数.例如:x ...

  9. 【原创】大数据基础之Ambari(3)通过Ambari部署Airflow

    ambari2.7.3(hdp3.1) 安装 airflow1.10 ambari的hdp中原生不支持airflow安装,下面介绍如何通过mpack方式使ambari支持airflow安装: 1 下载 ...

  10. windows下安装setuptools与pip

    1.下载 setuptools与pip 下载地址如下: https://pypi.Python.org/pypi/setuptools https://pypi.Python.org/pypi/pip ...