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。
子查询
当我们需要使用子查询的临时表的时候,应该给这个临时表起个别名,特别是在临时表中做查询的时候。
相关子查询:执行依赖于子外部查询的数据,外部执行一次,子查询就要执行一次,多用于select后面。
相关子查询消耗更长的执行时间,当数据量增加时,执行时间会急剧增加。后面用join on代替。
非相关子查询:子查询执行不依赖外部查询的数据,子查询只执行一次,多用在from、where后面
where 列 运算符 子查询
运算符:1、>、<、=、>=、<=、!= 子查询返回的是单列或者单行
2、in、not in 子查询返回的是单列多行
3、exists、any、all、not exists
组合查询:
union运算符:第二次查询的结果放在第一次查询的结果后面,列名以第一次查询的结果为准。
二次查询的列数必须相同。
day21 数据库(DataBase)的更多相关文章
- sqlite:多线程操作数据库“database is locked”解决方法(二)
上一篇博客<sqlite:多线程操作数据库“database is locked”解决方法>通过注册延时函数的方法来处理数据库被锁的问题.此方法固然能解决问题,但是在多个线程向数据库写入大 ...
- Hive中的数据库(Database)和表(Table)
在前面的文章中,介绍了可以把Hive当成一个"数据库",它也具备传统数据库的数据单元,数据库(Database/Schema)和表(Table). 本文介绍一下Hive中的数据库( ...
- DB-概念-数据库:数据库/Database
ylbtech-DB-概念-数据库:数据库/Database 数据库是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的 ...
- Oracle 免费的数据库--Database 快捷版 11g 安装使用与"SOD框架"对Oracle的CodeFirst支持
一.Oracle XE 数据库与连接工具安装使用 Oracle数据库历来以价格昂贵出名,当然贵有贵的道理,成为一个Oracle DBA也是令人羡慕的事情,如果程序员熟悉Oracle使用也有机会接触到大 ...
- mysql中数据库database、实例instance、会话session的关系
1. No suitable driver found for http://127.0.0.1:3306/test jdbc_url错误,jdbc走自己的协议. 正确的路径应该是:jdbc:mysq ...
- Oracle 数据库 Database Express Edition 11g Release 2 (11.2) 错误解决集锦(安装方面)
前言:第一次接触数据库,想下载个oracle试玩下(虽然听说一般大企业才用),到 官网下载 了个简易版 XE 版本,安装时要注意记住自己输入的数据库密码(口令) 还有安装路径不能含有空格(Do no ...
- 数据库database
1.创建数据库:create datebase financials create database if not exists financilas 2.查看数据库(所有): show da ...
- 学习笔记之数据库Database
SQL@Wiki http://en.wikipedia.org/wiki/SQL 一篇文章,掌握所有开源数据库的现状 - AI前线 https://mp.weixin.qq.com/s?__biz= ...
- python MySQL 获取全部数据库(DATABASE)名、表(TABLE)名
import MySQLdb #connect try: conn = MySQLdb.connect( host = "localhost", user = "root ...
随机推荐
- 《Spring1之第十次站立会议》
<第十次站立会议> 昨天:试着把用C#写的代码转换为java语言. 今天:已基本转换为java语言了,也能够实现视频聊天这个功能了. 遇到的问题:在进行视频通话时没有考虑到声音优化功能,实 ...
- 《TCP/IP 详解 卷1:协议》第 10 章:用户数据报协议
引言 UDP 稍微扩展了IP协议,使得包可以在进程间传送,而不仅仅是在主机件.--<CSAPP> IP 数据报是指 IP 层端到端的传输单元.分组(packet)是 IP 层和链路层的传输 ...
- Nginx服务器搭建
http://blog.csdn.net/molingduzun123/article/details/51850925 http://tengine.taobao.org/book/index.ht ...
- VMWare之——宿主机与虚拟机互相ping通,宿主机ping通另一台机器的虚拟机
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处:http://blog.csdn.NET/l1028386804/article/details/52267554 今天给大家带来 ...
- 如何在Windows下查看JAVA端口占用情况(阿里面试)
如需要确定谁占用了9050端口 为例: 1.Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 协议 本地地址 外部地址 状态 ...
- 多进程编程之用户ID和用户组ID
实际用户ID(real user id):用于在系统中标识一个用户是谁,当用户使用用户名和密码成功登录后一个UNIX系统后就唯一确定了他的uid:(实际用户组ID类似) 有效用户ID(effect ...
- line search中的重要定理 - 梯度与方向的点积为零
转载请注明出处:http://www.codelast.com/ 对精确的line search(线搜索),有一个重要的定理: ∇f(xk+αkdk)Tdk=0 这个定理表明,当前点在dk方向上移动到 ...
- P3850 [TJOI2007]书架
题目描述 Knuth先生家里有个精致的书架,书架上有N本书,如今他想学到更多的知识,于是又买来了M本不同的新书.现在他要把新买的书依次插入到书架中,他已经把每本书要插入的位置标记好了,并且相应的将它们 ...
- PE文件解析 基础篇
PE文件解析 基础篇 来源 https://bbs.pediy.com/thread-247114.htm 前言 之前学习了PE格式,为了更好的理解,决定写一个类似LoadPE的小工具. 编译器是VS ...
- STL 基本概念
STL 基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现在是一个C++软件库,也是C++标准程序库的一部分,但在被引入C++之前 ...