JAVA-数据库DB

1.什么是数据库?
DataBase(简称DB),能够大量存储和共享数据的集合,是个仓库

2.什么是DBMS?
Database Managerment System 数据库管理系统
数据管理软件,科学组织、存储、维护、获取数据

3.关系型数据库
例如:mysql,业务数据库,时效性高,数据同步操作安全

4.结构化查询语句
(1)DDL 数据定义语言:建库、建表(CREATE,DROP,ALTER)

  • 说明:库和表之间的关系:库是由一些列表所组成的(一组数据表的集合)
  • 在mysql中,字段内容是区分大小写的
  • 使用反引号:在数字键1左面,不是单引号(例:SELECT EDP FROM DEPT WHERE…)

(2)DML 数据操作语言:插入、修改、删除(INSERT,UPDATE,DELETE)
(3)DQL 数据查询语言:查询(SELECT)
(4)DCL 数据控制语言:管理数据库,包括权限和数据更改(GRANT,COMMIT,ROLLBACK)

5.命令行操作数据库
(1)建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名;

  • 表列类型设置
    数值,字符串,日期和时间,NULL值

  • 属性
    UNSIGNED:无符号的,不能为负数
    ZEROFILL:0填充(数字1-9,如果增长到10,之前的1-9前自动补0)
    AUTO_INCREMENT:自增长,通常设置主键,为整数,默认步长是1
    NULL和NOT NULL:当前列是否为空
    DEFAULT默认值:给该列指定默认值,可以和not null配合使用

  • 表类型(数据引擎)
    MYISAM:可以归档使用,存储不需要大量修改的数据,作为数据增量引擎使用(支持全文索引)
    INNODB(默认):针对一些经常要修改的数据,且操作量大,主要是为了保证数据的安全,不能直接做迁移

  • 表字符集
    一般现在都是utf-8

(2)删除数据库:DROP DATABASE[IF EXISTS] 数据库名;
(3)查看数据库:SHOW DATABASES;
(4)使用数据库:USE 数据库名

(5)创建表:CREATE TABLE [ IF NOT EXISTS ] 表名
(6)修改表:ALERT TABLE 旧表 RENAME AS 新表
(7)添加字段:ALERT TABLE 表名 ADD 字段 列类型[属性]
(8)修改字段:ALERT TABLE 表名 MODIFY 字段 列类型[属性]
ALERT TABLE 表名 CHANGE 旧字段 新字段 列类型[属性]
(9)删除字段:ALERT TABLE 表名 DROP 字段
(10)删除数据表:DROP TABLE[IF EXISTS] 表名

6.DML(数据操作语言)
(1)INSERT:添加数据语句
INSERT INTO 表名 (字段) VALUES (值)
可同时插入多条数据,values 后用英文逗号隔开
(2)UPDATE:修改数据语句
UPDATE 表名 SET 修改的字段=修改的值 [ WHERE condition ];
(3)DELETE:删除数据语句
DELETE FROM 表名 [ WHERE condition ];
不加条件就是删除整张表

7.DQL(数据查询语言)
(1)查询所有语句
SELECT * FROM student;(效率低不推荐)
(2)查询指定数据列
SELECT id,name FROM student;
(3)设置别名 AS
SELECT StudentNo AS “学号” FROM student;
AS可以省略
(4)去重 DISTINCT
SELECT DISTINCT StudentNo(字段名) FROM student(表名);
所有的数值都相同才能去重
(5)使用表达式
例如:SELECT 100*3;
(6)WHERE关键字
用于检索数据表中符合条件的记录
逻辑操作符:AND或&&,OR或||,XOR或^,NOT或!
比较操作符:IS NULL,IS NOT NULL,BETWEEN,LIKE,IN
(7)联合查询
内连接 ( inner join=join)
SELECT SubjectName,GradeName FROM subject INNER JOIN grade ON subject.GradeID= grade.GradeID;
两张表都有的才会显示,是交集

外连接 ( out join ):
左连接(LEFT JOIN)
SELECT 字段1,字段2,… FROM table_1
LEFT [ OUTER ] JOIN table_2 ON table_1.字段x = table_2.字段y;
右连接 ( RIGHT JOIN)

(8)排序 ORDER BY
ASC 升序
DECS 倒序

SELECT * from emp ORDER BY sal ASC
SELECT * from emp ORDER BY sal DESC

(9)分页 LIMIT
LIMIT index,size 从哪里开始查几条 计算index: (pagenum-1) *size
SELECT * from emp LIMIT 0,2;

(10)分组 GROUP BY 和 HAVING过滤
聚合函数
COUNT() ,SUM() ,AVG() ,MAX(),MIN()
分组后的结果集,计算的应当是聚合后的结果

注意:
执行顺序:
先where查询 , 然后分组 ,然后结果集 ,然后having , order by , limit

(11)子查询
在查询语句中的WHERE条件子句中,又嵌套了另外一个查询语句
当单条件的时候(> < >= <= != = like),必须保证一行一列,即只有一个值
当条件为多个的时候即,一列多行,可以和in一起使用
SELECT * FROM emp WHERE deptno != 10
AND sal IN (SELECT sal FROM emp WHERE deptno = 10);

(12)临时视图,临时表
临时表必须有别名
临时表的字段需要起别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值