数据库基础

1.数据库

本质是一个文件系统,数据按照特定的格式存储,用户可以对数据进行增删改查操作。

2.数据库管理系统 DBMS

一种操作和管理数据库得到大型软件

用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完成性。

用户通过DBMS访问数据库中表内的数据

2.1常见的DBMS:

  • MySQL:小型数据库
  • Oracle:大型数据库
  • DB2:应用在银行系统中
  • SQLServer:C#/、.net等用
  • SyBase:提供了PowerDesign等工具
  • SQLite:嵌入式的小型数据库,手机端

2.2Java相关的数据库

MySQL、Oracle

这里使用MySQL。

2.3数据库

MySQL中有多个数据库。

数据库是真正存数据的地方。

2.3.1数据库和DBMS关系

2.4数据库表

数据库中以表为组织单位存储数据

每个字段都有对应的数据类型

2.4.1 记录

表中一行一行数据。

Java程序关系型数据
类中属性表中字段
对象记录

表记录与Java对象的对应关系

3.结构化查询语言SQL

一种数据库和程序设计语言

用于存取数据以及查询、更新和管理关系数据库系统

3.1SQL分类

  • DDL数据定义语言:create/alter/drop等
  • DML数据操作语言:insert/delete/update等
  • DCL数据控制语言:访问权限、安全级别、创建用户等
  • DQL数据查询语言:select/from/where等

3.2SQL通用语法

  • 可以单行或多行书写,以分号结尾;
  • 可使用空格和缩进增强语句的可读性;
  • MySQL的SQL语句不区分大小写,建议用大写:SELECT * FROM user
  • 可以用/**/完成注释
  • MySQL中常用的数据类型:
    • int
    • double
    • varchar
    • data

3.3数据库操作

3.3.1创建数据库

create database 数据库名;

create database 数据库名 character set 字符集;

  • 默认编码是安装数据库时指定的默认编码utf-8
CREATE DATABASE day1;
CREATE DATABASE day2 CHARACTER SET utf-8;

3.3.2查看数据库

show databases;(所有)

show create database 数据库名;(查看某个数据库的定义信息)

3.3.3删除数据库

drop database 数据库名;

3.3.4切换数据库

use 数据库名;

3.3.5查看正在使用的数据库

select database();

3.4表结构相关语句

3.4.1表创建

create table 表名{

         字段名   类型(长度)   约束,

         字段名   类型(长度)   约束;

};   

CREATE TABLE user{
    id  INT,
    name  VARCHAR(100)
};

3.4.2主键约束

主键:用于标记当前记录的字段。

  • 特点:非空,唯一
  • 一般不具有任何意义,只用于标识当前记录

格式1:在创建表的时候创建主键,在字段后加上primary key

CREATE TABLE user{
    id  INT PRIMARY KEY,
    name  VARCHAR(100)
};

格式2:在创建表时创建主键,在表创建的最后指定主键

CREATE TABLE user{
    id  INT,
    name  VARCHAR(100),
    PRIMARY KEY(id)
};

删除主键

alter table 表名 frop primary key;

ALTER TABLE user DROP PEIMARY KEY;

主键自增

auto increment;

id INT PRIMARY KEY AUTO INREMENT;

其他约束

  • 外键
  • 唯一
  • 非空
  • ...

3.4.3查看表

show tables;(所有表)

desc 表名;(表结构)

3.4.5删除表

drop table 表名;

3.4.6修改表结构

添加列:alter table 表名 add 列名  类型(长度) 约束;

修改列的类型长度及约束:alter table 表名 modify 列名 类型(长度) 约束;

修改列名:alter table 表名 change 旧列名  新列名  类型(长度) 约束;

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

修改表名:rename table 表名 to 新表名;

修改表的字符集:alter table 表名 character set 字符集;

ALTER TABLE user ADD desc VARCHAR(20);

ALTER TABLE user MODIFY name VARCHAR(50) NOT NULL;

ALTER TABLE user CHANGE name newname VARCHAR(30);

ALTER TABLE category CHARACHER AET gbk;

3.4.7插入表记录

向表中插入某些列:insert into 表(列1,列2,...) values (值1,值2,...);

向表中插入所有列:insert into 表 values(列1,列2,...);

  • 插入的数据应与字段的数据类型相同;
  • 数据的大小应在列长度范围内;
  • 在values中列出的数据位置必须与被加入列的排列位置相对应;
  • 除了数值类型外,其他的字段类型值必须使用引号。
  • 如果要插入控制,可以不写字段,或者插入null;
  • 对于自增的列,在操作时,直接插入null值即可。
INSERT INTO user VALUES('3','hehe');

3.4.8更新表记录

update 表名 set 字段名=值,字段名=值;

update 表名 set 字段名=值,字段名=值 where 条件;

  • 列名的类型与修改的值要一直;
  • 修改值的时候不能超过最大长度;
  • 值如果是字符串或日期要加' '。
UPDATE user SET name='lina' WHERE id=1;

3.4.9删除记录

delete from 表名 [where 条件];

truncate table 表名;

问:删除表中所有记录用delete from 表名haishi truncate table表名?

删除方法:delete:一条一条地删,不清空auto increment记录数;

                  truncate:直接将表删除,重新建表,auto increment将置为0,重新开始。

DELETE FROM user WHERE name='lina';

DELETE FROM user;

3.5查询

3.5.1查询指定字段信息

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

3.5.2查询表中所有字段的信息

select * from 表名;

3.5.3去除重复记录

select distinct 字段 from 表名;

3.5.4别名查询

select * from 表名 (as) 别名;

select 字段名 (as) 别名 from 表名;

select * from 表名 别名;

3.5.5对列进行运算

select name, price+1000 from product;

3.5.6条件查询

select 字段 from 表名 where 条件;

where条件的种类:

  • >   <   >=     <=    =   <>
  • BETWEEN...AND...:某一区间(含头尾)
  • IN(SET):eg.   in(100,200)显示在in列表中的值
  • LIKE通配符:%匹配多个字符,_匹配一个字符
    • name like 'a%';
    • name like 'a_';
  • IS NULL    IS NOT NULL
  • and:多个条件同时成立
  • or:多个条件任一成立
  • not:不成立   eg.  where not (salary>1000);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值