数据表

oracle——修改表结构&约束

社会主义新天地 提交于 2020-02-15 09:43:46
修改表结构 1.创建表 2.#为member表增加字段 如果增加的数据列没有默认值,则所有已有的数据的列的内容都是null, 而如果增加的列指定了DEFAULT默认值的话,则所有已有的数据列都是设置的默认值。 3.#将name字段的默认值定义为“xixi” 4.#修改字段名(无数据) ALTER TABLE 表名称 RENAME COLUMN 原列名称 TO 新列名称 5.#删除表中字段的默认值 6.删除列 alter table member drop column age ; 约束 一.非空约束 当数据表中的某个字段上的内容不希望设置为null的话,则可以使用NOT NULL进行指定。 1.#定义一张数据表 2插入两组数据; #正确的数据: #错误的数据: 二.唯一约束/UNIQUE/UK 唯一约束指的是某一个列上的数据是不允许重复的,如邮件地址 1.#定义一张数据表 2. #插入正确的数据: #插入错误的数据: 三.主键约束/PRIMARY KEY/PK 主键约束=非空约束+唯一约束。 1.#建立主键约束 2.#插入正确数据 3.#插入重复数据 == 出现以下错误提示,可以看到错误提示很明显。 ORA-00001: unique constraint (SCOTT.PK_MID) violated== 四.检查约束/CHECK/C K 检查约束指为表中的数据增加一些过滤条件

MySQL SELECT:数据表查询语句

风流意气都作罢 提交于 2020-02-15 05:50:33
MySQL 表单查询是指从一张表的数据中查询所需的数据,主要有查询所有字段、查询指定字段、查询指定记录、查询空值、多条件的查询、对查询结果进行排序等。 MySQL SELECT 基本语法 MySQL 从数据表中查询数据的基本语句为 SELECT 语句,基本格式如下: SELECT {* | <字段列名>} [ FROM <表 1>, <表 2>… [WHERE <表达式> [GROUP BY <group by definition> [HAVING <expression> [{<operator> <expression>}…]] [ORDER BY <order by definition>] [LIMIT[<offset>,] <row count>] ] 其中,各条子句的含义如下: {*|<字段列名>} 包含星号通配符的字段列表,表示查询的字段,其中字段列至少包含一个字段名称,如果要查询多个字段,多个字段之间要用逗号隔开,最后一个字段后不要加逗号。 FROM <表 1>,<表 2>… ,表 1 和表 2 表示查询数据的来源,可以是单个或多个。 WHERE 子句是可选项,如果选择该项,将限定查询行必须满足的查询条件。 GROUP BY< 字段 > ,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分组。 [ORDER BY< 字段 >] ,该子句告诉

ABAP数据表的操作

故事扮演 提交于 2020-02-14 02:00:28
ABAP数据表的操作 这几天对于数据标的操作表较多,自己从网上找资料和自己动手操作总结了一些数据表的增删改查操作,希望对一些初学者有所帮助,仅供参考。 开源的数据库操作都离不开INSERT、UPDATE、MODIFY和DELETE语句。其中当SY-DBCNT返回为0,则表示操作成功,此外还将返回实际操作的数据行数。需要指明的是Open SQL本身并不进行操作权限的检查,若需要进行设定,则要在系统中创建授权对象。 一.INSERT语句 Open SQL中的INSERT语句用于向数据库中插入新条目。 1.插入单行数据:dbtab是内表,wa是工作区。 INSERT INTO dbtab VALUES wa. INSERT INTO dbtab FROM wa. 内表:Internal memory table 内存中的表,是外设(屏幕、磁盘,打印机等)和数据库表数据交换的中介。 wa为工作区,是与数据库具有相同结构的数据对象,一般直接基于数据库结构声明。该语句也可以将数据插入视图中,首先该视图所有字段必须来自同一个数据库表,而且在数据字典中的maintenance status属性必须设定为read and change 注:如果相同表关键字的数据条目已经存在,则不能重新插入,只能对非关键字进行更改(UPDATE,MODIFY) 2.插入多行数据:datab是内表,itab是表

linux下 mysql 数据库的基本命令

时光总嘲笑我的痴心妄想 提交于 2020-02-13 11:53:51
1、登录 1.1、方式1 1.2 、方式2 2、创建用户 @后面的ip地址为允许连接的客户端的ip地址,如果改为 '%',就表示客户端没有ip地址的限制,可以在任何主机上登录。 3、授权 3.1、查看权限 以user2为例 3.2、授权 ( 注意此授权是在root下操作的 ) 给user2 查看 任何数据库,任何数据库中的表的权限,操作如下 可以查看此时user2的权限情况 注意有select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限,当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。当 " 数据库名称.表名称" 被 "*.*" 代替,表示赋予用户操作服务器上所有数据库所有表的权限。下面操作给user2所有权限,[ with grant option ] 代表此用户可以给其他用户授权 。 当授限不起作用时,可以刷新授权(flush privileges;) 3.3、收回权限 revoke all on *.* from 用户名;收回了那个用户名的所有权限.如下图所示: 4、其他常用操作 4.1.显示数据库列表 show databases; 4.2.创建、删除数据库 create

OGG实验:喂奶间隔数据表通过OGG配置同步

為{幸葍}努か 提交于 2020-02-12 11:52:27
我之前在《 使用SQL计算宝宝每次吃奶的时间间隔(数据保障篇) 》中提到数据实时同步的方案,其中有一种是数据表通过OGG进行同步,当时没有详细展开测试,只给了之前学习OGG时的配置示例。由于之前很少接触OGG的管理运维,最近在进行实际测试时遇到些问题,虽然不难,但也是初学者常遇到的问题,所以记录下这个过程。 需求: 将TEST用户下的数据表T_BABY通过OGG进行同步。 环境: 源端:RHEL6.5, IP地址:192.168.1.61 Oracle 11.2.0.4 RAC(2 nodes)+ OGG 12.2.0.2 待同步数据表test.t_baby已有数据 目标端:OEL5.7, IP地址:192.168.1.11 Oracle 11.2.0.3 单实例 + OGG 12.2.0.2 数据表通过OGG配置同步: 1.源端和目标端软件安装部署 2.源端配置 3.目标端配置 4.实验中遇到的问题处理 1.源端和目标端软件安装部署 在源端和目标端都部署OGG 12.2.0.2,使用图形界面安装,默认选择安装完成后自动启动mgr进程,安装截图类似如下: 2.源端配置 首先确认数据库是否处于归档模式,是否开启force logging和数据库最小附加日志: select log_mode,supplemental_log_data_min,force_logging from v

VFP获取 SQL Server 的数据表、触发器、存储过程、视图等脚本

夙愿已清 提交于 2020-02-11 00:27:25
本文代码转载自红雨先生 *----------------------------------------------- * SqlServer 相关函数 *----------------------------------------------- Clear *----------------------------------------------- * 测试 GetTableCode() *----------------------------------------------- Local lcDataBaseName, lcTableName, lcTableCode, lnSqlHandle, lcSqlStringConnect lcTableCode = [] lcDataBaseName = [DCLZ] lcTableName = "[dbo].[考勤原始表]" lcSqlStringConnect = [driver={Sql server};server=(local);uid=sa;pwd=Admin;database=Master] lnSqlHandle = Sqlstringconnect( lcSqlStringConnect ) If lnSqlHandle > 0 = SQLSetprop(lnSqlHandle,

使用数据表反向生成以及出现问题汇总

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-10 13:02:15
什么是正向以及反向生成? 正向生成,指的是先创建model.py文件,然后通过django内置的编译器,在数据库如mysql中创建出符合model.py的表。 反向生成,指的是先在数据库中create table,然后通过django内置的编译器,生成model代码。 如何进行反向生成? pip install flask - sqlacodegen flask - sqlacodegen "mysql://root:密码@数据库地址/数据库" - - tables 数据表名 - - outfile "文件地址/数据库名.py" - - flask # 注意: 'mysql://root:密码@数据库地址/数据库' 可能会报错 建议使用 : "mysql://root:密码@数据库地址/数据库" #实例: flask - sqlacodegen "mysql+pymysql://root:密码@94.191.69.**/food_db" - - tables member - - outfile "common/models/member/Menber.py" - - flask 出现的错误: 错误1:ModuleNotFoundError: No module named ‘MySQLdb’ 内心os : 不对呀 , 我明明安装了呀! 如何解决? 将mysql改为mysql +

java 三大框架——Hibernate

本小妞迷上赌 提交于 2020-02-09 14:37:11
Hibernate框架简介 Hibernate框架是一款数据持久型的框架也是一款ORM框架 数据持久型:是将数据存入数据库或将数据库里的数据读入程序中 ORM:我们说JAVA中是面向对象的思想 而现在市场中大部分使用的数据库都是关系型数据库,如果利用面向对象语言来操作关系型数据库的话,其中会出现一些很麻烦的代码,会阻碍我们进行开发造成了没必要的麻烦,所以ORM提供了一种能使用对象来调用数据库里的每一条数据,具体是以类来对应数据库中的表,以对象来对应表中的字段,以对象来对应表中的每一条数据。 在了解Hibernate之前 首先回顾一下JDBC是如何操作数据库的 1,加载mysql驱动 2,获取连接 3,获取数据的操作对象 4,进行数据库的操作 5,关闭资源 在Hibernate结构目录中分别有以下几个结构 documentation(文档) lib(jar包) project(源代码) 对于初学这款框架的程序员来说 先进入lib包下进行导包 hibernate框架的jar包就分的很详细 lib中会发现有这几种envers jpa optional osgi required 一般情况下只导入required下的jar包即可 这些jar都是必须存在的 optional中的jar包主要是用于优化hibernate的性能 包括数据连接池和缓存两部分 接下来了解下Hibernate的相关配置

数据库删除语句 Drop/Delete/Truncate比较

£可爱£侵袭症+ 提交于 2020-02-08 10:53:19
Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行)。 删除某一行:Delete from 数据表名称 where 列名称=值; 删除所有行:Delete * from 数据表名称 Drop :删除数据表或数据库,或删除数据表字段。 删除数据库:drop database 数据库名称 删除数据表:(表的结构、属性、索引也会被删除) use 数据库名称 drop table 数据表1名称,数据表2名称 删除数据表字段(列): use 数据库名称 alter table 数据表名称 drop column 字段名(列名称) Truncate:删除数据表中的数据(仅数据表中的数据,不删除表)。 truncate table 数据表名称 “ TRUNCATE TABLE语句是一种快速、无日志记录的方法。TRUNCATE TABLE语句与不含有 WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE语句速度更快,并且使用更少的系统资源和事务日志资源。” 删除数据的速度,一般来说: drop> truncate > delete “与 DELETE 语句相比,TRUNCATE TABLE语句具有以下优点: 所用的事务日志空间较少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE

数据库常见面试题

…衆ロ難τιáo~ 提交于 2020-02-08 10:35:51
1:delete和truncate有啥区别? 答:delete可以配合where语句使用,可以只删除其中某一部分,但truncate不可以;功能上truncate和不带where条件的delete语句一样,都是删除整个表的数据,但是不删除表定义,区别是,truncate删除表数据的时候既删除了数据又释放了空间,速度快,但是删除的数据无法恢复,但是delete只是删除了表中数据,但是空间没有释放,支持数据恢复,同时删除速度慢,因为在事务日志中记录删除的每一行记录 2:in 和exist 有啥区别? 答:一般来说,这两个是用来做两张(或更多)表联合查询用的,in是把外表和内表作hash 连接,而exists 是对外表作loop 循环,假设有A、B两个表,使用时是这样的: 1、select * from A where id in (select id from B)--使用in 2、select * from A where exists(select B.id from B where B.id=A.id)--使用exists也可以完全不使用in和exists: 3、select A.* from A,B where A.id=B.id--不使用in和exists 具体使用时到底选择哪一个,主要考虑查询效率问题: 第一条语句使用了A表的索引; 第二条语句使用了B表的索引;