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

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

  

最新文章

  1. wordpress电子商务插件和主题的使用方法
  2. 流编辑器-sed
  3. RPC学习----Thrift快速入门和Java简单示例
  4. springMVC+mybatis 增删该操作后判断影响行数一直返回-2147482646
  5. mvc之页面强类型
  6. C++ STL 简单记录
  7. C# 特性详解(上)
  8. How to Fix Missing TortoiseSVN File Status Icons in Windows
  9. perl 爬取上市公司业绩预告
  10. java读写锁源码分析(ReentrantReadWriteLock)
  11. 数学#素数筛法 HDU 4548&POJ 2689
  12. HTML基础1
  13. CentOS7关闭/开启防火墙出现 Unit iptables.service failed to load
  14. 【Uva 10269 马里奥与公主的归途】
  15. python3解析库lxml
  16. 网络编程socket方法
  17. 从单一WAR到多活, 记述一个创业公司的架构演变
  18. android中Logcat的TAG过滤
  19. 【读书笔记】Junit实战
  20. Ruby 配置vimrc

热门文章

  1. css 打字动画
  2. Java线程锁一个简单Lock
  3. SpringMvc xml 配置
  4. iOS开发数据库篇—SQL
  5. javascript 函数声明和函数表达式的区别(学习笔记)
  6. windows下的Nodejs及npm的安装、常用命令,Nodejs开发环境配置
  7. struts2学习:配置篇之namespace
  8. remount failed: Operation not permitted ,怎么办呢?
  9. Hbase写入hdfs源码分析
  10. 识别有效的IP地址和掩码并进行分类统