精华内容
下载资源
问答
  • 数据库知识点

    2011-09-26 00:13:07
    MySQL数据库知识点,用关系代数表示检索的例子,用关系代数表示下列操作
  • 数据库知识点总结

    2018-03-03 12:51:53
    数据库知识点总结,大学计算机专业本科生数据库课程期末复习资料
  • 这是一篇MySQL数据库知识点的集合 将数据库的一些基本知识点和MySQL语法介绍结合起来的一篇文档 里面将讲解了MySQL数据库8.0的安装 以及数据库的基本操作 大致内容包含 数据库基础知识 2 安装MySQL8.0压缩版 3 运行...
  • 数据库知识点补充

    2021-04-08 08:22:54
    数据库知识点补充 innodb

    数据库知识点补充
    在这里插入图片描述
    在这里插入图片描述
    innodb
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 数据库知识点整理.md

    2020-04-03 11:40:41
    非常详细的数据库知识点整理,主要涵盖:数据库基础知识、DDL、DML、DQL、DCL、事务讲解、Mysql、JDBC、Java操作Mysql、数据库连接池、Redis型非关系数据库、Java使用Jedis操作Redis数据库
  • MySQL数据库知识点总结.docx
  • Mysql数据库知识点

    2019-04-20 19:51:12
    Mysql数据库知识点 1.管理数据库语句: 使用数据库: use test; 添加数据库: create database 数据库名; create database test; 修改数据库: alter database 数据库名; alter databasetest; 删除数据库...

    Mysql数据库知识点

    1.管理数据库语句:

    使用数据库:

    use test;

    添加数据库:

    create database 数据库名;

    create database test;

    修改数据库:

    alter database 数据库名;

    alter database test;

    删除数据库:

    drop database 数据库名;

    drop database test;

    查看所有数据库:

    show databases;

     

    2.管理表语句:

    添加数据表:

    create table 表名(

      列名 数据类型 数据约束,

      列名 数据类型 数据约束

    );

    create table student(

      name varchar(20) not null,

      age int(4)

    )

    修改数据表:

    alter table 表名;

    1)在表中增加新字段

    alter table student add colunm name varchar(20);

    2)删除表中的字段

    alter table student drop name;

    3)修改表中字段的类型

    alter table student modify name varchar(10);

    删除数据表:

    drop table 表名;

    drop table student;

    查看所有表:

    show tables;

     

    3.管理数据语句:

    插入数据:

    insert into 表名 (列1,列2...)  values (值1,值2...);

    insert into student (name,age) values ('张三',20);

    更新数据:

    update 表名 set 列=修改值 where 条件;

    update student set  name='李四' where name='张三';

    删除数据:

    delete from 表名 where 条件;

    delete from student where name='李四';

    查询数据:

    selete *  from 表名 where 条件;

    selete * from student where name='张三';

     

    4.各种查询语句:

    查询时指定别名:

    1) selete id AS '编号',name AS '姓名' from student;

    2) selete id '编号',name '姓名' from student;(AS可以省略)

    查询时合并列:

    需求:查询每个学生的总分

    selete name AS '姓名',(servlet+mysql) AS '总成绩' from student;

    注意:合并列的字段必须是数值类型的字段

    查询时去除重复(distinct):

    需求:查询有哪些地区的学生

    selete DISTINCT address from student;

    另一种语法

    selete DISTINCT(address) from student;

    条件查询

    逻辑条件: and  or

    需求:查询学生的id为1,且姓名为张三的学生

    selete * from student where id=1 and name='张三';(交集)

    需求:查询学生的id为2,或姓名为张三的学生

    selete * from student where id=2 or name='张三';(并集)

    比较条件: >  <  >=  <=  =  <>  (between and--在...之间 包前包后)

    需求:查询servlet分数大于80分的学生

    selete * from student where servlet>80;

    需求:查询mysql分数小于或等于85分的学生

    selete * from student where mysql<=85;

    需求:查询servlet分数大于或等于80分,且小于或等于85分的学生

    selete * from student where servlet>=80 AND servlet<=85;

    代替上面语句的语法

    selete * from student where servlet BETWEEN 80 AND 85;

    需求:查询年龄不等于30的学生

    selete * from student where age<>30;

    判空条件: is null,   is not null,   =’’,   <>’’

    Null:表示没有数据

    空字符:表示有数据

    需求:查询没有性别数据的学生(数据‘男’或‘女’)

    selete* from student where gender IS NULL OR gender='';

    需求:查询有性别数据的学生

    selete * from student where gender IS NOT NULL AND gender<>'';

    模糊条件: like

    模糊替代符号:

    %:替代任意个字符

    _:替代一个字符

    需求:查询姓“李”的学生

    SELECT * FROM student WHERE NAME LIKE '李%';

    需求:查询姓名中包含‘四’字的学生

    SELECT * FROM student WHERE NAME LIKE '%四%';

    需求:查询姓‘李’,全名只有两个字的学生

    SELECT * FROM student WHERE NAME LIKE '李_';

    聚合函数查询(用于统计结果)

    Max()取最大值  min()取最小值  avg()取平均值  count()统计标的记录数量 sum()求和

    需求:查询servlet的最高分

    SELECT MAX(servlet) FROM student;

    需求:查询mysql的最低分

    SELECT MIN(mysql) FROM student;

    需求:查询servlet的平均分

    SELECT AVG(servlet) FROM student;

    需求:查询当前有几个学生

    SELECT COUNT(*) FROM student;

    需求:查询servlet成绩的总和

    SELETE SUM(servlet) from student;

    分页查询(limit)

    Limit起始行数,查询的行数

    起始行数从0开始

    需求:查询第1,2条数据

    SELECT * FROM student LIMIT 0,2;

    分页查询需知道:当前页码,每页显示条数

    结论分页查询当前页数据:select * from student limit (当前页码-1)*每页显示条数,每页显示条数;

    需求:学生共20条数据,每页显示5条,共4页

    查询第3页(第11到15条)的学生数据:select * from student limit 10,5;

    查询后排序(order by)

    DESC:降序。数值从大到小,字母z-a

    ASC:升序。数值从小到大,字母a-z

    默认情况下,按照插入的顺序排序

    需求:按照id的升序排序

    select * from student order by id asc;

    需求:按照servlet成绩降序排序

    select * from student order by servlet desc;

    多个排序条件的情况:先按照前面的条件排序,当出现重复记录,再按照后面的条件排序

    需求:按照age升序,再按照servlet成绩升序排序

    select * from student order by age asc,servlet asc;

    分组查询(group by)

    需求:查询每个地区有多少人

    SELECT address,COUNT(*) FROM student GROUP BY address;

    需求:统计男女的人数

    注意:where条件必须放在group by 分组之前

    SELECT gender,COUNT(*) FROM student WHERE gender IS NOT NULL AND gender<>'' GROUP BY gender;

    分组后筛选(having)

    需求:查询哪些地区的人数是大于2个的地区

    查询哪些地区多少人 2)筛选人数大于2的地区

    注意:having使用在group by分组之后,对分组后的条件进行筛选

    SELECT address,COUNT(*) FROM student GROUP BY address HAVING COUNT(*)>2;

     

    5.数据约束(给表添加数据约束,从而约束用户操作表数据的行为)

    1)默认值约束(default)

    create table test(

      name varchar(20),

      gender varchar(20) default ‘男’

    )

    需求:当不插入gender的时候,分配一个‘男’的默认值

    注意:1)当没有插入gender字段的时候,分配一个默认值

    2)非空约束(not null)

    create table test(

      name varchar(20) not null,

      gender varchar(20)

    )

    需求;name字段一定要有值(不能不插入数据,不能是null),这是给name添加非空约束

    1)非空约束,不能不插入值

    Insert into test(gender) values(‘男’);

    2)非空约束,不能插入null

    Insert into test(name,gender) values(null,’男’);

    3)唯一约束(unique)

    create table test(

      Id int unique,

      name varchar(20)

    )

    需求:id的值不能出现重复。这时就要给id添加一个唯一约束

    1)不能插入重复的值

    2)唯一约束,可以插入多个null。所以唯一约束不能约束null

    Insert into test(id,name) values(1,’张三’);

    4)主键约束(primary key)(唯一+非空)

    注意;

    1)通常情况下,我们会给每张表都设置一个主键字段,用来标记记录的唯一性

    2)但是不建议把业务含义字段作为主键,因为随着业务的变化,业务字段可能出现重复

    3)建议给每张表都独立添加一个叫id的字段,把这个id字段设置成主键,用来作为记录的唯一性

    create table test(

      Id int primary key,

      name varchar(20)

    )

    1)唯一性

    2)非空性

    5)自增长约束(auto_increment)

    create table test(

      Id int primary key auto_increment,

      name varchar(20)

    )

    自增长约束:初始值为0,每次递增1

    使用truncate table 删除数据的时候,可以把自增长的初始值置为0

    6)外键约束

    员工表(副表:被别的表约束的表,外键设置在副表)

    Create table employee(

      Id int primary key auto_increment,

      name varchar(20),

      deptId int,

      添加外键约束(foreign key)

      Constraint employee_dept_fk foreign key(deptId) references dept(id)

                     外键名                               外键字段                

    )

    部门表(主表:约束别人的表)

    Create table dept(

      Id int primary key auto_increment,

      Name varchar(20)

    )

    外键约束在什么情况下会起作用?

    插入数据:当往副表插入了主表中不存在的数据时,外键起作用

    修改数据:当往副表中修改主表中不存在的数据时,外键起作用

    删除数据:副表中有关联主表数据的情况下,当删除主表数据时,外键起作用

    当有了外键之后,应该如何管理数据呢?

    插入数据:先插入主表的数据,再插入副表数据

    修改数据:先修改主表数据,再修改副表数据

    删除数据:先删除副表数据,再删除主表数据

    7)级联技术(cascade)

    级联:当有了外键的时候,我们希望修改或删除数据的时候,修改或删除主表数据时,同时能够影响副表的数据,这时就可以使用级联

    Create table employee(

      Id int primary key auto_increment,

      name varchar(20),

      deptId int,

      添加外键约束(foreign key)

      添加级联修改:on update cascade

      添加级联修改:on delete cascade

      Constraint employee_dept_fk foreign key(deptId) references dept(id) on update cascade on delete cascade

                     外键名                               外键字段 

    );

    部门表(主表:约束别人的表)

    Create table dept(

    Id int primary key auto_increment,

    Name varchar(20)

    );

     

    6.数据库设计的三大范式

    第一范式;要求表的每个字段必须独立的不可分割的单元

    学生表: student name ---违反第一范式

                   张三|狗娃

         王涵|张小涵

    查询:现用名中包含‘张’的学生

    Select * from student where name like ‘%张%’;

    学生表: student name old_name  ---符合第一范式

                        张三    狗娃

           王涵             张小涵

    第二范式:在第一范式的基础上,要求表的除主键以外的字段都和主键有依赖关系

    一张表只表达一个意思

    员工表:employee

    员工编号   员工姓名   部门名称    订单名称   ---违反第二范式

     

    员工表:employee

    员工编号   员工姓名   部门名称     ---符合第二范式

                订单表:

                订单编号 订单名称

    第三范式:在第二范式的基础上,要求表的除主键以外的字段都只能和主键有直接决定的依赖关系

    员工表:employee

    员工编号   员工姓名  部门编号  部门名称 ---违反第三范式(出现数据冗余)

                   1        张三       1        软件开发部

                   2        李四       1        软件开发部

    员工表:employee

    员工编号   员工姓名  部门编号   ---符合第三范式

     1        张三       1

     2        李四       1

    部门表:dept

    部门编号   部门名称

    1          软件开发部

     

    7.多表查询

    1.交叉连接查询(笛卡尔乘积:4*3=12,产生笛卡尔积的原因是没有足够的连接条件)(一般不用)

    需求:查询员工及其部门名称

    SELECT employee.name,dept.name

    FROM employee,dept;

    2.内连接查询(使用最多)

    多表查询的步骤:1)确定查询哪些表

                   2)确定查询哪些字段

                   3)确定连接条件(规则:条件=表数量-1)

    SELECT employee.name,dept.name

    FROM employee,dept

    WHERE employee.deptId=dept.id;

    另一种语法

    SELECT e.name,d.name

    FROM employee e

    INNER JOIN dept d

    ON e.deptId=d.id;

    3.左外连接查询(左表数据全部显示,如果右边不满足,则显示null)

    需求:查询部门及其部门的员工

    SELECT d.name,e.name

    FROM dept d

    LEFT OUTER JOIN employee e

    ON d.id=e.deptId;

    4.右外连接查询(右表数据全部显示,如果左边不满足,则显示null)

    SELECT d.name,e.name

    FROM employee e

    RIGHT OUTER JOIN dept d

    ON e.deptId=d.id;

    展开全文
  • 三级数据库知识点

    2014-03-29 18:40:35
    三级数据库知识点,,2014改版后三级数据库考试部分知识点笔记
  • 数据库知识点1

    2019-01-11 23:58:46
    数据库知识点1 1. 关于数据库系统和数据库管理系统,数据库管理系统是软件产品,而数据库系统不仅仅是软件产品。 2. 从用户角度看数据库管理系统的功能,数据库管理系统就是通过数据库语言让用户操作进而提供...

    数据库知识点1

    1. 关于数据库系统数据库管理系统数据库管理系统是软件产品,而数据库系统不仅仅是软件产品。

    2. 从用户角度数据库管理系统的功能,数据库管理系统就是通过数据库语言用户操作进而提供数据库定义、数据库操纵和数据库控制功能的系统,同时提供了一系列程序能够实现对数据库的各种存储与维护

    3. 从系统角度看数据库管理系统,不仅有数据库语言及其编译、查询实现与查询优化以及事务处理功能,还包括其他功能

    4. 数据库管理系统的功能:并发控制完整性控制通讯控制

    5. 关系数据库系统对层次/网状数据库系统的重大改进是数据检索操作不依赖于路径信息或过程信息,即非过程化的操作消除了由用户建立指针的弊端将逐一记录的操作改进为支持记录集合的操作。

     

     

    展开全文
  • 数据库知识点总结归纳

    千次阅读 2017-09-12 17:38:06
    数据库知识点总结归纳

    数据库知识点总结归纳

    一、基本概念

    1、数据

    (1)数据的定义:对客观事物的符号表示,如图形符号、数字、字母等,数据是数据库中存储的基本对象。

    (2)数据的种类:文字、图形、图像、声音

    (3)数据的特点:数据与其语义是不可分的

     

    2、数据库

     数据库(DataBase简称DB)是按照数据结构来组织、存储和管理数据的仓库。

     

    3、数据库管理系统(比如:MySql)

    (1)数据库管理系统(Database Management System 简称DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。

    (2)关系型数据库管理系统称为RDBMS,R指Relation。

    (3)DBMS的作用:它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

     

    4、数据库系统

    数据库系统(Database System,简称DBS),是由数据库及其管理软件组成的系统。

     

    5、数据库管理员

    数据库管理员(Database Administrator,简称DBA),负责全面管理和控制数据库系统。

     

    6、DBA、DBMS、DB和DBS之间的关系

    7、数据库的优点

    (1)数据按一定的数据模型组织、描述和储存

    (2)可为各种用户共享

    (3)冗余度较小,节省存储空间

    (4)易扩展,编写有关数据库应用程序

     

    二、数据库管理系统(DBMS)

    1、DBMS的主要功能

    (1)数据定义功能:提供数据定义语言(DDL)

      用于定义数据库的所有特性和属性,尤其是行布局、列定义、键列(有时是选键方法)、文件位置和存储策略,包括命令:

      DROP(删除数据库)

               删除数据库:drop database if exists 数据库名

      CREATE(创建数据库)

               创建表:create table if not exists 表名(列名 列名约束)

      ALTER(修改数据库)

               添加列名:alter table 表名 add 列名 约束条件

               修改列名:alter table 表名 change 老列名 新列名 数据类型

               修改列字段数据类型:alter table 表名 modity 列名 数据类型

               删除列名:alter table 表名 drop 列名

               修改表名:alter table 表名 rename 新表名

      GRANT(赋予权限)

      REVOKE(从当前用户或组中取消权限)、TRUNCATE(只删除表中的所有数据,不删除表的结构)

    注意:truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与delete from数据表的输出全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可恢复的。

     

    (2)数据操纵功能:提供数据操纵语言(DML)

    操纵数据实现对数据库的基本操作:

      SELECT(查询)

              select from 表名 where 条件(条件1 and 条件2)

      INSERT(插入)

              insert into 表名(列1,列2) values(' ',' '),(' ',' '),(' ',' ')

      DELETE(删除)

              delete from 表名 where 条件

      UPDATE(修改)

              update 表名 set 列名=' ',列名=' ' where 条件

     

    (3)数据库的运行管理

      a、保证数据的安全性、完整性

      b、多用户对数据的并发使用

      c、发生故障后的系统恢复

     

    (4)数据库的建立和维护功能(实用程序)

      a、数据库数据批量装载

      b、数据库转储

      c、介质故障的修复

      d、数据库的重组织

      e、性能监视

     

    2、DBMS的分类(大公司首选oracle-----数据库中的贵族)

      小型数据库:Access、foxbase、sqlite

      中型数据库:mysql、sql server、infomix

      大型数据库:Sybase、Oracle、db2

       

      注意:Mysql、SQL server、Oracle、DB2三者的特点

         Oracle:

             (1)最稳定、功能最强大、性能最好、容量无限、最昂贵、重量级,分布式数据库  系统,适用于大型的项目

           (2)"关系----对象"型数据库

           MySQL:

           (1)轻量级、易安装、易管理、速度比较快,使用起来方便,适用于中小型企业

           (2)开源、免费、与PHP组成经典的LAMP组合

           SQL Server:

           (1)针对不同用户群体的五个特殊的版本

           (2)易用性好

           DB2:

           (1)应用于大型应用系统,具有较好的可伸缩性

     

    3、B/S和C/S

      B/S浏览器服务器Browser Server

        客户不需要安装程序,只需要有浏览器引擎即可:淘宝

      C/S客户端服务器Client Server

        客户需要安装程序,比如:QQ

     

    三、MySQL的概念、特性以及不足

    1、概念

    (1)什么是MySQL

      MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被Sun公司收购。2009年,甲骨文公司Oracle收购Sun公司,MySQL成为Oracle旗下产品。

      MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多规模网站和应用,比如Google和Facebook等网站。

     

    (2)什么是SQL

      SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。

     

    2、MySQL的特征:

      (1)性能快捷、优化SQL语言

      (2)容易使用

      (3)多线程和可靠性

      (4)多用户支持

      (5)可移植性和开发源代码

      (6)遵循国际标准和国际化支持

      (7)为多种编程语言提供API

     

    3、MySQL5新特性

      (1)子查询

      (2)视图

      (3)存储过程

      (4)触发器

      (5)事务处理

      (6)热备份

      (7)二进制Bit类型

             等等......

     

    4、MySQL的不足

      (1)不能直接处理XML数据

      (2)一些功能上支持得不够完善和成熟

      (3)不能提供任何OLAP(实时分析系统)功能

     

    四、MySQL的使用

    1、用命令行来执行数据库(DDL数据库定义语言)

      (1)输入登录密码(连接的密码)

     

      (2)显示MySQL中所有的数据库

    show databases;

      

      (3)退出MySQL

         使用quit、exit、\q退出MySQL

     

      (4)创建数据库(create database 数据库名) 

    create datebase school

         创建数据库时,判断是否具有同名数据库再创建

    create datebase if  not exists school

         创建数据库后,为数据库设置字符编码

    alter database school character set utf8

      

      (5)删除数据库(drop database 数据库名)

    drop database school

      

      (6)使用某个数据库(user 数据库名)

         注意:进入到该数据库,例如你新建表的时候要先写这句话,这样保证了我的表创建在该数据库下,反之会默认放置在默认的数据库中  

    use school

     

      (7)创建表(create table 表名 (列名1  数据类型,.......))

    create table if not exists user(id int not null primary key,username varchar(40),password varchar(50),power int not null)

             创建表时,是id自动递增用auto_increment

    create table if not exists user(id int not null auto_increment primary key,username varchar(40),password varchar(50),power int not null)

       注意:关于数据类型:char和varchar

       char(20):分配20个空间,当只使用5个空间时,没用的空间会被空格填补

       varchar(20):分配20个空间,当只使用5个空间时,那么空间会占用6个,其中一个保存数据长度。

       因此,建议使用varchar

     

       (8)显示选择的数据库中所有的表 

    show tables

     

      (9)查看表里面的详细信息(desc 表名)

    desc user

     

      (10)删除表(drop table 表名)

    drop table user

     

      (11)删除一个表的主键(alter table 表名 drop primary key)

    alter table user drop primary key

     

      (12)往表中添加一列(alter table 表名 add 要添加的列名 数据类型)

    alter table user add address varchar(50)

     

      (13)往id列后面添加一列

    alter table user add phone varchar(50) after id

     

      (14)增加一列,使其位于第一列

    alter table user add id1 int not null first

     

      (15)删除某一列(alter table 表名 drop 列名)

    alter table user drop id1

     

      (16)修改表字段

       a、使用change可以修改字段名称和该字段的数据类型(alter table 表名 change 字段名 新字段名 新数据类型)

    alter table user change id userid varchar(30)

       b、使用Modify只能修改数据类型(alter table 表名 modify 字段名 新数据类型)

    alter table user modify password varchar(30)

     

    2、Navicat进行增删改查(DML数据操纵语言)

      Navicat代码注释的三种:

                  --注释的代码(注意空格)

                  #注释的代码

                  /*注释的代码*/

      (1)创建一张表

    CREATE TABLE student(
    stuId VARCHAR(20) NOT NULL PRIMARY KEY,
    stuName VARCHAR(40) NOT NULL,
    stuMsg VARCHAR(80) NOT NULL
    )

     

      (2)往表中添加记录

          insert into 表名(字段1,字段2,......) values(值1,值2,......)

    INSERT INTO student(stuId,stuName,stuSex,stuPassword) 
    VALUES('1','杨惠霞','','123456'),
    ('2','朱元梅','','985082'),
    ('3','杨修志','','435291'),
    ('4','祝横岗','','648310')

     

      (3)查找表中名字为祝横岗,密码为648310的记录,并列条件使用and

    SELECT * FROM student WHERE stuName='祝横岗' AND stuPassword='648310'

     

      (4)修改表中的记录(update 表名 set 列名=‘xxx’ where ......)

               将id为4的字段stuName的值改成“关雎宫”

    UPDATE student SET stuName='关雎宫' WHERE stuId='4'

     

      (5)删除表中的记录(delete from 表名 where ......)

          删除编号为3的数据

    DELETE FROM student WHERE stuId='3'

     

     

    五、MySQL数据类型

    1、数据类型种类

    (1)数值型

          a、整型

              可以由十进制和十六进制表示,整数由数字序列组成,如:100,0xA

          b、浮点型

              浮点数由一个数字加一个小数点再加上一个数字组成,如:10.5

    (2)字符串

          由单引号或者双引号括起来的字符或者数字,如:'abc10',"abc"

          字符串中要用转义字符才能表示的特殊符号

    串转义序列
    序列 说明 序列 说明
    \0 NUL(ASCII 0) \n 新行
    \' 单引号 \r 回车
    \"" 双引号 \t 制表符
    \b 退格 \\ 反斜杠

    (3)日期和时间值

      存储如"2005-1-1"或"12:00:00"这样数值的值,MySQL中日期是按"年-月-日"的顺序

    (4)NULL值

      是一种无类型的值,表示“空,什么也没有”

     

    2、数值列类型

    (1)所有数值列类型的类型名以及其说明和所占的字节数见下表:

    数值列类型
    类型名 说明 类型名 说明
    TINYINT 非常小的整数                                 BIGINT 大整数
    SMALLINT 较小整数 FLOAT 单精度浮点数
    MEDIUMINT 中等大小的整数 DOUBLE 双精度浮点数
    INT 标准整数 DECIMAL 一个串的浮点数(多用于银行的数值)

     

    数值列类型的存储需求
    类型说明 存储需求
    TINYINT[(M)] 1字节
    SMALLINT[(M)] 2字节
    MEDIUMINT[(M)] 3字节
    INT[(M)] 4字节
    BIGINT[(M)] 8字节
    FLOAT[(M,D)],FLOAT(4) 4字节
    DOUBLE[(M,D)],FLOAT(8) 8字节
    DECIMAL(M,D) M字节

    M是从1到255的值,它表示列中值的字符数

     

     M与D对DECIMAL(M,D)取值范围的影响
    类型说明 取值范围(MySQL<3.23) 取值范围(MySQL>=3.23)
    DECIMAL(4,1) -9.9到99.9 -999.9到9999.9
    DECIMAL(5,1) -99.9到999.9 -9999.9到99999.9
    DECIMAL(6,1) -999.9到99999.9 -99999.9到999999.9
    DECIMAL(6,2) -99.99到999.99 -9999.99到99999.99
    DECIMAL(6,3) -9.999到99.999 -999.999到9999.999

    对于每种浮点型,可指定一个最大的显示尺寸M和小数位D,M和D对于DECIMAL是必须的

     

    (2)数值列的完整性约束

    a、auto_increment

      自动标识列,一个表中最多能有一个此属性的列。对于想使用此属性的列应该定义为not null,并定义为primary key或定义为unique键。

    create table student(id int auto_increment not null primary key)

     

    b、unsigned

      无符号,此属性禁用负值,将数值的范围从0开始。

    create table student(num tinyint,num2 tinyint unsigned)

     

    c、null和not null

      默认为null,即插入值时没有在此字段插入值时自动填null,如果指定了not null,则必须在插入值时在此字段添入值,不允许插入null值。

     

    d、default

      可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加default后指定值。

     

    e、zerofill

      前导零填充数值类型值以达到列的显示宽度。

    3、字符串列类型

     所有字符串列类型及其说明和所占字节数见下表:

    串列类型
    类型名 说明
    CHAR 定长字符串
    VARCHAR 可变长字符串
    TINYBLOB 非常小的BLOB(二进制大对象)
    BLOB 小BLOB
    MEDIUMBLOB 中等的BLOB
    LONGBLOB 大BLOB
    TINYTEXT 非常小的文本串
    TEXT 小文本串
    MEDIUMTEXT 中等文本串
    LONGTEXT 大文本串
    ENUM 枚举:列可赋予某个枚举成员
    SET 集合:列可赋予多个集合成员

    (1)CHAR和VARCHAR类型

      CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差异在于Mysql处理存储的方式:

      CHAR把这个大小视为值的准确大小(如果值的长度不够长,则用空格填补比较短的值)。

      VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加一个额外的字节记录长度)。因而较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。

     

    (2)BLOB和TEXT类型

       BLOB是二进制大对象,如果想存储二进制数,BLOB将是最佳选择,而TEXT与之相同,只是BLOB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。

     

    (3)ENUM和SET类型

      它们是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(不推荐使用)

     

    枚举的例子:

    alter table test2 add sex enum('','');
    insert into test2 values(2,70,'');

     

    4、日期和时间列类型

     所有时间和日期列类型的类型名及其说明和所占的字节数见下表:

     

    日期与时间列类型
    类型名 说明
    DATE ‘YYYY-MM-DD’格式表示的日期值
    TIME 'hh:mm:ss'格式表示的时间值
    DATETIME 'YYYY-MM-DD hh:mm:ss'格式
    TIMESTAMP 'YYYYMMDDhhmmss'格式表示的时间戳值
    YEAR 'YYYY'格式的年份值

    注意:(1)每个时间和日期列类型都有一个零值,当插入非法数值时就用零值来添加

        (2)表示日期时必须先按:年,月,日的顺序给出

            (3)DATE,TIME,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为"YYYY-MM-DD","hh:mm:ss"和"YYYY-MM-DD hh:mm:ss",对于DATETIME类型,日期和时间部分都需要。

            (4)TIMESTAMP

          时间戳列类型以YYYYMMDDhhmmss的格式来表示值,主要用于记录更改或创建某个记录。

     

    5、常见数据类型

    常用的数据类型
    分类 备注和说明 数据类型 说明
    二进制数据类型 存储非字符和文本的数据 BLOB 可用来存储图像
    文本数据类型 字符数据包括任意字母、符号或者数字字符的组合 char 固定长度的非Unicode字符数据
    varchar 可变长度非Unicode数据
    text 存储长文本信息
    日期和时间 日期和时间在单引号内输入 time 时间
    date 日期
    datetime 日期和时间
    货币数据类型 用于财务数据 decimal 定点数
    Bit数据类型 表示是/否的数据 bit 存储布尔数据类型
    数值型数据 该数据仅包含数字,包括整数、负数以及浮点数

    int

    smallint

    整数

    float

    double

    浮点数

     

    6、常见的完整性约束

    常见的完整性约束
    类型 说明
    PRIMARY KEY 主码约束主键)
    UNIQUE 唯一性约束
    NOT NULL 非空值约束
    AUTO_INCREMENT 用于整数列默认自增1
    UNSIGNED 无符号整数
    DEAULT default_value 默认值约束
    DEAULT cur_timestamp

    创建新记录时默认保存当前时间(仅适用timestamp数据列)

    ON UPDATE cur_timestamp 修改记录时默认保存当前时间(仅适用timestamp数据列)
    CHARACTER SET name 指定字符集(仅使用字符串)

     

     

    7、数据表的类型(在表上右键,点击对象信息,可以看到表的类型)

     在创建一个新的MySQL数据表时,可以为它设置一个类型,其中最重要的3中类型是:

    (1)MyISAM:成熟、稳定和易于管理

    (2)InnoDB:加入事物、数据行级锁定机制、外键约束条件、崩溃恢复等新功能(常用)

    (3)HEAP:只存在于内存中,可做临时表

    create table tmp(...)ENGINE=MyISAM

     

    8、主键和外键

    (1)索引:优化查询速度

    (2)数据表之间的关联/引用关系是依赖具体的主键(primary key)和外键(foreign key)建立起来的。

    (3)主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来

        注意:主键必须是唯一的

                    主键应该是紧凑的,因此整数类型比较适合

    (4)外键:引用另外一个数据表的某条记录

            注意:外键列类型尽可能与主键列类型保持一致

                     外键列应该加上NOT NULL

    例子:

      主键:

    CREATE TABLE student(
        sid INT NOT NULL auto_increment PRIMARY KEY,
        name VARCHAR(20) NOT NULL
    )

     

      外键:(自动检查外键是否匹配,仅适用InnoDB)

    CREATE TABLE score(
        cid INT NOT NULL auto_increment PRIMARY KEY,
        score INT,
        sid INT,
        FOREIGN KEY(sid)REFERENCES student(sid)
    );

     

      创建完表之后再创建外键的方法:

      格式:ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键) REFERENCES 另一个表名(参考主键);

    ALTER TABLE score ADD CONSTRAINT sid FOREIGN KEY(sid) REFERENCES student(sid);

     

      删除外键:

      格式:ALTER TABLE 表名 DROP FOREIGN KEY 外键名字(注意:这里是外键的名字,而不是外键列名)

    ALTER TABLE score DROP FOREIGN KEY sid

     

    9、主表和从表

    (1)当主表中没有对应的记录时,不能将记录添加到字表

    展开全文
  • Oracle数据库知识点整理 Oracle数据库概念 第一章 概论 主要题型——选择、简答 数据库(DB):是长期存放在计算机内的有组织的可共享的数据集合,数据库按一定的数据模型组织、描述和存储,具有尽可能小的冗余度、...
  • MySQL数据库知识点总结 一.SQL基础 数据库:是一个以某种有组织的方式存储数据的集合(容器)。 表:某种特定类型数据的结构化清单(文件)。 主键:唯一标识表中每行的这个列 SQL:结构化查询语言,一种专门用来与...
  • 三级数据库知识点总结

    千次阅读 2019-04-01 12:12:38
    三级数据库知识点总结 一、数据库的基本知识 1.数据库系统(DBS):主要提供应用数据的组织、存储、维护、访问等数据管理功能。 2,。数据库应用系统(DBAS):不仅为用户提供数据管理功能,还根据具体应用领域业务...
  • 宇宙最强框架:数据库知识点框架(二)主要框架二、概念(1)数据库(2)数据字典(3)关系后续参见 为什么要用框架,请参考:假期学习,如何高效做笔记 宇宙最强框架:数据库知识点框架(一) 宇宙最强框架:数据库...
  • 宇宙最强框架:数据库知识点框架(一)主要框架一、数据库设计(1)特点(2)设计方法(3)设计步骤后续参见 为什么要用框架,请参考:假期学习,如何高效做笔记 宇宙最强框架:数据库知识点框架(一) 宇宙最强框架...
  • 宇宙最强框架:数据库知识点框架(三)主要框架三、数据模型(1)概念(2)地位(3)要求(4)分类(5)组成后续参见 为什么要用框架,请参考:假期学习,如何高效做笔记 宇宙最强框架:数据库知识点框架(一) 宇宙...
  • 第5章 数据库完整性 | 数据库知识点整理 了解 数据库的完整性约束条件 完整性约束条件分类 数据库完整性概念与数据库安全性概念的区别和联系 掌握 DBMS完整性控制机制的三个方面 完整性约束条件的定义 完整性...
  • MySQL数据库的全套思维导图,各大高校考试必考知识点归纳,入门MySQL数据库必读。
  • 宇宙最强框架:数据库知识点框架(六)主要框架六、数据库完整性(1)定义(2)区别(3)实现功能(4)意义(5)分类后续参见 为什么要用框架,请参考:假期学习,如何高效做笔记 宇宙最强框架:数据库知识点框架...
  • Mysql数据库知识点总结(超详细)

    千次阅读 多人点赞 2019-07-06 08:29:07
    数据库知识点总结: 关于数据库的知识点和大家分享~~,后期会查缺补漏;
  • Java 程序员常用的8个数据库知识点

    千次阅读 2018-07-03 02:46:07
    本篇 Chat 以 Oracle 数据库为例,从以下8个方面对Java程序员常用数据库知识点进行阐述: 什么是数据库的 DDL 和 DML? 创建数据库的用户并授权。 如何优雅地建立一张数据库的表? 数据库表的...
  • 宇宙最强框架:数据库知识点框架(四)主要框架四、SQL数据定义语言(1)操作(2)操作语句(3)书写规范(4)数据类型(5)空值(6)量词操作(7)any/all后续参见 为什么要用框架,请参考:假期学习,如何高效做...
  • MySQL数据库知识点目录Mysql数据库(端口:3306)1. 创建数据库2. 用户管理3. 授权管理4. 修改表的列5. 键的操作6. 设置默认值7. SQL语句基础8. 排序9. 聚合函数10. 分组11. 关联查询12. 组合13. LIMIT的用法14. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,270
精华内容 9,308
关键字:

数据库知识点