黑马程序员技术交流社区

标题: 【石家庄校区】数据库回忆总结 [打印本页]

作者: 江南旧巷柳絮飞    时间: 2018-1-23 15:14
标题: 【石家庄校区】数据库回忆总结
本帖最后由 小石姐姐 于 2018-1-24 15:06 编辑

数据库回忆
关系型的数据库存放的都是实体之间的关系
数据库存储的结构
通常一个应用就会创建一个数据库
应用中有一个实体创建一个表
有一个实体对象就有一条记录
SQL结构化查询语言
DDL 数据定义语言create alter drop
DML 数据操纵语言 update insert delete
DCL 数据控制语言 if(判断语句)
DQL 数据查询语言 select
SQL语句的特点
非过程性语言 一条语句就会有一条运行结果
使用SQL操作数据库
使用SQL操作数据库中的表
使用SQL操作数据局中表记录的crud
创建数据库  重点
 create  database(characterset字符集(utf-8)collate字符集校对)
查看数据库
查看数据库所有的数据库
show databases
查看数据库的语句
show create database 数据库名称
查 看正在使用的是哪个数据库
select database()
删除数据库
drop database 数据库名称
修改数据库
修改的是数据库的字符集和校对规则
切换数据库
use 数据库的名称
使用SQL操作数据库中表的操作
字段名值得是名称(属性)
数据的类型
char 和varchar的区别
char是固定长度的,varchar是可变长度的
java MySQL
float float
double double
boolean bit 0和1
date date/time datetime/timestamp
文本文件 text
二进制文件 blob
datetime/timestamp 既有日期又有时间的类型
datetime 需要使用外部传入的日期 如果没传 默认是null
timestamp 会使用系统的当前时间作为这个值的默认值
MySQL中除了字符串需要设置长度,其他的都有默认长度
约束:
主键约束 primary key(默认就是唯一非空的)
唯一约束 unique
非空约束 not null;
创建表之前要先选择数据库
创建表
查看数据库中有哪些表
show tables
查看表结构
dest 表名
表的删除
drop table 表名
修改表
添加列
alter table 表名 add 列名类型(长度)约束
删除列
alter table 表名 drop 列名
修改类型长度和约束
alter table 表名 modify 列名类型(长度) 约束
修改表名
alter table 表名 change 旧列名新列名 类型(长度)约束
修改表名
rename table 旧表名 to 新表名
修改标的字符集
alter table 表名charactor set
使用SQL操作数据库中表的记录
插入记录
inset into 表名 (列名,列名)values(值1,值2)插入指定列的值
insert into 表名 values(值1,值2) 插入所有列的值
注意事项:
列名的个数要和值的个数对应
列的类型与值的类型对应,位置也要对应
列的数据类型如果是字符串或者日期,写值得时候使用单引号将值引起来
插入值的长度不能超过列的最大值
插入中文
会报错
解决办法:
1、修改当前的编码
2、MySQL的配置文件找到安装路径的my.ini 客户端的编码
重新加载MySQL的配置文件,停止MySQL的服务,然后再启动MySQL
修改记录
updata 表名 set 列名=值(where 条件)
注意事项:
列名何值类型也要一致
值不能超过列的最大长度
值的字符串或日期,需要加单引号
删除记录
delete from 表名(where条件)
注意事项:
删除的是一行记录,不能删除某列值
如果没有条件删除表中所有的记录
删除所有记录
delete from 表名 删除表的记录 一条一条的删除 删除后 数据可以回滚回来
truncate table 表名 删除表的记录,将整个记录删除,重新创建一个新的表
查询记录
select * 列名 from 表where条件
select(distinct)去重查询
带有条件的查询
条件的关键字
= < > <= >= <>
like 中可以使用占位符 _ 和%
like '张_' like'%张'下划线查询的一个字符,百分号可以匹配多个字符
排序
order by 对数据进行排序,默认为升序
降序 desc
升序默认为 asc
聚合函数
sum()
count()
max()
min()
avg()
分组查询:
group by
having 是分组后再查询
select from where group by having order by limit
多表的设计
表与表之间的关系(实体与实体之间的关系)
一对多 : 客户与订单一个订单可以产生多个订单,一个订单只能属于一个某 一个客户
多对多 : 一个学生可以选择对门课程,一门课程可以被多个学生选择
一对一 : 一个公司只能有一个注册地址,一个地址只能被一个公司注册
多表的设计:
一对多的关系建表的原则:
在多的一方创建一个字段,这个字段作为外键执向一的一方的主键.(外键,保证数据的完整性)
在多的一方创建一个外键,id指向一方的主键
多对多
创建一个第三方表,创建一个第三种表,中间表中至少需要两个字段分别作为外键执向多对多双方的各自的主键.
创建第三个表格 ,中间表至少需要两个字段,分别作为外键指向多对多双方的各自主键
外键的作用是保证数据的完整性
添加外键的两种方式
第一种在建表的时候直接添加外键
第二种使用SQL语句添加。
一对一:
唯一外键对应的方式
主键对应
多表查询的SQL语句
多表查询的方式:
连接查询:
交叉连接: select *from A,B 获得的是两个表的笛卡尔积
内连接: inner join
显式内连接
select* from A inner join B on 条件 分别取一个名字(c 和 o)
select * from customs c inner join order o onc.cid= o.cid
隐式内连接
select * from A ,B where 条件
select * from customs c ,order o where c.cid =o.cid
外链接 outer join
左外连接:
select * from A left outer join B on 条件(主键和外键相等)
右外链接 右边表的全部和两个表的交际
select * from A right outer join B on 条件
JQuery是js 的一个框架,对js进行了封装
JQuery的语法
JQuery的入门
引入JQuery的js
JS对象
JQ对象
【JQuery的入门】
Ø 引入Jquery的js文件.
<scriptsrc="../../js/jquery-1.11.3.min.js"></script>
Ø JQuery的入口函数:
            // 传统的JS的方式:页面加载的事件只能执行一次.
            /*window.onload= function(){
               alert("aaa");
            }
           
            window.onload =function(){
               alert("bbb");
            }*/
           
            // JQuery的方式:相当于页面加载的事件,可以执行多次.效率比window.onload要高.
            //window.onload 等页面加载完成后执行该方法.
            //$(function(){}):等页面的DOM树绘制完成后进行执行.
            // $相当于JQuery
            $(function(){
               alert("aaa");
            });
           
            $(function(){
               alert("bbb");
            });
【JS对象和JQ对象的转换】
            window.onload =function(){
               // 传统JS方式:
               var d1 = document.getElementById("d1");
               // JS对象的属性和方法:
               // d1.innerHTML = "JS对象的属性";
               // d1.html("aaaaaa");
               // 将JS对象转成JQ的对象.
               $(d1).html("JS对象转成JQ对象");
            }
            $(function(){
               var $d1 = $("#d1");
               // $d1.html("JQ对象的属性");
               // 转成JS的对象:
               // 一种方式
               // $d1[0].innerHTML = "将JQ的对象转成JS对象";
        // 二种方式:
               $d1.get(0).innerHTML = "将JQ的对象转成JS对象的方式二";
            });
Ø  JQ的效果操作:
* show();
    * 使用一:Jq对象.show();
    * 使用二:Jq对象.show(“slow”); // slow,normal,fast
    * 使用三:Jq对象.show(毫秒值); //1000
    * 使用四:Jq对象.show(毫秒值,function(){});
* hide();
    * 使用一:Jq对象.hide();
    * 使用二:Jq对象.hide(“slow”); // slow,normal,fast
    * 使用三:Jq对象.hide(毫秒值); //1000
    * 使用四:Jq对象.hide(毫秒值,function(){});
* slideDown();  --向下滑动
    * 使用一:Jq对象.slideDown();
    * 使用二:Jq对象.slideDown(“slow”); // slow,normal,fast
    * 使用三:Jq对象.slideDown(毫秒值);// 1000
    * 使用四:Jq对象.slideDown(毫秒值,function(){});
* slideUp();    --向上滑动
    * 使用一:Jq对象.slideUp();
    * 使用二:Jq对象.slideUp(“slow”); // slow,normal,fast
    * 使用三:Jq对象.slideUp(毫秒值);// 1000
    * 使用四:Jq对象.slideUp(毫秒值,function(){});
* fadeIn();     --淡入
    * 使用一:Jq对象.fadeIn();
    * 使用二:Jq对象.fadeIn(“slow”); // slow,normal,fast
    * 使用三:Jq对象.fadeIn(毫秒值);// 1000
    * 使用四:Jq对象.fadeIn(毫秒值,function(){});
* fadeOut();    --淡出
    * 使用一:Jq对象.fadeOut();
    * 使用二:Jq对象.fadeOut(“slow”); // slow,normal,fast
    * 使用三:Jq对象.fadeOut(毫秒值);// 1000
    * 使用四:Jq对象.fadeOut(毫秒值,function(){});
* animate();    --自定义动画
* toggle();     --单击切换函数
    * Jq对象.toggle(fn1,fn2...);单击第一下的时候执行fn1,单击第二下执行fn2...

JQuery的DOM操作
常用的方法有
append()在某个元素添加内容
appendTO()添加到某个元素后面
remove()删除某个元素
html()覆盖元素内容
遍历的方式
遍历方式一:
$.each(objects,function(i,n){
})
遍历的方式二:
$("").each(function(i,n){
})






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2