本帖最后由 小石姐姐 于 2018-5-11 09:40 编辑
【石家庄校区】课程总结
BS 【 disabled 】-----不可选中和点开;Carousel----图片轮播-----JS插件 预定义样式**【默认样式】---Default【首选项】-----Primary【成功】-----Success【一般信息】-----info【警告】-------Warning【危险】-----Danger【链接】------Link** **#数据库========**概述:数据库就是一个文件系统 通过标准的SQL语句获取数据; #MYSQL概述----是关系型数据库管理系统; 关系型数据库 保存的就是 实体之间的关系; 关系型数据库:ER模型:E:Entity R:Relational; 常见的关系型数据库
MySQL;
Oracle
SQLServer;
DB2;
SyBase;
#安装了MySQL的电脑被称为是MySQL数据库服务器; 在数据库服务器内部 通过数据库存储数据 通常情况下一个应用创建一个数据库; 修改数据库语法: alter database 数据库名称 character set 字符集 collate 校对规则; 删除数据库语法: drop 创建表语法:create table 表名称【字段名称 字段类型(长度)约束 , 字段名称 字段类型(长度) 约束....】; 字段类型 一个实体对应一个表,一个实体属性对应表的一个字段。
tinyint / smallint / bigint;-----byte/short/int/long float ------ float double ------- double bit ------------ boolean char / String ---- char / varchar date/time/datetime/timertamp --------Data;
char代表是固定长度的字符或者字符串---定义类型char(8)向这个字段存入字符串hello , 那么数据库使用三个空格将其补全; 定义类型 varchar(8) , 向这个字段存入字符串hello存入到数据库的就是hello ; date/time/datetime/timestamp == Data**File ----- Blob / TEXT**
查看表 show tables;desc user --- 查看表结构; 约束** tab页 就是 标签页】索引框--轮播图---模态框---标签页 SQL是结构化查询语言:是一种特殊目的的编程语言 是一种数据库查询和程序设计语言 用于存取数据 以及 查询 更新 和 管理 关系数据库; SQL--同时也是数据库 脚本文件的 扩展名; #SQL的分类:** 创建数据库 删除数据库 DDL -- 数据定义语言---- create drop alter 授权DCL----数据控制语言----grant if 插入 更新 删除DML----数据操纵语言----insert update delete 查询DQL----数据查询语言----select** 操作数据库创建数据库 --- 语法-- create database 数据库名称 [character set 字符集 collate 字符集校对规则] 查看数据库 --- 语法-- show databases (查看数据库服务器中所有的数据库) ---- 查看某个数据库的定义信息: show create database 数据库名称; 修改数据库 ---alter database 数据库名称 character set 字符集 collate 校对规则; 删除数据库 ---语法-- drop database 数据库名称; 其他数据库操作 ---切换数据库----use 数据库名称;---查看当前正在使用的数据库---select database();
SQL存储方式:一个项目创建一个数据库在数据库中 一个应用一个数据库 在数据库中用表存储数据 一个实体一个表; 在一个表中 有多条记录 创建一个实体实例对象 会创建一个新记录; 表的创建“【表的创建 和 修改】----修改表结构 ** 添加列 ; --- alter table 表名 add 列名 类型(长度) 约束;**修改列类型 长度 和 约束 :---- alter table 表名 modify 列名 类型(长度)约束;删除列 :---- alter table 表名 drop 列名; 修改列名称:--- alter table 表名 change 旧列名 新列名 类型(长度) 约束; 修改表名:------alter table 表名 to 新表明; 修改表的字符集:---- alter table 表名 character set 字符集 ;
对表的记录进行操作:插入中文记录的解决办法: 将MYSql数据库服务器中的客户端部分的字符集进行修改为 gbk ; [client ]port = 3306; [Mysql]default - character - set =gbk; 修改表记录 语法:update 表名 set 列名=值,列名=值 【where 条件】;【字符串类型和日期类型 添加单引号】 删除表记录语法 : delete from 表名 【where 条件】;默认删除表中所有记录----需要有条件 ---- delete from 表名 --属于DML ---逐条删除; truncate table user ----- 删除表中所有记录 --- 属于 DDL---不可恢复;--直接删除表 然后创建新表;查询表记录 重要】: select 查询对象 * 列名 from 表 where 条件 ;**基本查询----- select * from 表名 .... 条件查询select * from 表名 where 条件;排序查询select * from 表名 order by asc/desc [升序 / 降序] ;分组统计查询** group by -- 去重---distinct常用的表修改----【添加列 / 添加字段】---【修改列】【swiper---滑动触摸插件网站】【自动增长 --- auto_increment】【对原有程序进行添加 延伸 不能对原有代码 进行修改】 查看表记录 ----- select * form user;恢复被 delete from user 删除的记录----rollback按条件删除 修改条件查询使用 where 字句; 模糊查询like 在like字句中 可以使用 _或%--- _代表一个字符 % 可以代表任意个字符 ; 范围查询 --- in ;[ and or not ]---并列 排序查询-- -- 默认升序 desc --- 降序;** order by 字段名称 asc / desc ;** 【分组统计查询】聚合函数查询---------selecet **sun();---求和--------null 加任何值 都为 null; ifnull(有null的元素)--将null变为0;**count ---统计个数**----做分页用max ()min ()avg ()---平均值 分组查询:group by 字段名称;from orderitem group by带有聚和函数的条件过滤 --- having ; 总结 S(select)...F(from)...W(where)...G(grouop by)...H(having)...O(order by);多表约束作用 ;用来保证数据的完整性的。 单表约束 ---- 主键约束 / 唯一约束 / 非空约束 多表约束 ----- 外键约束 : 用来保证数据完整性(多表之间); 【创建两个表 进行外键演示】在表上添加外键 -- alter table 表名 add foreign key (dno) references dept(did); 设置外键为非空 -- alter table employee modify dno int not null;
表与表的关系“一对多的关系 --- 一对多 -- 一个部门下有多个员工 一个员工只属于一个部门 多对多的关系 --- 一个学生可以选择多门课程 一门课程可以被多个学生选择 一对一的关系 --- 一个公司有一个注册地址 一个注册地址只能对一个公司
一对多的关系介绍: ** 建表原则: 在多的一方创建外键 指向一的一方的主键;** 多对多的建表原则:需要创建中间表 中间表中至少两个字段 分别作为外键指向多对方的主键; 多表查询分类---1. 链接查询 ---- - cross join 交叉链接 : 查询到的是两个表的笛卡尔积; 语法: select * from 表1 cross join 表二 ;select * from 表一 , 表二; 2. **内连接 --- inner join 显示内连接: 在SQL中显示的调用inner join 关键字;** 语法: select * from 表1 inner join 表2 on 关联条件; 隐式内连接: 在SQL中没有调用 inner join 关键字; 语法: selec t * from 表1,表2 where 关联条件; 3. 外链接 --- outer join (outer 可以省略)左外链接:--- 语法: select * from 表1 left outer join 表2 关联条件;右外链接: ---- 语法: select * from 表1 right outer join 表2 on 关联条件; 一对一的关系建表原则: 建表原则: 1 唯一外键对应 : 假设是一对多 在多地一方创建外键指向一的一方的主键 将外键设置为 unique 2 主键对应 将连个表的主键建立对应关系即可; 将一个表外键指向另一个表的主键 ---- ** alter table employee add foreign key (dno) references dep (did);** 在实际开发中 ---- 删除部门前 先将其下属员工进行手动删除 清除干净后 再 将部门进行删除;数据库的设计 永远在开发前;多表访问 ------------重点、 建表前 先分析 表之间的联系和类型 依据分析建表;多对多 需要建一个中间表 来完成联系 --- 外键指向 目标主键 ================================================== 多表查询======================================内连接 表达的是 两个表的交集的部分 根据关联条件 去两个表中匹配 有对应关系的 记录 有则返回 没有则不返回;语法: select * from 表1 inner join 表2 on 关联条件;---不常用 ** select * from 表一 , 表二 where 关联条件 ** 左连接 ---- leftleft outer jion ----- 以左边表格为基准进行查询 匹配到 则返回 匹配不到则返回 null 右连接 ----- rightright outer jion --- 以 右边表格为基准; 匹配到 则返回 匹配不到则返回 null 内外连接的区别:子查询**1. 带 in 的子查询: ---- 常用select * from where cid IN(select cno from sudent where birthday > '1991-01-01'); 查询============================= 事务事务的特性: ----- ACID特性【】【】原子性 ---- 事务不可分割一致性 ---- 执行前后 数据完整保持一致隔离性 ----- 事务的执行 不能受到其他干扰 --- 讲的是并发持久性 ------ 事务结束 数据持久化到数据库; 安全性问题:脏读 ---- 数据未提交 交易已完成不可重复读 ---- 读取到了其他事务的 update 虚读 ------ 读取到了 隔离级别设置隔离级别 ------ set session transaction isolation level 隔离语句;查看隔离级别 ---- select @@x_isolation;read uncommittedread committedrepeatable readser 重置MySQL密码:停止MySQL服务 --- 在cmd下启动MySql服务【mysql --skip-grant-tables 】 ---- 重开cmd的命令行 (不需要密码 )[mysql -u root -p]--- 修改root密码【use mysql; -- update user set password = password('123') where user = 'root';】---- 结束进程 ---- 重启服务; 数据库的备份和还原数据库的还原1.** 第一种还原方式: 1 -- 在数据库服务器内部创建数据库【create database web_test1;】----2 在命令行窗口【mysql -u root -p web_test1 < C:/web_test1.sql 】**2.第二种还原方式 : 1 -- 在数据库服务器内部创建数据库 【create database web_test1;】 ---- 2 切换到该数据库使用 source命令还原 【 use web_test1; source C:/web_test1.sql 】 可视化数据库的操作在运行窗口进行 服务器的关闭/重启;net stop ---关闭net start---开启 SQL语句**DDL -- create drop alter... --定义语言DCL -- grant if... 控制语言DML -- insert update delete... 操纵语言DQL -- select ..... 查询语言** 语法:查看数据库 --- show databases; 查看数据库定义信息 : show create database 数据库名; 修改数据库 --- alter database 数据库名称 character set 字符集 collate 校对规则 ; 删除数据库 --- drop database 数据库名称; 切换数据库 --- use 数据库名称 查看当前正在使用数据库 ---- select database();
File ---- BLOB / TEXT约束:作用 - 保证数据的完整性 主键约束 --- primary key ---主键约束默认就是 唯一 非空 唯一约束 --- unique 非空约束 ---- not null 创建表 -- create table 表名称(字段名 字段类型(长度) 约束.....) 查看表 -- show tables; 查看表结构 --- desc 表名; 删除表 --- drop table 表名;
修改表 {**1.** 添加列: alter teble 表名 add 列名 类型(长度)约束; 修改列类型 长度和约束: alter table 表名 modify 列名 类型(长度)约束; }【 删除列 : alter table 表名 drop 列名; 修改列名称 : alter table 表名 change 旧列名 新列名 类型(长度)约束 修改表名 : rename table 表名 to 新的表名; 修改表的字符集 : alter table 表名 character set 字符集; 】
benutils 重点表记录 添加表记录 【 向表中插入某些列 : insert into 表名 (列名1,列名2...)values(值1,值2...); 向表中插入所有列 : insert into 表名 values(值1,值2...); 】 *注意: 值类型 要和 数据库中表列类型一致 顺序要一致 最大长度要符合设置值 值类型是字符串 或 日期类型 使用 单引号引起来;** 添加中文记录 -- 将MySQL数据库服务器中的客户端部分的字符集 改为gbk; 然后重启 MySQL的服务器 ; services.msc 修改表的记录 : update 表名 set 列名= 值 , 列名 = 值 【where 条件】;注意事项 同上; 删除表的记录: delete 表名 【where 条件】;注意: 删除表的记录 指得是删除表中的一行记录; 删除如果没有条件 默认是删除表中的所有记录;
【两种做法: 1. delete from user ; 删除所有 属于DML语句 依次删除 可以作用在DML语句上的 2. truncate table user; 删除所有记录 属于DDL 将表删除 然后创建一个结构一样的表 事物不能控制DDL的 ;】 查看表的记录(重点重点重点)(distinct)--- 去除重复的值;基本查询 --- select * |列名 from 表名 【条件】(select * from 表名) 条件查询 --- where > < <= >= <> = ; like -- 模糊查询[_或%] in--范围查询, 条件关联 -- and or not ; 排序查询---- order by 字段名称 asc / desc -- 倒序 ; 分组查询 ---- group by 字段名称 聚合函数 ---- sum() count() min() max() avg();
where 的子句后面不能 跟着聚合函数 如果现在使用带有聚合函数的条件过滤 (分组条件过滤) 需要使用一个关键字 having;总结 ;S(select)...F(from)...W(where)...G(group by)...H(having)...O(order by);
|