day21 数据库(DataBase)

1、数据库由多张表组成,一张表就是一个实体。

2、表的列就是属性的值,行就是一个个具体的对象的属性值。

primary key主键:1、非空。2、不能修改(定好不变)。3、业务无关。

作用:在表中具体唯一标识某条记录。

foreign key外键:记录这张表和另一张表的数据关系。

1对1的时候,外键可以在任何一方。

1对多的时候,外键只能在多的一方。

多对多的时候,需要添加一张关系表来表示他们的关系。

RDBMS(relationship data base management system)关系型数据管理系统

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

DDL语句:对数据库的创建,使用,删除,对数据库表的创建、删除、修改。

DML语句:对表里的数据进行增、删、改,保证数据的有效性。

DQL语句:对表里的数据进行查询。

DCL语句:用于控制对数据库的访问。

DDL语句(不区分大小写)——对库的操作

create database 库名;  ——建库

use 库名;  ——使用库

drop database 库名;  ——删库

show databases; ——显示所有的库

DDL语句——对表的操作

建表 create table 表明 (列名   列的数据类型   列的约束);

表名起名一般加:t_

普通列必须加:f_

删除 drop table 表名;通过外键约束连在一起的表,不能直接删除,必须先删除关系。

修改 alter table 表名 add 列名 类型;加入列

alter table 表名 change 被修改的列名 修改后的列名 ;   修改列

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

约束条件:

主键约束:primary key

外键约束:1、referen。2、constraint foreign key references 表名;

unique:唯一约束。

not null:非空约束。

default:默认约束。

check: 检查约束(mysql约束)。

DML语句:

insert 添加 insert into 表名 (列名列表) values (值列表);

update 修改 update 表名 set 列1=新值1,列2=新值2 where 过滤条件;

delete 删除 delete from 表名 where 过滤条件(不加条件全删)

全删的时候区别truncate table 表名; 不能用于有外键约束的表。

delete会记录日志,意味着删除后的数据还可以恢复,但是效率低;truncate不会记录日志,数据不能恢复,但是效率高。

DQL语句:

select 列名 1,列名2 from 表名;

select 表名.列名 from 表名;

select 列名 as 别名 from 表名;                 起别名查找

select concat (列名,‘ ‘,列名) from 表名;    拼接列查找

select distinct 列名 from 表名;                排除重复的行查找

select 列名 from 表名 limit 开始序号,返回的行数  ;   分页查找(只用于mysql)

select 列名 from 表名 where 列名 = 值;    根据过滤条件查找

过滤条件:1、in/not in(值,值,值)。2、is null/ is not null 。 3、 like/not like (通配符‘_‘表示一个字符;‘%‘表示多个字符)。

4、between and 在一个范围内查找  5、and/or 。

排序

select * from 表名 order by 列名 asc;默认的升序排列

asc——升序排列,desc——降序排列。

查找的执行顺序:from——where——select——order by。

时间: 2024-08-10 21:29:56

day21 数据库(DataBase)的相关文章

sqlite:多线程操作数据库“database is locked”解决方法(二)

上一篇博客<sqlite:多线程操作数据库“database is locked”解决方法>通过注册延时函数的方法来处理数据库被锁的问题.此方法固然能解决问题,但是在多个线程向数据库写入大量数据的情况下,延时会拖慢进度. 想出方法二: 1. 创建一个链表,链接如下格式的结构体,线程1,线程2,线程3......不直接改写数据库,而是把sql语句插入链表中: typedef struct { uint8_t *buf; uint32_t len; } sqlItem_t; 2. 创建一个独立的线

mysql中数据库database、实例instance、会话session的关系

1. No suitable driver found for http://127.0.0.1:3306/test jdbc_url错误,jdbc走自己的协议. 正确的路径应该是:jdbc:mysql://127.0.0.1:3306/test. 2. mysql中database.instance.session. mysql中建立一个会话,不是和具体的数据库相连接,而是跟instance建立会话,在一个实体机上可以建立多个instance,通过port来区分实例. 而一个实例可以建立多个数

Oracle 数据库 Database Express Edition 11g Release 2 (11.2) 错误解决集锦

前言:第一次接触数据库,想下载个oracle试玩下(虽然听说一般大企业才用),到 官网下载 了个简易版 XE 版本,安装时要注意记住自己输入的数据库密码(口令)  还有安装路径不能含有空格(Do not select a directory that has spaces in its name), 安装完后什么都没反应,唯一的帮助就是开始菜单->Oracle Database Express Edition ->获取帮助    点击 阅读文档 可以到官网看基本使用说明. 基本的操作问题在 阅

数据库database

1.创建数据库:create datebase financials create database if not exists financilas 2.查看数据库(所有):     show databases; show databases like " h.*" 3. 查看数据库(具体)  describe database financial 4.添加路径:                 location"/my/prefered/directory"

sqlite:多线程操作数据库“database is locked”解决方法

1. 使sqlite支持多线程(不确定是否非加不可,暂且加上,以备后患) 可以在编译时/启动时/运行时选择线程模式,参考:http://www.cnblogs.com/liaj/p/4015219.html 我的修改: 1)添加编译选项: -DSQLITE_THREADSAFE=2 2)打开数据库文件使用sqlite3_open_v2替代sqlite3_open sqlite3_open_v2(strDbName,sqlite_p, SQLITE_OPEN_READWRITE| SQLITE_O

数据库 -DataBase设计

数据库设计概述 数据库设计 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求. 目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境 数据库建设的基本规律 三分技术,七分管理,十二分基础数据 管理 数据库建设项目管理 企业(即应用部门)的业务管理 基础数据 收集.入库 更新新的数据 结构(数据)设计和行为(处理)设计相结合 将数据库结构设

Oracle 数据库 Database Express Edition 11g Release 2 (11.2) 错误解决集锦(使用语法)

ORA-14552: 在查询或 DML 中无法执行 DDL, 提交或回退 PL/SQL“ORA-14551:无法在查询中执行DML操作 解决:在声明函数时加上: PRAGMA AUTONOMOUS_TRANSACTION;  link

Oracle 数据库的组成(instance+database)

Oracle服务器是一种对象关系数据库管理系统,它为信息管理提供开放.综合.集成的方法. Oracle服务器中有多种进进程.内存结构和文件: Oracle服务器由一个Oracle实例和一个Oracle数据库组成. Oracle服务器:Oracle实例+Oracle数据库 Oracle实例:后台进程+内存结构 (必须启动实例才能访问数据库中的数据,每次启动实例,都会分配系统全局去SGA并启动Oracle后台进程) SGA是用于村粗数据库信息的内存区,该信息为数据库进程所共享. 后台进程代表调用进程

So Easy! Oracle在Linux上的安装配置系列三使用create database创建数据库

本文为So Easy! Oracle在Linux上的安装配置系列的第三篇,使用create database创建数据库,本序列第一篇介绍了学习实验环境的搭建包括:在win 7中使用VMware Workstation 创建虚拟机,安装CentOS-6.6-x86_64,网络配置 和使用xshell连接远程linux服务器,上传Oracle软件和使用操作系统安装光盘搭建本地yum源,第二篇专门说了Oracle11g R2在CentOS6.6上的安装,包括Oracle安装前的准备工作,并以图文详细介