varchar

SQL基础教程第一章笔记

三世轮回 提交于 2020-02-13 22:37:16
第一章 数据库和SQL 1.1 数据库 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。 用来管理数据库的计算机系统统称为数据库管理系统(DBMS) DBMS在现阶段主要有5种:层次型数据库(Hierarchical Database, HDB),关系型数据库(Relational Database,RDB),面向对象数据库(Object Oriented Database,OODB),XML数据库(XML Database,XMLDB),键值存储系统(Key-value Store,KVS) 1.2 数据库结构 1.2.1 RDBMS最常见的结构是客户端/服务器(C/S类型) 1.2.2 表的结构 根据SQL语句的内容返回的数据,必须是二维表的形式。 表的列称为字段,代表了保存在表中的数据项目。 表的行成为记录,相当于一条数据。 行列交汇处称为单元格,一个单元格只能输入一个数据。 1.3 SQL概要 1.3.1 SQL是为了操作数据库而开发的语言 1.3.2 SQL语言的种类可分为三种:DDL(Data Definition Language,数据定义语言),DML(Data Manipulation Language,数据操作语言),DCL(Data Control Language,数据控制语言) DDL: CREATE(创建数据库和表等对象)

简单实用SQL脚本

冷暖自知 提交于 2020-02-13 21:01:13
简单实用SQL脚本 行列互转 create table test(id int ,name varchar ( 20 ),quarter int ,profile int ) insert into test values ( 1 , ' a ' , 1 , 1000 ) insert into test values ( 1 , ' a ' , 2 , 2000 ) insert into test values ( 1 , ' a ' , 3 , 4000 ) insert into test values ( 1 , ' a ' , 4 , 5000 ) insert into test values ( 2 , ' b ' , 1 , 3000 ) insert into test values ( 2 , ' b ' , 2 , 3500 ) insert into test values ( 2 , ' b ' , 3 , 4200 ) insert into test values ( 2 , ' b ' , 4 , 5500 ) select * from test -- 行转列 select id,name, [ 1 ] as "一季度", [ 2 ] as "二季度", [ 3 ] as "三季度", [ 4 ] as "四季度", [ 5 ] as " 5 "

简单实用SQL脚本

一曲冷凌霜 提交于 2020-02-13 19:23:47
行列互转 create table test(id int ,name varchar ( 20 ),quarter int ,profile int ) insert into test values ( 1 , ' a ' , 1 , 1000 ) insert into test values ( 1 , ' a ' , 2 , 2000 ) insert into test values ( 1 , ' a ' , 3 , 4000 ) insert into test values ( 1 , ' a ' , 4 , 5000 ) insert into test values ( 2 , ' b ' , 1 , 3000 ) insert into test values ( 2 , ' b ' , 2 , 3500 ) insert into test values ( 2 , ' b ' , 3 , 4200 ) insert into test values ( 2 , ' b ' , 4 , 5500 ) select * from test -- 行转列 select id,name, [ 1 ] as "一季度", [ 2 ] as "二季度", [ 3 ] as "三季度", [ 4 ] as "四季度", [ 5 ] as " 5 " from test

简单实用SQL脚本

流过昼夜 提交于 2020-02-13 19:20:07
行列互转 create table test(id int,name varchar(20),quarter int,profile int) insert into test values(1,'a',1,1000) insert into test values(1,'a',2,2000) insert into test values(1,'a',3,4000) insert into test values(1,'a',4,5000) insert into test values(2,'b',1,3000) insert into test values(2,'b',2,3500) insert into test values(2,'b',3,4200) insert into test values(2,'b',4,5500) select * from test --行转列 select id,name, [1] as "一季度", [2] as "二季度", [3] as "三季度", [4] as "四季度", [5] as "5" from test pivot ( sum(profile) for quarter in ([1],[2],[3],[4],[5]) ) as pvt create table test2(id int,name varchar

MySQL_MySQL俩表索引优化实例

廉价感情. 提交于 2020-02-13 17:38:13
1.引入 我们呢,在上一节课的时候优化了一张单一的数据库表。那么接下来呢。我们一起优化一下俩张数据库表的索引。 2.创建操作的数据库 创建用户表:admin,并添加数据 -- ---------------------------- -- Table structure for admin -- ---------------------------- DROP TABLE IF EXISTS `admin`; CREATE TABLE `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `adminname` varchar(255) NOT NULL, `realname` varchar(255) DEFAULT NULL, `adminpassword` varchar(255) NOT NULL, `adminEmail` varchar(255) DEFAULT NULL, `adminNote` varchar(255) DEFAULT NULL, `role_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_adname_relname` (`adminname`,`realname`) ) ENGINE=InnoDB AUTO_INCREMENT=3

177.MySQL基本操作

风流意气都作罢 提交于 2020-02-13 01:51:07
1.MySQL5.6之后的my.ini文件的配置 设置默认字符是UTF-8 设置存储引擎为INNODB,它支持事务 skip-name-resolve 可以提高远程连接速度 级联查找表 外键查询 ON作为条件配合INNER JOIN使用 自循环表的查询 MySQL 修改字段类型或长度 mysql> alter table 表名 modify column 字段名 类型 ; 例如 数据库中 address 表 city 字段是 varchar(30) 修改类型可以用(谨慎修改类型,可能会导致原有数据出错) mysql> alter table address modify column city char(30); 修改长度可以用(修改长度,要保证不短与已有数据,以保证原有数据不出错) mysql> alter table address modify column city varchar(50); char 和 varchar 的区别: char 设定好大小就预留多大存储空间, varchar 可变 CHANGE 和 MODIFY 的区别 ALTER COLUMN 语法: ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} 作用: 设置或删除列的默认值。该操作会直接修改.frm文件而不涉及表数据。所以

db2audit 审计 (适用于db2 9.7)

大憨熊 提交于 2020-02-12 09:43:52
db2audit 审计 (适用于db2 9.7) 查看审计状态 db2audit describe 审计实例1 将审计功能配置成只记录失败的 AUDIT 和 VALIDATE 事件, 并使用 NORMAL 错误处理选项。为此,发出以下 db2audit 命令: db2audit configure scope validate status failure errortype normal db2audit configure scope audit status failure errortype normal 审计实例2 为了将审计功能配置成监视所有事件类型,同时记录成功的和失败的尝试, 并且使用 AUDIT 错误处理选项,可发出以下 db2audit 命令: db2audit configure scope all status both errortype audit 刷新审计日志到磁盘 db2audit flush 审计日志归档 如果需要提前审计日志,需要将审计日志归档,否则报错: AUD0036N Extract can not be performed on the active audit log file "/home/db2inst1/sqllib/security/auditdata/db2audit.db.SAMPLE.log.0". 1、归档实例审计日志

【MySQL】浅谈 varchar(N)

为君一笑 提交于 2020-02-12 05:18:42
一 前言 varchar(N) N代表什么意思,能存放多少个中文字符?属于老生常谈的问题了,今天又被一个开发同事问我关于这个问题,索性写一篇文章来具体介绍一下。 二 理论知识 先说明一下 MySQL 历来版本对 varchar 的定义: 4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能存16个(每个中文3字节) 5.0版本以上,varchar(50),指的是50字符,无论存放的是数字、字母还是UTF8中文(每个中文3字节),都可以存放50个 存储限制 需要额外占用字节存放字符的长度:小于255为1个字节,大于255则要2个字节 编码限制 gbk :每个字符最多占用2个字节 utf8:每个字符最多占用3个字节 utf8mb4 每个字符最多占用4个字节,中文占3个字节,emoji表情符号 占用4个字节 长度限制 MySQL定义行的长度不能超过65535,该数值限制了列的数目,比如char(128) utf8字符集,最多有65535/(128*3)=170个汉字。 三 测试 环境 Server version: 5.6.26-74.0-log Percona Server mysql> create table t1 -> (id int NOT NULL AUTO_INCREMENT primary key, -> name varchar(10)

varchar(MAX)--SQL2005的增强特性

坚强是说给别人听的谎言 提交于 2020-02-12 05:18:21
先说个问题: 看这样一个很简单的存储过程,接收有一个text类型的参数。 Code CREATE PROCEDURE pr_testprocedure ( @text text ) AS BEGIN SELECT @text END 在SQL 中调用 Code DECLARE @largeText VARCHAR ( 8000 ) SET @largeText = ' very large string more than 8000 ' EXEC pr_testprocedure @text = @largeText 大家知道,在SQL Server 2000中,VARCHAR的最大长度是8000,如果字符串的长度超过8000,保存在VARCHAR中时就会被截断。如果你需要传入的参数恰好很长,比如是一个xml,很多时候都会超过8000个字符。那怎么办呢? DECLARE @largeText TEXT 是不行的,那我们怎么办呢? 在SQL Server 2000中,这的确是个很棘手的问题。不过幸运的是SQL Server 2005为我们提供了VARCHAR(MAX),它的最大长度可以达到2G,足够用了:)。而且,我们原先熟悉的字符串处理函数REPLACE,LTRIM等等也可以用了,多完美啊,呵呵 VARCHAR(MAX), NVARCHAR(MAX)和VARBINARY(MAX

Mysql—存储过程

坚强是说给别人听的谎言 提交于 2020-02-11 00:51:59
存储过程   含义: 一组预先编译好的SQL语句的集合,理解成批处理语句   好处:     1、提高代码的重用性     2、简化操作     3、减少了编译次数并且减少了和数据库连接的次数,提高了效率 一、创建语法: CREATE PROCEDURE 存储过程名称(参数列表)   BEGIN     存储过程体(一组合法的SQL语句)   END   注意:  1、参数列表包含三部分     参数模式 参数名 参数类型     举例:       IN setuname VARCHAR(20)     参数模式:       IN:该参数可以作为输入, 也就是这参数需要调用方传入值       OUT:该蚕食可以作为输出,也就是该参数可以作为返回值       INOUT:该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值。   2、如果存储过程中只有一条语句 BEGIN END可以省略   存储过程体重的每条SQL语句的结尾要求必须加分号   存储过程的结尾可以使用DELIMITER 重新设置   语法:     DELIMITER 结束标记     案例:     DELIMITER $    二、调用语法:   CALL 存储过程名(参数列表);     1、空参列表     案例:插入到admin表中五条记录     DELIMITER $