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)的更多相关文章

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

    上一篇博客<sqlite:多线程操作数据库“database is locked”解决方法>通过注册延时函数的方法来处理数据库被锁的问题.此方法固然能解决问题,但是在多个线程向数据库写入大 ...

  2. Hive中的数据库(Database)和表(Table)

    在前面的文章中,介绍了可以把Hive当成一个"数据库",它也具备传统数据库的数据单元,数据库(Database/Schema)和表(Table). 本文介绍一下Hive中的数据库( ...

  3. DB-概念-数据库:数据库/Database

    ylbtech-DB-概念-数据库:数据库/Database 数据库是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的 ...

  4. Oracle 免费的数据库--Database 快捷版 11g 安装使用与"SOD框架"对Oracle的CodeFirst支持

    一.Oracle XE 数据库与连接工具安装使用 Oracle数据库历来以价格昂贵出名,当然贵有贵的道理,成为一个Oracle DBA也是令人羡慕的事情,如果程序员熟悉Oracle使用也有机会接触到大 ...

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

    1. No suitable driver found for http://127.0.0.1:3306/test jdbc_url错误,jdbc走自己的协议. 正确的路径应该是:jdbc:mysq ...

  6. Oracle 数据库 Database Express Edition 11g Release 2 (11.2) 错误解决集锦(安装方面)

    前言:第一次接触数据库,想下载个oracle试玩下(虽然听说一般大企业才用),到 官网下载 了个简易版 XE 版本,安装时要注意记住自己输入的数据库密码(口令)  还有安装路径不能含有空格(Do no ...

  7. 数据库database

    1.创建数据库:create datebase financials create database if not exists financilas 2.查看数据库(所有):     show da ...

  8. 学习笔记之数据库Database

    SQL@Wiki http://en.wikipedia.org/wiki/SQL 一篇文章,掌握所有开源数据库的现状 - AI前线 https://mp.weixin.qq.com/s?__biz= ...

  9. python MySQL 获取全部数据库(DATABASE)名、表(TABLE)名

    import MySQLdb #connect try: conn = MySQLdb.connect( host = "localhost", user = "root ...

随机推荐

  1. 《UML大战需求分析》-读后感一

    UML英文全拼是unified modeling language 就是统一建模语言. UML就是一种软件开发中帮助我们设计的标准,虽然说是建模语言但是它是图形,图形能更清楚的表达我们对软件的想法.U ...

  2. java 对象和基本数据类型 “==”区别

    “==”比较的是地址,牢记.1.对象.integer 是对象 Integer i1 = 20; Integer i2 = 20 ; System.out.println(i1 == i2); // t ...

  3. AVL树/线索二叉树

    此文转载: http://www.cnblogs.com/skywang12345/p/3577360.html AVL树是一棵特殊的高度平衡的二叉树,每个节点的两棵子树高度最大差为1.所以在每次的删 ...

  4. JS面向对象(封装,继承)

    在六月份找工作中,被问的最多的问题就是: js面向对象,继承,封装,原型链这些,你了解多少? 额,,,我怎么回答呢, 只能说,了解一些,不多不少,哈哈哈哈,当然,这是玩笑话. 不过之前学过java,来 ...

  5. chdir

    <?php //获得当前目录 echo getcwd(); echo "<br />"; //改变为 images 目录 chdir("images&q ...

  6. PHP ini_set

    PHP ini_set用来设置php.ini的值,在函数执行的时候生效,对于虚拟空间来说,很方便,下面为大家介绍下此方法的使用   PHP ini_set用来设置php.ini的值,在函数执行的时候生 ...

  7. git bash使用(markdown版)

    前言 我是通过这个来学习的.个人愚笨,琢磨了半天,终于搞通了,醉了醉了,以前一直使用svn,用git确实有点水土不服.本文以如何使用git为主来展开,不涉及太多理论. git是分布式的版本管理.什么叫 ...

  8. linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡

    最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...

  9. matlab dist函数

    dist——欧式距离加权函数(Euclidean distance weight function) 语法: Z = dist(W,P)    df = dist('deriv')    D = di ...

  10. 【bzoj5084】hashit 广义后缀自动机+树链的并+STL-set

    题目描述 你有一个字符串S,一开始为空串,要求支持两种操作 在S后面加入字母C 删除S最后一个字母 问每次操作后S有多少个两两不同的连续子串 输入 一行一个字符串Q,表示对S的操作 如果第i个字母是小 ...