数据表

基础知识:Mysql基本操作命令

自作多情 提交于 2019-11-29 08:16:07
启动mysql : mysql -hlocalhost -uroot -p 创建数据库:create database 数据库名字; 指定要操作的数据库:use 数据库名字; 查看数据表建表语句:show create table 数据表名字; 查看数据库中的数据表基本结构:show tables; 创建数据表:create table 数据表名字; 使用DESCRIBE语句查看数据表:describe 数据表名字; //查看该数据表详细信息,字段名,数据类型等 为数据表重命名:alter table 旧数据表名字 rename 新数据表名字; 修改字段名:alter table 数据表名字 change 旧字段名称 新字段名称 新数据类型; 修改字段数据类型:alter table 数据表名字 modify 字段名字 数据类型; 修改字段的排列位置:alter table 数据表名字 modify 字段名1 数据类型 after 字段名2; //第一列可以使用FIRST,非第一列使用AFTER 删除数据表:drop table 数据表名字; 在表中添加新字段: alter tbale 数据表名字 add 新字段名字 数据类型 not full(可添加) after 放在一个已有字段后面; 删除表中字段: alter table 数据表名字 drop 要删除的字段; 删除数据库 :

[创意料理] 有一个工具可以让数据库的数据在发生 Insert、Update、Delete 时即时主动通知我们

人盡茶涼 提交于 2019-11-29 06:03:10
发现一个工具 - SqlTableDependency,透过它可以在数据库的数据发生 Insert、Update、Delete 的时候,即时主动发送通知,而且包含异动后的数据都一起随着通知发送出来,我们就来看看它要怎么用? 这个连结里面有介绍 SqlTableDependency 是如何运行的?它利用了原本 SQL Server 就有的功能,来动态地产生通知机制。 开启 Service Broker 功能 SqlTableDependency 相依于 SQL Server 的 Service Broker 功能,将消息透过 Service Broker 广播给订阅者,执行下面的命令就可以开启 Service Broker 功能。 ALTER DATABASE MyDatabase SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE 附加 WITH ROLLBACK IMMEDIATE 选项来执行 ALTER DATABASE 命令,会让所有未完成的事务都会回复,而且数据库的任何其他连接都会立即中断,要附加这个选项是因为开启 Service Broker 功能必须要在没有其他使用者在使用的时候,所以请选定良辰吉日再来做这件事。 准备测试数据 我事先在数据库建立了一个数据表 MyDependencyTalbe ,里面有三个字段 Id 、 Name 、

Kettle安装和简单使用

心已入冬 提交于 2019-11-29 03:29:27
Kettle 安装和使用 安装 安装之前需要准备的环境为 Java 环境,需要提前配置好 jdk 下载之后,解压即可使用。 使用 1. 因为该工具主要是对数据库进行操作,所以需要提前将 mysql 的 jar 包放到 lib 文件夹下边。 2. 使用可视化图形界面,双击运行 初始界面如下: 这两个分别是转换和作业两个类型,下面举例对这两个进行简单的应用。 操作举例 转换操作 目标:将数据表 stu1 中的数据,转移到数据表 2 中,如果 2 中有相同的 id 则覆盖。如果没有则插入到数据表中。 数据准备: stu1 表 stu2 表 双击转换进入新界面 在输入中选择:表输入 在输出中选择:插入 / 更新 然后按住 shift 使用鼠标将两个节点连接起来。 如下图: b) 双击表输入: 填写对应的连接参数,本例子以 mysql 为例 设置新的连接参数,填写完成之后点击测试,成功之后点击确定。 c) 在 sql 处填写 sql 语句 Select * from stu1 可以点击下方预览,查看当前表中数据 点击确定退出。 d) 双击插入 / 更新 选择目标表:找到 stu2 ,点击确定 然后如图 第三步操作如图(去掉不匹配的字段) 因为我们的目标是对 id 为标准进行插入更新。所以需要将其他几个字段在查询关键字列表中删除。 更新字段中,我们要将 id 的更新设置为 N ,因为 id

# 聚合函数

做~自己de王妃 提交于 2019-11-29 01:55:06
聚合函数 聚合函数就是将多行数据转换成为一行的函数。需要注意的是他不能够在WHERE子句中使用。 求值的聚合函数 求值的聚合函数有五个,分别是: SUM AVG MAX MIN COUNT 通过名字很容易明白该函数的意思。 这里需要注意的点是 SUM 和 AVG 只能够用于数值型数据,同时在遇到NULL时,会将其忽略。而 MAX MIN 几乎可以用于所有的数据类型,例如字符以及日期。 COUNT 在使用中也有需要注意的地方就是对于 COUNT(*) 他不会忽略NULL,而当我们指定某一列为聚合键的时候,NULL将被忽略。 GROUP BY 他的作用是将数据分组。 到目前为止我们可以将SQL的语法顺序总结为: SELECT->FROM->WHERE->GROUP BY 不过我们需要注意的是,SQL的语法顺序与DBMS的解析执行顺序并不相同,MS的解析顺序为: FROM->WHERE->GROUP BY->SELECT 当然其中的 WHERE 以及 GROUP BY 不是必须的。 然后再看到 GROUP BY 。我的理解是,在 GROUP BY 这一步之前是对一整个数据表进行处理: 在他之后,系统将原本完整的数据表按照提供的聚合键拆分成为多个数据表,然后对每个数据表分别执行 SELECT 子句,之后再将执行结果整合到一起。 正确来讲,每个拆分出来的数据表SELECT后的结果应该只有一行

删除数据表

孤街醉人 提交于 2019-11-28 22:18:52
1.删除没有被关联的表 2.删除被其他表关联的主表 (1)删除没有被关联的表 语法: drop table [if exists] 表1,表2,...表n; 如果要删除的表不存在,报错:" ERROR 1051(42S02): Unknown table '表名' ",添加 IF EXISTS 可以顺利执行,但是会warning。 【例】删除数据表tb_dept2,SQL语句如下: mysql > drop table if exists tb_dept2 ; Query OK , 0 rows affected ( 0.07 sec ) (2)删除被其他表关联的主表 数据表之间存在外键关联的情况下,不能直接删除父表。若要单独删除父表,需要将关联的表的外键约束条件取消,下面讲解这种方法。 第一步:首先创建两个关联表tb_dept2和tb_emp: mysql > create table tb_dept2 - > ( - > id int ( 11 ) primary key , - > name varchar ( 22 ) , - > location varchar ( 50 ) - > ) ; Query OK , 0 rows affected ( 0.13 sec ) mysql > create table tb_emp - > ( - > id int ( 11 )

ERP开发07--供应商数据表

此生再无相见时 提交于 2019-11-28 21:54:58
customer 客户表 id----客供应商编号,文本 name-----供应商名称 regionId---地区id regionName---地区名称 SupplierTypeId--供应商类型id SupplierTypeName--供应商类型名称 contactsName---联系人 contactsPhone---联系电话 Fax----传真 MnemonicCode--助记码 mailMBox--电子邮箱 address----地址 Remarks---备注 ProjectCode---项目标号,框架必备 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Supplier]( [id] [varchar](250) NOT NULL, [name] [varchar](250) NULL, [SupplierTypeId] [varchar](250) NULL, [SupplierTypeName] [varchar](250) NULL, [regionId] [varchar](250)

113-使用mysql数据库

ぐ巨炮叔叔 提交于 2019-11-28 21:42:13
使用Ubuntu+Django+MySQL,有很多很多天坑! 这里首先尝试利用Python来对MySQL进行简单操作。 1、安装mysql (1)去mysql官网下载社区版,选择Ubuntu系统及版本后(我用的是Ubuntu 18.04.3 LTS),会给出一个apt下载和管理的方案:MySQL APT Repository; 下载对应的deb文件:mysql-apt-config_0.8.13-1_all.deb,双击安装或者命令行安装都行,之后的步骤很反人类,反正我迄今都没搞清楚,总之只能选中ok,然后才能下一步; mysql-apt-config_0.8.13-1_all.deb文件用来使Ubuntu用户通过apt-get的方式能够下载到最新的MySQL (2)运行命令: sudo apt-get update (3)运行命令: sudo apt-get install mysql-server ,这一步正式开始安装,中间要输入2次针对root用户的密码 (4)验证安装: lzhshn@lzhshn-pc:~$ dpkg -l | grep mysql | grep ii ii libmysqlclient20:amd64 5.7.27-0ubuntu0.18.04.1 amd64 MySQL database client library ii libqt4-sql

MySQL数据库修改数据表引擎

不想你离开。 提交于 2019-11-28 18:55:02
mysql 表类型说明 MyISAM: 这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method ( 有索引的 顺序访问方法 ) 的缩写,它是存储记录和文件的标准方法。与其他存储引擎比较, MyISAM具有检查和修复表格的大多数工具 。 MyISAM表格可以被压缩,而且它们支持全文搜索。它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果 执行大量 的SELECT,MyISAM是更好的选择 。 InnoDB: 这种类型是事务安全的。它与BDB类型具有相同的特性,它们还支持外键。InnoDB表格速度很快,具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它。如果你的数据 执行大量的INSERT或UPDATE ,出于性能方面的考虑,应该使用InnoDB表。 对于支持事物的InnoDB类型的标,影响速度的主要原因是AUTOCOMMI,默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打 开也可以),将大大提高性能。 1、查看表状态 SHOW TABLE STATUS LIKE 'corr_alert'; Engine:引擎类型

Sqoop使用

空扰寡人 提交于 2019-11-28 18:29:18
说明 导入:从其他数据源写入"hdfs" 导出:从"hdfs"写入到其他存储设施 表名和字段不能有中文 MySQL –> HDFS 导入整个数据表 (默认使用MySQL的3306端口) sqoop import --connect jdbc:mysql://172.16.1.150/mysql --username root --password 123456 --table zhilianjobs --target-dir /hive_table/zhilianjobs -m -1 --fields-terminated-by '|' --columns name,space,pay,skill; 导入查询结果 sqoop import --connect jdbc:mysql://172.16.1.150/mysql --username root --password 123456 --query 'select * from zhilianjobs WHERE $CONDITIONS' --target-dir /hive_table/zhilianjobs --delete-target-dir -m 1 --fields-terminated-by '|'; MySQL –> Hive 实现原理: https://www.cnblogs.com/xuyou551/p

MySQL 索引

最后都变了- 提交于 2019-11-28 18:22:42
[1]索引不是万能的! 索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。 [2]另外,索引还会在硬盘上占用相当大的空间。 因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。 从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。 1. InnoDB数据表的索引 与MyISAM数据表相比,索引对InnoDB数据的重要性要大得多。在InnoDB数据表上,索引对InnoDB数据表的重要性要在得多。在 InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。”数据行级锁定”的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECT…LOCK IN SHARE MODE、SELECT…FOR