varchar

SQL学习笔记(二)

雨燕双飞 提交于 2020-02-16 23:30:05
文中所操作的数据库表如下: SQL AND & OR 运算符: 用法示例: ORDER BY 多列: 按order by 后的字段顺序进行排列。 UPDATE 语句中的 WHERE 子句: 如果省略了where后面的条件,则所有记录将会被更新。 LIMIT子句: IN 操作符 IN 操作符允许您在 WHERE 子句中规定多个值 BETWEEN 和NOT BETWEEN: 注意:between在不同数据库里可能包含括两个测试值的,也可能不包含。 SQL别名: INSERT INTO SELECT 语句: 将已有数据从一表复制到另一表 UNIQUE 约束: 每个表只能有一个primary key 但是可以有多个 unique FOREIGN KEY 约束: 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。 CHECK 约束: CREATE TABLE 时的 SQL CHECK 约束: CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (P_Id>0) ) ALTER TABLE 时的 SQL CHECK

mysql 常见语法

眉间皱痕 提交于 2020-02-16 19:01:53
一、数据库简单介绍 1、 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为广泛。面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005、Oracle10g等都开始增加面向对象的特性。 二、常用基本SQL语句/语法 Ø SQL 语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作然后关系型数据库。 标准的 SQL 语句通常划分为以下类型: 查询语句: 主要由于select关键字完成,查询语句是SQL语句中最复杂,功能最丰富的语句。 DML (Data Munipulation Language,数据操作语言)语句,这组DML语句修改后数据将保持较好的一致性;操作表的语句,如插入、修改、删除等; DDL (Data Definition Language,数据定义语言)语句,操作数据对象的语言,有create、alter、drop。 DCL (Data Control Language,数据控制语言)语句,主要有grant、revoke语句。 事务控制语句: 主要有commit、rollback和savepoint三个关键字完成 DDL 语句 DDL语句是操作数据库对象的语句

千万级别的数据库优化

放肆的年华 提交于 2020-02-16 07:19:04
前言 平时在写一些小web系统时,我们总会对mysql不以为然。然而真正的系统易用应该讲数据量展望拓展到千万级别来考虑。因此,今天下午实在是无聊的慌,自己随手搭建一个千万级的数据库,然后对数据库进行一些简单的CRUD来看看大数据情况下的CRUD效率。 结果发现,曾经简单的操作,在数据量大的时候还是会造成操作效率低下的。因此先写下这篇文章,日后不断更新纪录一下自己工作学习到的Mysql优化技巧。 搭建千万级数据库 首先,需要一个测试环境。一开始想到的是写一个SImple JDBC程序然进行简单的数据INSERT。结果发现单线程情况下,每次INSERT了一百多万条的时候效率就变得非常的低下。但是程序也没报OUT MEMORY之类的异常。初步判断应该是单一线程不断的疯狂创建PrepareStatement对象CG没来得及清理造成内存逐渐被吃紧的原因。 后来改进了一下,用多线程的机制。创建十个进程,每个负责一万条数据的插入。这效率一下子提升了好几倍。然而好景不长,很快的Java程序报错:OUT MEMORY。内存溢出了,CG没来得及清理。 这可把我给急的了。插入的太快内存CPU吃紧,插入的太慢又失去了创建测试环境“快”的初衷。后来想了下,既然是要批量插入数据,那么不是可以简单的写一段数据库存储过程吗? 于是,先建立一张测试表,就叫goods表吧。先写sql语句创建表: CREATE

嵌入式关系型SQLite数据库

拥有回忆 提交于 2020-02-15 17:24:27
  在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中 ,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。 但有一种情况例外: 定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误。 另外, SQLite 在解析CREATE TABLE 语句时,会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段的类型信息:   CREATE TABLE person (personid integer primary key autoincrement, name varchar(20)) SQLite可以解析大部分标准SQL语句,如: 查询语句:select * from 表名 where 条件子句

MySQL 数据库表的约束

穿精又带淫゛_ 提交于 2020-02-15 05:06:46
数据库约束的种类 约束名 约束关键字 主键 primary key 唯一 unique 非空 not null 外键 foreign key 检查约束 check 注:mysql 不支持,sql支持 主键约束 创建主键方式 在创建表的时候给字段添加主键 字段名 字段类型 PRIMARY KEY 例1: CREATE TABLE tb_info ( id INT PRIMARY KEY, name VARCHAR(30), age INT ); 例2: CREATE TABLE tb_info ( id INT, name VARCHAR(30), age INT, PRIMARY KEY(id) ); 在已有表中添加主键 ALTER TABLE 表名 ADD PRIMARY KEY(字段名); 例: ALTER TABLE tb_info ADD PRIMARY KEY(id); 删除主键的方式 删除单表主键约束 ALTER TABLE 表名 DROP PRIMARY KEY; 删除有外键连接的表的主键 第一步:解除外键约束 ALTER TABLE 外键表 DROP FOREIGN KEY 外键名称 第二步:删除主键 ALTER TABLE 主键表 DROP PRIMARY KEY; 如:删除tb1的主键 这里有两个表,tb2的外键连接tb1的主键 第一步:解除与tb2的外键约束

万能分页存储过程

强颜欢笑 提交于 2020-02-14 19:57:32
CREATE proc [dbo].[p_paging] @tableName varchar(8000), --表名、视图名 @indexCol varchar(50) = 'id', --标识列名(如:比如主键、标识,推荐使用索引列) @pageSize int = 10, --页面大小 @pageIndex int = 1, --当前页 @orderCol varchar(100) = 'id desc',--排序 (如:id) @where varchar(max) = '', --条件 @columns varchar(500) = '*' --要显示的列 as declare @sql varchar(max) declare @sql2 varchar(max) declare @where2 varchar(max) if @where <> '' begin select @where2 = ' And ' + @where select @where = ' Where ' + @where end else select @where2 = '' select @sql = 'Select Top ' + Convert(varchar(10),@pageSize) + ' ' + @columns + ' From ' + @tableName select

通用分页存储过程

Deadly 提交于 2020-02-14 16:30:56
/****** Object: StoredProcedure [dbo].[p_paging] Script Date: 07/14/2018 11:18:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE proc [dbo].[p_paging] @tableName varchar(8000), --表名、视图名 @indexCol varchar(50) = 'id', --标识列名(如:比如主键、标识,推荐使用索引列) @pageSize int = 10, --页面大小 @pageIndex int = 0, --当前页 @orderCol varchar(100) = 'id desc',--排序 (如:id) @where varchar(max) = '', --条件 @columns varchar(500) = '*' --要显示的列 as declare @sql varchar(max) declare @sql2 varchar(max) declare @where2 varchar(max) if @where <> '' begin select @where2 = ' And ' + @where select @where = ' Where ' +

MySQL支持的数据类型

纵然是瞬间 提交于 2020-02-14 14:44:47
数值类型 MySQL中的数据类型 MySQL支持在类型名称后面的小括号内指定显示宽度, 如int(5)表示当数值宽度小于5位的时候在数字前面填满宽度。 如果不显示指定宽度,则默认为int(11) zerofill 属性是给存储的数值前面自动填充0.但是int(5)并没有在宽度小于5位的时候填充0,只有在明确修改表并使用zerofill参数时才起作用 create table t2(id int,id2 int(5)) insert into t2 VALUES(2,2) alter table t2 MODIFY id int ZEROFILL; SELECT * from t2; AUTO_INCREMENT 在需要产生位移标识符或顺序值的时候,使用此参数,该值从1开始 CREATE TABLE AI(ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY); MySQL分为两种方式: 浮点数 和 定点数 浮点数包括float和double,而定点数只有decimal一种表示 (M,D) 表示整数位+小数位 M -精度 D -标度 float和double在不指定精度时,默认会按照实际的精度来显示,而decimal默认的整数位为10,默认的小数位为0.即decimal(10,0) BIT(位)类型,用于存放字段值,BIT(M)用来存放多位二进制数

javaweb_实现增删改查操作(jdk1.8+mysql5.7+myeclipse8.0)

痴心易碎 提交于 2020-02-14 01:59:16
一:准备工作 1:test文件夹(里面有所需的页面资源),我完成的是在里面添加增删改查操作 2:myeclipse(版本没什么要求) eclipse也行 jdk 3:数据库 MySQL 4:需要了解到的知识点: servlet EL与JSTL表达式 项目的基本框架搭建(javaweb经典三层框架) 5:在myeclipse中建立对应的包结构 二:项目的基本框架搭建 所谓三层框架分别为表述层(WEB层)、业务逻辑层()、数据访问层()。 web层(action):包含JSP和Servlet等与web相关的内容,负责与浏览器的响应和请求; 业务层(service):只关心业务逻辑; 数据层(dao):封装了对数据库的访问细节,数据操作类; 关系:web层依赖业务层 业务层依赖数据层(这个关系很重要) ps:除了以上三层框架是我们在写一个javaweb项目必须的外,还需要一个实体类(entity)。 三:实现数据库的连接 需要在MySQL中创建所需数据库,并将表建好。 DROP TABLE IF EXISTS tb_subject ; CREATE TABLE tb_subject ( subjectID int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘试题编号’, subjectTitle varchar(100) NOT NULL

SQL SERVER 语句转换格式函数Cast、Convert

£可爱£侵袭症+ 提交于 2020-02-14 00:18:34
  CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。 CAST是ANSI兼容的,推荐使用CONVERT。 语法 CONVERT (data_type [ ( length ) ] , expression [ , style ]) CAST (expression AS data_type [ (length ) ]) data_type 目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。 length nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 style 日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型); 数字格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。 示例 SELECT 'AB' + 1 --此语句报错,在将 varchar 值 'AB'