不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述、安装、数据库、表和数据行的操作

1. 基本概述

  1.1 数据库就是用来存储数据的。早期是存在文件里面的操作起来效率低而且不是很安全。

  1.2 关系型数据库。这个可以简单理解成以表的形式存储的数据库,表与表存在着某些关系,而数据库能帮我们保存这种关系。

  1.3 ANSI和ISO制定了一套SQL标准,所有数据库厂商都得遵循这个标准,但是他们也各自进行了扩展(即他们的SQL方言如:oracle的pl/sql,sql server的T-sql)

2.安装

 安装很简单就不赘述了

3.操作数据库 ps:其实就是讲了数据库的CRUD(格式:要做的操作+操作对象类型+对象名字)

  3.1 创建数据库

    3.1.1 创建一个数据库 mydb4

             create database mydb4;

    3.1.2 创建一个字符集为gbk的数据库mydb5

         create database mydb5 character set gbk;

  3.2 查看数据库 

    3.2.1 查看数据库列表  show databases;

    3.2.2 查看被选中的数据库(正在操作的数据库) select database();

    3.2.3 查看指定数据库的创建语句 show create database mydb5;

  3.3 修改数据库

    将mydb5的字符集修改成utf8

alter database mydb5 character set utf8;

  3.4 删除数据库

    drop database mydb5;

  3.5 补充

    3.5.1 选中数据库 use mydb4;

    3.5.2 数据库中自带的数据库不要删,因为数据库运行的时候依赖这几个数据库。比如:当你新建一数据库的时候,他会将自带的数据库当做模板

4.操作表

  4.1创建表

    练习:在mydb2中创建表employee(id,name,gender,bithday,entry_date,job,salary,resume)

    4.1.1 约束  主键约束:primary key;唯一性:unique;非空:not null

  4.2 修改表

    Alter table 表名 Add/modify/drop/change

    4.2.1 增加一列 alter table 表名 add 列名 类型  alter table employee add image blob;

    4.2.2 修改某一列的类型 alter table 表名 modify 列名 类型  alter table dept modify dept_name varchar(44)

    4.2.3 修改表名  rename table 表名 to 新表名

    4.2.4 修改列名称 alter talbe 表名 change 列名 新列名 类型 alter table dept1 change dept_name name varchar(22);

    4.2.5 修改表的字符集 alter table 表名 character set uft8   alter table dept1 character set gbk;

  4.3 查看表

    4.3.1 查看表结构 Desc+tableName

    4.3.2 查看建表语句  show create table +tableName

  4.4 删除表

   drop table 表名 删除表中的数据,标识不会重新计数

    truncate table employee 摧毁表在重建表,标识也会重新开始计数

  4.5 附属补充

    4.5.1 varchar和char:varchar类型长度可变,char类型长度不可变,但是char类型读取性能高,varchar每次都要判断长度

    4.5.2 大数据类型:blob(大二进制,最大支持4G,读取时用byte数组)、Text(文本类型,读取时用char数组)

    4.5.3 数值类型vsjava类型:  tinyint = byte;smallint  = short; int = int ;bigint = long;

    4.5.4 bit类型(默认是一位可用来保存bool值)

    4.5.5日期类型。date(日期)、time(时间)、datetime(日期时间)、timestamp(时间戳,当行数据发生改变时这个值会自动变可用来记录最后更改时间)

    4.5.6 mysql中sql语句中有字符跟日期是要用单引号(数据库中不认双引号,只认单引号)

    4.5.7 mysql中乱码的问题 数据库服务器默认是用iso8859-1来保存数据的,当有中文从客户端传过来的时候,服务器在iso8859-1这张码表里没有找到对应的编码,所以保存时会出现乱码.  ps:可以通过设置mysql安装目录下的my.ini来更改服务器端默认码表(每个国家都有自己的码表)

    4.5.8 插入数据时auto_increment字段给null

    4.5.9 如果要插入所有字段列的声明可以省写 insert into dept1 values(……)

5.操作数据行

  5.1 模糊查询(% _) select * from dept where dept_name like '%a%' 或者 like 'a_'(a后面跟一个字符)

  5.2 聚合函数(就是数据库自带的一些函数)

    select count(name), math+chinese 总成绩 from exam where math+chinese(这里不可用总成绩来替代因为数据库语句的执行顺序问题) >180

    select  name,math+chinese 总成绩 from exam order by 总成绩(这里可以替代也是执行顺序的问题)

  5.3 只要null参与计算的结果都会为null  ps:利用ifnull(字段,0)排除计算结果为null

  5.4 group by 分组后一组只显示一条了(摞在一起了);没有用聚合的字段必须在group by之后

  5.5 where 和having的区别 where 是分组之前进行过滤,having是分组之后进行过滤;where后不能用聚合函数(执行顺序的问题),having可以

  5.6 sql的书写顺序 select from where group by having order by

  5.7 sql的执行顺序 from where select group by having order by

6. 多表设计  ps:为什么叫关系型数据库,因为表与表之间存在着某种关系,而数据库能帮我们保持这种关系所以就叫关系型数据库(如:外键)

  6.1 外键

    某一个表中一列数据会参照另外一个表中的列(主键)

  6.2 表关系类型

    6.2.1 1对1 任意表中保存一方主键作为外键

    6.2.2 1对多  多方表中保存1方主键作为外键

    6.2.3 多对多  建立中间表保存两方主键

  6.3 多表查询  inner join,left join,right join,full join

  

传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作的更多相关文章

  1. 传智播客JavaWeb day01 快捷键、XML

    2015-01-14 一直计划着学习java,今天晚上终于下定决心看了下传智播客朴乾老师的javaweb开发视频day01之第一讲,主要内容是开发工具简单介绍.怎么创建工程.Junit的介绍,我是C# ...

  2. 传智播客JavaWeb day10-jdbc操作mysql、连接数据库六大步骤

    第十天主要讲了jdbc操作mysql数据库,包括连接数据库六大步骤(注册数据库驱动.获得连接对象connetion.生成传输器stament.执行查询获得ResultSet.遍历结果集.关闭资源).介 ...

  3. 传智播客JavaWeb听课总结

    一. JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本兼容低版本的 ...

  4. 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销

    第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...

  5. 传智播客JavaWeb day02笔记

    2015年1月21日 今天的主要内容:介绍了几款常用Javaweb服务器,重点介绍了tomcat以及tomcat的安装和怎么样检测安装成功 1.JavaWeb常见服务器 Tomcat(免费但是只支持部 ...

  6. 传智播客JavaWeb day11--事务的概念、事务的ACID、数据库锁机制、

    1. 什么叫做事务? 2.默认情况下每一条sql语句都是一个事务,然后自动提交事务  ps:如果想多条语句占一个事务,则可以手动设置SetAutoCommit为false 3.关键字 start tr ...

  7. 传智播客JavaWeb day05-session、url重写

    1.session是什么 1.1 session是一种会话技术  ps:还有一种是cookie 2.session的作用 2.1 服务器端会话范围内的数据共享 3.session的生命周期 3.1何时 ...

  8. 传智播客JavaWeb day06-jstl

    一.jsp标签(sun公司提供的) 二.EL表达式 三.jstl (javaserver pages standard tag library) 1.为什么要有jstl jsp标签太弱,el表达式功能 ...

  9. 传智播客JavaWeb day03

    ServletContext 这堂课主要讲ServletContext这个web域(可以看得见范围的)对象,web在启动的时候会创建唯一的ServletContext域对象. 作用:1.用来web域共 ...

随机推荐

  1. Vector成员为指针时要注意的问题

    vector的复制是浅复制,所以复制一个包含动态内存的变量的对象的话就会出问题. 解决办法:自己写类的复制构造函数,为新对象的指针开辟新的内存空间. 但当vector离开作用域之后,只会把其成员所占的 ...

  2. 《K&R》里贯穿全书的代码

    个人阅读<K&R>的感觉就是:前后内容联系特别紧密,前面的代码没有理解好到了后面就看不下去. 1.getline(char s[], int lim) 调用结果:往参数数组中读入字 ...

  3. python核心编程第六章练习6-14

    随机数.设计一个“石头.剪子.布”游戏,有时又叫“Rochambeau”,你小时候可能玩过,下面是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种:石头.剪子.布.胜利者从下面的规则产生, ...

  4. hasOwnProperty,in

    hasOwnProperty,in区别: hasOwnProperty:指出一个对象是否具有指定名称的属性 in:对象是否能够访问此属性(包括直接在对象上访问和通过原型访问) 看下示例代码: (fun ...

  5. TestLink

    TestLink的主要功能包括: 测试需求管理 测试用例管理 测试用例对测试需求的覆盖管理 测试计划的制定 测试用例的执行 大量测试数据的度量和统计功能 TestLink的主要特色包括: 支持多产品或 ...

  6. 初识python中的类与对象

    这篇博客的路线是由深入浅,所以尽管图画的花花绿绿的很好看,但是请先关注我的文字,因为初接触类的小伙伴直接看类的实现可能会觉得难度大,只要耐着性子看下去,就会有一种“拨开迷雾看未来”的感觉了. 一.py ...

  7. 0502团队项目 SCRUM团队成立

    Scrum团队成立 团队名称:对不对?队 团队目标:短期目标,完成O2O模式的第一个平台 团队口号:我们都不是神的孩子 团队照: 角色分配 产品负责人: 许佳仪.决定开发内容和优先级排序,最大化产品以 ...

  8. 最新为Phpstorm配置xdebug 进行断点调试

    额  ,曾经写过一个,现在发现不咋好使了 ,你说咋整,下载xdebug的时候 还得注意系统是32位还是64位,而且一堆下载文件不知道是哪个. 额,所以我现在发现有个更好的方法,啥也不下了 直接配把  ...

  9. MongoDB整库备份与还原以及单个collection备份、恢复方法

    mongodb数据库维护离不开必要的备份.恢复操作,而且一般不会出错,所以我们在使用的时候大部分时候使用备份和恢复操作就可以了   mongodump.exe备份的原理是通过一次查询获取当前服务器快照 ...

  10. java_easyui体系之目录 [转]

    摘要:简单介绍form的提交方式.与validatebox的结合使用. 一:form简介 Easyui中的form有两种提交方式.结合自己新添加的一种ajax提交方式.本文简单说明form的三种提交方 ...