数据库知识点1

数据库Day One    july 30

一、使用cmd来操作数据库

输入命令:mysql uroot proot(此命令具有最高权限)mysql uroot -p

1.(-uroot,代表用户名是root,-proot 代表是密码root)

2.如果用户名或者密码不对,则出现错误提示:Access denied…(访问被拒绝,权限不够)

3.mysql命令没有传用户名密码,则默认是账户,密码均是空的用户。--操作权限小

4.show databases;-显示当用户的所有数据库

5.use 数据库名字;      -表示进入到当前需要操作的某个数据。

6.show tables: - 显示当前操作的数据库中所有的表。(table – 表)

7.desc 表的名字:比如…desc person ;--显示某个表定义的时候详细信息,包括有哪些字段(filed)类型(type)

二、数据库分类

  数据库分类:

  1. 关系型数据库: oracle , nysql , sql server , DB2(IBM)  主要通过SQL进行数据处理
  2. 非关系型数据库(不支持SQL): MongoDB , Redis , Hbase

  ER模型(E – Entity实体, R – Relation 关系)

     - ER模型,实际就是指数据表的一种可视化的图形表示方式

     - 矩形代表实体

     - 菱形表示关系

     - 椭圆表示的实体的属性

 

  实体之间的关系

    一对一:一个国家一个总统

    一对多:一个班级由多个学生

    多对多:课程和学生

    **每一个实体对应数据库中的一张表,数据库中每一张表,对应一个java实体类。

 

  SQL(Struct query language结构化查询语言)

    sql语句注释:第一种:--注释   第二种:/*注释*/

    当写一个.sql的文件的时候,如果要加注释,采用上面两种方法,一种只能sql语句的后面。

 

三、在cmd中使用DDL语句操作数据库

  1. 命令行连接数据库
  2. 创建数据库 指定字符集 -->  create database  数据库名字  default character set utf8

     3. 删除数据库  --> drop database  数据库名字

 

  1. 创建表的属性(table)
  2. 创建表的命令create table表里的属性
  3. 字段信息,写在()里面,每个字段之间用“,”分隔,最后一个字段不需要“,”
  4. 每个字段必须在有字段名和字段类型,字段名如果和sql关键字重名,需要使用引号引起来。【sql中不区分单引号和双引号】
  5. NOT NULL :表示字段的value不能为null。
  6. auto_increment:表示该字段对应的内容自动增加,一般用于int类型
  7. primary key:设置字段为主键。主键不能为空,且不能重复。

    create table tbl_test (test_id int auto_increment primary key ,test_name  char(50), test_age int );

  注:key可以大写,也可以小写。

  存储的数据,是否要区分大小写,表明,字段名等都不区分大小写。 --sql语言中

  存储的数据,是否要区分大小写?希望存储的数据区分大小写。

  1. 数据类型

  int / bigint  --整数

  char    --定长字符串【如果设置了char的长度为50,那么每个字符串长度都是50】   超出长度则被忽略

  varchar   --可变长字符串【如果设置了varchar的长度为50,那么实际已存入的字符长度为准】

  decimal/numeric –小数  salary decimal(10,2):整数位8位,小数位2

  datetime  -- 日期,范围很广(常用)

  timestamp  --日期,范围:1970~2032年,优势支持时间区域的变换

  1. 数据表的设计原则
  2. 字段不可再分,eg:一个字段存座机就不能存电话号码

        --应该设计为两个字段,一个专门存手机号,一个专门存手机号,一个专门村座机号

  1. 一般来说每个表有一个主键字段
  2. 其他字段必须直接依赖主键,eg:员工表不能存部门信息

  练习:用sql语句创建一个表,用于存储学校school

       学校编号:sc_code  varchar

       学校名字:sc_name  varchar

       地址:sc_address  varchar

       生日:sc_birth  datetime

    占地面积:sc_area  decimal

  create table school(sc_code varchar(4) primary key, sc_name varchar(100) not null,

  sc_address varchar(300),sc_birth datetime,sc_area decimal(10,3))

 四、DML语句

  1. insert插入数据到表中

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

       插入所有字段,按建表的时候的字段顺序。必须所有的字段都要插入值,并且按字段的默认排序

  直插入部分字段的值

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

    --如果某个字段建表的时候,设置了not null的约束条件,那么必须给该字段设置值

    --表名中的字段的声明和values中的字段值,应该是对应关系

    --字段名和字段的值必须数量一致,顺序一致

    --允许为null的字段可以不给值

    设置为自动增长的字段,可以不给值

    insert into tbl_test(test_name,test_age) values(‘xiaodu’,30)

 

    2.select 表的查询(重点)

  1. 全表查询

  select * from (表名); --*代表所有字段名

  查询出所有字段,所有数据行

  select*from school;

  select * form tbl_test;

  select 字段名1,字段名2,…from表名;

  查询出指定的字段名对应的数据,所有数据行

  select sc_code,sc_name from school;(查指定列)

 

  1. 根据where条件查询

  --select*form表名   where条件:--条件自定

  select*from school where sc_code = ‘1002’;---找出sc_code字段值为1002的行

 

posted @ 2022-04-03 19:52  LoveDonkey  阅读(63)  评论(0)    收藏  举报