Java教程

数据库知识点1

本文主要是介绍数据库知识点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的行

 

这篇关于数据库知识点1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!