数据表

MySQL笔记总结

橙三吉。 提交于 2020-03-10 13:12:37
总结一下我之前自己学习MySQL的笔记,仅供参考。 使用命令行调用MySQL一定要注意分号,不然会出现报错。建议自己练习的时候,可以先把代码打到记事本里,再粘贴到命令行中运行,就不容易犯错了。 1.数据库常用操作 1)查询数据库:show databases; 2)创建数据库:create databases 数据库名字; 3)使用某一个数据库:use 数据库名字; 4)显示当前数据库里的数据表: show tables; 5)创建数据表: create table 表名字( 数据类型+字段); 6)显示数据表:describe 数据表名; 7)查看数据表中的记录:select * from 数据表名; 8)向数据表中添加数据记录: insert into 数据表名 values(‘a’,‘b’,‘c’,NULL); 9)从数据表中删除数据记录:delete from 数据表名 where name = ’ ‘; 10)从数据表中修改记录: update 数据表名 set name= ’ 改后的名’ where 所属的类名=‘ 对应的名’; 2.MySQL支持的数据类型有三种:数值,日期/时间,字符串类型 3.MySQL建表约束 1) 主键约束 :能够唯一确定一张表中的一条记录,即通过给某个字段增加约束,可使得该字段不重复且不为空。 create table 数据表名( id

重新组织 vs 重新生成索引

蹲街弑〆低调 提交于 2020-03-09 04:30:18
  索引是数据库引擎中针对表(有时候也针对视图)建立的特别数据结构,用来帮助查找和整理数据。索引的重要性体现在能够使数据库引擎快速返回查询 结果。当对索引所在的基础数据表进行修改时(包括插入、删除和更新等操作),会导致索引碎片的产生。当索引的逻辑排序和基础表或视图的物理排序不匹配时, 就会产生索引碎片。随着索引碎片的不断增多,查询响应时间就会变慢,查询性能也会下降。在SQL Server 2005中,要解决这个问题,要么重新组织索引要么重新生成索引。    重新组织VS重新生成   修复索引碎片的方法有两种:重新组织索引或重新生成索引。重新组织索引会对最外层数据页里的数据进行重新排序,并压缩索引页。重新组织的过程中 不会添加任何额外的数据,所以索引可能还残留着一定程度的碎片。重新组织索引操作不会占用很多系统资源,在运行过程中外部进程也能够对该索引所在的数据表 进行查询,所以能够说是联机(online)执行。   重新生成索引操作基本上删除掉目标索引并创建一个新索引。旧索引中的任何碎片都会被删除,新索引的逻辑排序将和对象的物理排序相匹配。由于整个 过程需要删除索引并重新创建,所以外部进程无法访问数据表,而且访问性能也大受影响。事实上,在重新生成索引的过程中,其他进程并不能完全锁定数据表。这 是重新生成索引的一大障碍。    联机重新生成索引   SQL Server

SELECT查询结果集INSERT到数据表

爷,独闯天下 提交于 2020-03-08 12:41:56
简介 将查询语句查询的结果集作为数据插入到数据表中。 一、通过INSERT SELECT语句形式向表中添加数据 例如,创建一张新表AddressList来存储班级学生的通讯录信息,然后这些信息恰好存在学生表中,则可以从学生表中提取相关的数据插入建好的AddressList表中。 T-SQL语句如下: insert into AddressList(姓名,地址,邮箱) select name,address,email from Students 语法快记: 该语句和常规的插入语句语法很相似,为了更好的记住语法,即可理解此插入语句把values替换成了查询语句。 使用该语句插入数据的注意事项:   1.查询语句部分其中列的个数、顺序、数据类型必须与INSERT语句的指定列要保持一致,列名可以不相同。   2.INSERT语句插入数据的表必须是预先创建好的。 INSERT SELECT语句形式中的查询部分不仅可以是单表,可以支持不同形式的查询语句,只要保证查询结果集的列和要插入数据的列是匹配的即可。 1.联接查询作为数据 insert into AddressList (name,address) select a.UserName,b.address from SYSTEM_Users a inner join BASE_Customer b on a.code=b.code 2

使用INSERT…SELECT语法插入记录(三十二)

给你一囗甜甜゛ 提交于 2020-03-08 12:41:36
  前面,我们在谈INSERT语句时,使用两种语句:INSERT…SELECT 和 INSERT…VALUES。 INSERT…SELECT可以使用子查询。因为在写SELECT时。 *** = ***,这就是子查询。   我们还以tdb_goods这张表为例,这张表目前一共有22条数据,但是这22条数据中有很多重复的信息,下面我们简单来查看一下。 select * from tdb_goods\G;   比如这21、22条记录,他们的商品类别都是笔记本配件,他们的品牌都是索尼。这些都是重复的信息,我们都知道汉字占的字节数肯定要比数字要多,如果这种记录越来越多,那么你的数据表就越来越庞大,那么查找的时候速度就会越来越慢,那 最好的办法就是使用外键来实现 ,如果使用外键,那么至少要有两张数据表,所以我们需要再做一张数据表来存储我们的产品分类和品牌。   下面我们就来创建商品的分类表,操作命令及结果如下: CREATE TABLE IF NOT EXISTS tdb_goods_cates( cate_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREENT, cate_name VARCHAR(40) NOT NULL );   OK,我们的数据表创建成功。   那么我们该如何插入数据呢,难道我们要一条一条去查找吗,当然不用,一定会有其他的方法

SSAS系列——【03】多维数据(多维数据集对象)

喜夏-厌秋 提交于 2020-03-08 02:10:57
原文: SSAS系列——【03】多维数据(多维数据集对象) 1、什么是Cube? 简单 Cube 对象由基本信息、维度和度量值组组成。 基本信息包括多维数据集的名称、多维数据集的默认度量值、数据源和存储模式等。维度是多维数据集中使用的实际维度组。所有维度都必须先在数据库的维度集合中定义,然后才能在多维数据集中引用。度量值组是多维数据集中的度量值集。度量值组是具有常见数据源视图和维度集的度量值的集合。度量值组是度量值的处理单元;可先对度量值组进行单独处理,然后再浏览。这个概念MSND解释的非常清楚,也不难理解,姑且Copy贴上来。 2、度量值和度量值组 度量值通常映射到事实数据表中的列。维度表中的属性列可以用于定义度量值,但是这些度量值通常在聚合行为方面具有半累加性或非累加性。 图 事实数据表中的度量值 简单 MeasureGroup 对象由基本信息、度量值、维度和分区组成。基本信息包括度量值组的 名称 、度量值的 类型 、 存储模式 和 处理模式 等。度量值是组成度量值组的实际度量值集。对于每个度量值,均有一个聚合函数定义、一个格式属性定义、一个数据项源定义等其他定义。维度是用于创建已处理度量值组的多维数据集维度的子集。分区是已处理度量值组的物理拆分的集合。在多维数据集中,度量值按照其基础事实数据表分组为多个度量值组。度量值组用于使维度和度量值相互关联

sqlite常用命令

我的未来我决定 提交于 2020-03-07 23:59:40
sqlite常用命令 一、查看版本信息: #sqlite3 -version 二、sqlite3常用命令 1、当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识: 2、输出帮助信息: sqlite>.help 3、查看数据库文件信息命令(注意命令前带字符’.’): sqlite>.database 4、退出sqlite终端命令: sqlite>.quit 或 sqlite>.exit 5、列出当前显示格式的配置: sqlite>.show 6、显示数据库结构:.schema 显示表的结构:.schema 表名 其实就是一些 SQL 语句,他们描述了数据库的结构,如图 7、导出某个表的数据: .dump 表名 8、设置导出目标: .output 文件名 或者 .output stdout 先运行 .output cars.sql ,然后再运行 .dump 命令试试看?如果要回复成导出到终端(标准输出),则运行 .output stdout 10、设置分隔符:.separator 分隔符 我们可以首先运行 SELECT * FROM Cars; ,可以看到默认的分隔符是 | 运行.separator : 以后,再 SELECT * FROM Cars;,可以看到分隔符已经变成 : 了 11、显示标题栏:.headers on 12

数据库关系图和数据库中数据的操作(添加,查询,修改,删除)

大憨熊 提交于 2020-03-07 03:17:18
文章目录 一.创建数据库关系图 二.数据的操作 1.添加数据 添加单行数据 添加多行数据 2.简单查询数据 3.修改数据 4.删除数据 5.还原数据表 数据库的设计 主键的选择 外键的选择 一.创建数据库关系图 生成数据库关系图 出现的报错: 解决: 二.数据的操作 1.添加数据 添加单行数据 INSERT [ INTO ] 目标表名 [ ( 字段 ) ] VALUES ( 字段对应的数据 ) INSERT INTO Teacher ( [ NAME ] , TEL , SUBID ) VALUES ( '张三' , 110 , 1 ) 使用这种插入语法必须要注意:必须要明确这张表中具有非空约束的字段是哪些 注意: 列名的个数必须和数据值对应 非数值类型的数据,必须放在单引号内 数据值的类型必须和定义的字段的数据类型保持一致 添加数据一定要注意数据表中的字段的各种约束问题,违反约束添加失败 这种添加数据的语法是只能添加一行数据 INSERT Teacher VALUES ( '李四' , 1111111 , 2 ) 使用这种插入语法必须要注意:这张表里面的所有字段都必须为其提供对应的数据值除过自增列之外,而且数据值的顺序必须保持和数据表字段的顺序一致 添加多行数据 INSERT INTO [ SUBJECT ] SELECT '.NET' UNION SELECT 'WEB'

MySQL 操作数据库、数据表

让人想犯罪 __ 提交于 2020-03-06 19:24:33
通过mysql-client连接到mysql-server,sql语句要以分号结尾,这样按Enter才会执行sql语句。 mysql关键字不区分大小写 字符串、时间日期类型的值要引起来 数据库操作 show databases; #显示已有的数据库 create database db_student character set utf8; #新建数据库并指定使用的字符集 create database db_student; #新建数据库,使用默认的字符集 drop database db_studrnt; #删除数据库use db_student; #使用指定的数据库。要先使用此语句,才能使用该数据库中的表 数据表操作 show tables; #查看当前数据库中的表drop table 表名; #删除表desc 表名; #查看该表的定义show create table 表名; #查看该表的建表语句rename table 原表名 to 新表名;  create table tb_user(     id int not null auto_increment, #字段名 数据类型 【约束】     name varchar(20) not null,     primary key (id) #设置主键   );   alter table 表名 add 字段名 数据类型

MySQL下的SQL语句

强颜欢笑 提交于 2020-03-05 20:58:43
SQL语言包含四个部分:   DDL(数据库定义语言):用于定义和管理数据对象,包括数据库、数据表等           如:create、drop、alter   DML(数据库操作语言):用于操作数据库对象中所包含的数据           如:insert、update、delete   DQL(数据库查询语言):用于查询数据库对象中所包含的数据           如:select   DCL(数据库控制语言):管理数据库的语言,包括管理权限及数据更改           如:grant、revoke、commit、rollback          【对数据库的操作】 创建数据库: create database/schema [if not exists] db_name default character set '字符集'; 删除数据库: drop database if exists db_name; 查看已有的数据库: show databases/schemas; 打开指定数据库: use db_name; 查看当前打开的数据库: select database(); 查看已创建的指定数据库的编码方式: show create database db_name; 修改已有数据库的编码方式: alter database db_name default

第2章 数据类型与操作数据表

我的未来我决定 提交于 2020-03-05 13:28:56
1、数据类型 数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型: MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。 BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。 作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。 下面的表显示了需要的每个数值类型的存储和范围: 类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294