数据库笔记
infomix数据库基础笔记

一. informix数据库基础管理类常用命令一、常用命令oninit 将系统从off-line模式变为on-line模式oninit -iy (初始化数据库,删除所有dbspace和chunk)oninit -s (脱机-->静态)onmode -ky offlineonmode -s graceful shutdown-->quiescent(联机到静态,让用户处理完成)onmode -u immediate shutdown-->quiescent(联机到静态,所有用户立即终止)onmode -m quiescent--->onlineonmode -z sid 删除某sessiononmode -l 将当前正在使用的逻辑日志下移onmode -c 强制执行检查点操作即onmonitor->force ckpt其中的oninit onmode一般情况下只有dbsa权限才可以执行,oninit权限限制级别更高onstat - 查看服务器状态onstat -d 查看dbspace和chunk情况onstat -l 查看逻辑日志onstat -F 查看写入磁盘的页刷新和类型情况,从共享内存缓冲区向磁盘写入页面有三种方式(fg:前台写LRU:队列写chunk:块写)onstat -R 打印LRU队列onstat -p 显示系统的基本I/O与性能配置文件onstat -c 查看onconfig文件onstat -m 查看消息日志onstat -f 查看受DATASKIP影响的dbspaceonstat -x 查看事务onstat -k 显示所有活动的锁onstat -g sub_option 运行多线索选项onstat -g ses/sqlonstat -r <value> 每隔<value>秒后重复选项onstat -g act 显示系统中所有的活动线索onstat -g ath -r 2 每隔两秒显示系统中所有的活动的线索onstat -i 交互方式>sql>sql sid关于onstat命令的更多用法,可以在系统中运行onstat -help查看ipcs 查看共享内存情况ipcrm 删除某个共享内存ipcrm -m idipcrm -s idOntape命令:1)零级(一级或二级)备份$>ontape -s$>ontape -s -L 0$>ontape -s -L 1$>ontape -s -L 2自动备份逻辑日志文件$>ontape -a3)连续逻辑日志备份(日志文件写满一个,online系统自动备份一个,你可以插盘磁带到磁带机上,让IDS自动备份。
数据库系统概论读书笔记

⏹数据(Data)是数据库中存储的基本对象⏹数据的定义⏹描述事物的符号记录⏹数据的种类⏹文字、图形、图象、声音⏹数据的特点⏹数据与其语义是不可分的数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合⏹数据库的特征⏹数据按一定的数据模型组织、描述和储存⏹可为各种用户共享⏹冗余度较小⏹数据独立性较高⏹易扩展⏹数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。
⏹DBMS的用途⏹科学地组织和存储数据、高效地获取和维护数据DBMS的主要功能⏹数据库的运行管理保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复⏹数据库的建立和维护功能(实用程序)数据库数据批量装载数据库转储介质故障恢复数据库的重组织性能监视等数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。
⏹数据库系统的构成⏹由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。
⏹数据管理⏹对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
⏹数据模型应满足三方面要求⏹能比较真实地模拟现实世界⏹容易为人所理解⏹便于在计算机上实现⏹数据模型分成两个不同的层次(1) 概念模型也称信息模型,它是按用户的观点来对数据和信息建模。
(2) 数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。
⏹客观对象的抽象过程---两步抽象⏹现实世界中的客观对象抽象为概念模型;⏹把概念模型转换为某一DBMS支持的数据模型。
⏹数据结构⏹对象类型的集合数据结构是对系统静态特性的描述⏹两类对象⏹与数据类型、内容、性质有关的对象⏹与数据之间联系有关的对象⏹数据操作⏹对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则⏹数据操作的类型⏹检索⏹更新(包括插入、删除、修改)⏹数据模型对操作的定义⏹操作的确切含义⏹操作符号⏹操作规则(如优先级)⏹实现操作的语言⏹数据操作是对系统动态特性的描述。
数据库系统工程师考试笔记

系统工程师笔记1. 指令寄存器(IR ):用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。
指令划分为操作码和地址码字段,由二进制数字组成。
为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。
指令译码器就是做这项工作的。
指令寄存器中操作码字段的输出就是指令译码器的输入。
操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
2. .程序计数器(PC):为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。
而程序计数器正是起到这种作用,所以通常又称为指令计数器。
在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。
当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。
由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。
有些机器中也称PC为指令指针IP(Instruction Pointer)3. 计算机的工作原理:取指令、分析指令并取操作数、执行指令。
PC保存要执行指令的地址,当要访问内存时,需将内存的地址送入存储器地址寄存器(MAR)中,向内存写入数据时,待写入的数据要先放入数据寄存器(MDR)中,程序中的指令一般在内存中,要执行时,首先要访问内存取得指令并保存在指令寄存器(IR)中。
即CPU首先要将指令的地址送入程序计数器(PC)中。
4. 软件系统测试侧路和测试方法---------------------------------------P5355. 软件进度管理(Gantt图和PERT图)----------------------------P499a) PERT关键路径——持续时间最长6. 补码1)正数的补码与原码相同,负数的补码等于原码按位取反末位加一。
VFB数据库笔记汇总

第一章数据库基础知识1、数据库管理系统:DBMS;数据库应用系统:DBAS;数据库系统:DBS;数据:DBDBS包括DBMS,DBAS,DB2、实体间的联系:一对一,一对多,多对多。
3、数据库中的数据模型:网状模型,层次模型,关系模型。
4、关系:一个关系就是一个二维表,每一个关系有一个关系名。
5、元组:二维表中的行称为元组。
6、属性:二维表中的列称为属性。
7、域:属性的取值范围。
8、关系→表;关系名→表名;属性→字段;元组→记录;行→记录,元组;列→字段,属性。
9、传统的集合运算:并,差,交。
10、专门的关系运算:选择(水平方向) for,while,where投影(垂直方向) fields,select联接(一对一,一对多,多对多)11、定义数组:dime/declare 数组名(3,4)第二章 VF基础知识1、创建项目:①通过菜单创建②命令:creat project项目名2、打开项目管理器:①通过“文件→打开”菜单项②命令:modify project 项目名3、各类文件选项卡:①数据选项卡(数据库,自由表,查询,视图)②文档选项卡(表单,报表,标签)③类④代码⑤其他第三章数据与数据运算1、字段数据类型(11种)* N包括Y,F,B,I2、变量:在程序运行过程中,其值可能发生变化的量。
3、变量的分类:字段变量,内存变量,数组变量,系统变量,对象变量。
4、常用的函数①、数值型函数1.绝对值函数【函数格式】 ?abs(<数值表达式> )【函数功能】返回指定“数值表达式”的绝对值【返回值类型】数值型eg:?abs(-1) 12.平方根函数【函数格式】 ?sqrt(<数值表达式>)【函数功能】返回指定“数值表达式”值的平方根。
“数值表达式”的值必须是大于或等于零【返回值类型】数值型eg:?sqrt(25) 5?sqrt(81) 9?sqrt(7^2-4*2*4) 4.123.取整函数【函数格式】 ?int(<数值表达式>)【函数功能】返回指定“数值表达式”整数部分的值【返回值类型】数值型eg:?int(6489.658) 6489?int(123.58) 1234.四舍五入函数【函数格式】 ?round(<数值表达式1>,<数值表达式2>)【函数功能】对指定的<数值表达式1>进行四舍五入运算【使用说明】 <数值表达式2>指定四舍五入运算精确的位数。
Oracle数据库学习笔记

Oracle数据库学习笔记Oracle数据库基础 orcale属于关系型数据库,适⽤于各类⼤,中,⼩,微机环境,是⼀种⾼效率、可靠性好的、适应⾼吞吐量的数据库⽅案。
学习,实验完全免费,商⽤需要⽀付相应费⽤。
Oracle 数据库包括数据库实例,和数据库,⼆者脱离谁都没有存在的价值。
实例是⽤来操作数据库的对象,数据库是⽤来存储数据使⽤的。
Oracle主要组件包含实例组件,数据库组件。
SGA(System Global Area)是Oracle Instance的基本组成部分,PGA(Process Global Area)是为每个连接到Oracle database的⽤户进程保留的内存。
每个实例只有⼀个SGA,所有的进程都能访SGA。
PGA是程序全局区,每个⼀个进程都⼀个PGA,PGA是私有的,只有对应进程才能访问对应的PGA。
数据库中包含:参数⽂件,⼝令⽂件,数据库⽂件,控制⽂件,⽇志⽂件以及归档⽇志⽂件。
Oracle实例进场包含⽤户进程,服务器进程和后台进程。
SGA:系统全局区 系统全局区包含共享池,数据缓冲区,⽇志缓冲区。
“共享池”:是对SQL,PL/SQL程序进⾏语法分析,编译,执⾏的内存区;由库缓存和数据字典缓存组成;其⼤⼩直接影响数据库性能。
“数据缓冲区”:临时存储从数据库读⼊的数据,所有⽤户共享,数据缓存区的⽬的是加快数据读写。
“⽇志缓冲区”:⽇志记录数据库所有修改信息,其先产⽣于⽇志缓冲区,当达到⼀定数量时,由后台进程将⽇志数据写到⽇志⽂件中。
PGA:程序全局区 PGA包含单个服务器进程所需要的数据和控制信息,在⽤户进程连接到数据库并创建⼀个会话时⾃动分配的,保存每个与数据库连接的⽤户进程所需要的信息。
PGA为⾮共享区,只能单个进程使⽤,当⼀个⽤户会话结束,PGA释放。
后台进程 后台进程中包含PMON(进程监视器(Process Monitor)),SMON(系统监视器(System Monitor)),DBWR(数据库书写器(Database Write)),LGWR(⽇志书写器(Log Write)),CKPT(检查点(Checkpoint)),以及其他。
MySQL数据库学习笔记

MySQL数据库学习笔记数据库 DDL: 数据定义语⾔, 包含数据库和表相关的操作(MySQL中保存数据需要先建库再建表,最后把数据保存到表中) DML: 数据操作语⾔, 包含增删改查相关的SQL DQL: 数据查询语⾔, 只包含查询相关的SQL TCL: 事务控制语⾔, 包括和事务相关的SQL DCL: 数据控制语⾔, 包括⽤户管理及权限分配相关的SQLDDL数据定义语⾔ 数据库相关SQL 1. 查询所有数据库 show databases; 2. 创建数据库 格式: create database 数据库名; 指定字符集格式: create database 数据库名 character set utf8/gbk; 举例: create database db1; create database db2 character set utf8; create database db3 character set gbk; show databases; 3. 查询数据库详情 格式: show create database 数据库名; 举例: show create database db1; show create database db2; show create database db3; 4. 删除数据库 格式: drop database 数据库名; drop database db3; 5. 使⽤数据库必须使⽤了某个数据库之后才能执⾏表和数据相关的SQL 格式: use 数据库名; use db1; 表相关SQL 操作表相关的SQL 必须使⽤了某个数据库之后再操作use db1; 1. 创建表 格式: create table 表名(字段1名类型,字段2名类型); 指定字符集格式: create table 表名(字段1名类型,字段2名类型) charset=utf8/gbk; 举例: create table person (name varchar(20),age int); create table student(name varchar(20),score int) charset=utf8; create table car(name varchar(20),price int) charset=gbk; 2. 查询所有表 格式: show tables; 3. 查询表详情 格式: show create table 表名 举例: show create table person; 4. 查看表字段 格式: desc 表名; 举例: desc student; 5. 删除表 格式: drop table 表名 举例: drop table car; 表相关SQL(续) use db1; 1. 修改表名格式: rename table 原名 to 新名; rename table student to stu; 2. 添加表字段 最后添加格式: alter table 表名 add 字段名类型; 最前⾯添加个格式: alter table 表名 add 字段名类型 fifirst; xxx字段后⾯添加格式: alter table 表名 add 字段名类型 after xxx; 举例: alter table person add gender varchar(5); //最后⾯ alter table person add id int fifirst; //最前⾯ alter table person add salary int after name;//name后⾯ 3. 删除表字段 格式: alter table 表名 drop 字段名; alter table person drop salary; 4. 修改表字段 格式: alter table 表名 change 原名新名新类型; alter table person change gender salary int;DML数据操作语⾔(数据相关SQL语句) 1. 插⼊数据 全表插⼊格式: insert into 表名 values(值1,值2); 值的数量和表字段⼀致 批量插⼊格式: insert into 表名 values(值1,值2),(值1,值2),(值1,值2); 举例: insert into person values("Tom",18); //全表插⼊ insert into person(name) values("Jerry"); //指定字段插⼊ insert into person values("AAA",10),("BBB",20), ("CCC",30); 中⽂问题: insert into person values("刘德华",30); 如果执⾏上⾯包含中⽂的SQL 报以下错误执⾏ set names gbk; 2. 查询数据 格式: select 字段信息 from 表名 where 条件; 举例: select name from person; //查询表中所有的名字 select name,age from person; //查询表中所有名字和年龄 select * from person; //查询表中所有数据的所有字段信息 select * from person where age>20; //查询年龄⼤于20岁的信息 select * from person where name='Tom'; //查询Tom的信息 3. 修改数据 格式: update 表名 set xxx=xxx,xxx=xxx where 条件; 举例: update person set age=8 where name='Jerry'; update person set name="张学友",age=50 where name="刘德华"; update person set age=15 where age<20; 4. 删除数据 格式: delete from 表名 where 条件; 举例: delete from person where name='Tom'; delete from person where age<20; delete from person; 约束* 概念:对表中的数据进⾏限定,保证数据的正确性、有效性和完整性。
Mysql笔记(附Mysql基础书pdf版)
Mysql笔记(附Mysql基础书pdf版)资料数据库篇SHOW DATABASES; //显⽰数据库系统中已经存在的数据库CREATE DATABASE 数据库名; //创建数据库DROP DATABASE 数据库名; //删除数据库表篇注:在使⽤操作表语句前,⾸先要使⽤USE语句选择数据库。
选择数据库语句的基本格式为“USE 数据库名”。
否则会报错,1046;CREATE TABLE 表名 ( 属性名数据类型 [完整性约束条件],属性名数据类型 [完整性约束条件],属性名数据类型);表名不能为SQL语句的关键字,⼀个表可以有多个属性。
定义时,字母⼤⼩写均可,各属性之间⽤逗号隔开,最后⼀个属性不需要加逗号。
主键主键有唯⼀值单字段主键属性名数据类型 primary key //创建主键,写在属性名数据类型后⾯;多字段主键primary key(属性名 1,属性名2,属性名n)两者的组合可以确定唯⼀的⼀条记录;外键外键不⼀定必须为⽗表的主键,但必须是唯⼀性索引,主键约束和唯⼀性约束都是唯⼀性索引;外键可以为空值;设置外键的基本语法规则如下:CONSTRAINT 外键别名 FOREIGN KEY(属性 1.1,属性1.2,属性1.n)REFERENCES 表名(属性2.1,属性2.2,属性2.n)其中,“外键别名”参数是为外键的代号;“属性1”参数列表是⼦表中设置的外键;“表名”参数是指⽗表的名称;“属性2”参数列表是⽗表的主键。
设置表的⾮空约束设置表的唯⼀性约束设置表的属性值⾃动增加查看表结构DESCRIBE 表名; // 查看表基本结构语句,可缩写为desc 表名SHOW CREATE TABLE 表名; //查看表详细结构语句(包含存储引擎、字符编码)删除表DROP TABLE 表名;//删除没有被关联的普通表删除⽗表需要先将外键删除,然后才能去删除⽗表。
字段篇//通过ALTER TABLE语句ALTER TABLE 旧表名 RENAME [TO] 新表名;//修改表名 TO参数是可选参数,是否在语句中出现不会影响语句的执⾏。
数据库笔记3(转载动力节点老杜)
数据库笔记3(转载动⼒节点⽼杜)MySQL day031、约束1.1、唯⼀性约束(unique)* 唯⼀约束修饰的字段具有唯⼀性,不能重复。
但可以为NULL。
* 案例:给某⼀列添加uniquedrop table if exists t_user;create table t_user(id int,username varchar(255) unique // 列级约束);insert into t_user values(1,'zhangsan');insert into t_user values(2,'zhangsan');ERROR 1062 (23000): Duplicate entry 'zhangsan' for key 'username'insert into t_user(id) values(2);insert into t_user(id) values(3);insert into t_user(id) values(4);* 案例:给两个列或者多个列添加uniquedrop table if exists t_user;create table t_user(id int,usercode varchar(255),username varchar(255),unique(usercode,username) // 多个字段联合起来添加1个约束unique 【表级约束】);insert into t_user values(1,'111','zs');insert into t_user values(2,'111','ls');insert into t_user values(3,'222','zs');select * from t_user;insert into t_user values(4,'111','zs');ERROR 1062 (23000): Duplicate entry '111-zs' for key 'usercode'drop table if exists t_user;create table t_user(id int,usercode varchar(255) unique,username varchar(255) unique);insert into t_user values(1,'111','zs');insert into t_user values(2,'111','ls');ERROR 1062 (23000): Duplicate entry '111' for key 'usercode'* 注意:not null约束只有列级约束。
数据库原理笔记
数据库原理笔记数据库概念数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的⼤量数据的集合。
1. 数据库系统的特点数据结构化数据的共享性⾼,冗余度低,易扩充数据独⽴性⾼数据由DBMS统⼀管理和控制1. 两⼤类数据模型概念模型也称信息模型,它是按⽤户的观点来对数据和信息建模,⽤于数据库设计。
逻辑模型和物理模型,逻辑模型主要包括⽹状模型、层次模型、关系模型、⾯向对象模型等,按计算机系统的观点对数据建模,⽤于DBMS实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表⽰⽅式和存取⽅法,在磁盘或磁带上的存储⽅式和存取⽅法。
1. 关系数据库关系数据库系统采⽤关系模型作为数据的组织⽅式,在⽤户观点下,关系模型中数据的逻辑结构是⼀张⼆维表,它由⾏和列组成。
关系的每⼀个分量必须是⼀个不可分的数据项, 不允许表中还有表。
1. 数据库系统的三级模式结构模式(Schema)外模式(External Schema)内模式(Internal Schema)1. 关系模式关系模式可以形式化地表⽰为:R(U,D,DOM,F)R 关系名U 组成该关系的属性名集合D 属性组U中属性所来⾃的域DOM 属性向域的映象集合F 属性间的数据依赖关系集合1. 实体完整性规则(Entity Integrity)若属性A是基本关系R的主属性,则属性A不能取空值;关系模型中以主码作为唯⼀性标识。
1. 参照完整性规则若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不⼀定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值1. 关系代数运算符关系数据库标准语⾔SQLSQL(Structured Query Language)结构化查询语⾔,是关系数据库的标准语⾔。
集数据定义语⾔(DDL),数据操纵语⾔(DML),数据控制语⾔(DCL)功能于⼀体。
Orical数据库笔记
Orical:select *列名需要用"":1)区分大小写2)别名中有空格3)别名中有特殊字符||:连接运算select '姓名是‘||enam||'薪水是:’||sal fromemp表--:表注释distinctdesc emp;查看表结构set heading off;//隐藏表头条件--where 字句<>不等于were条件:字符串和日期类型必须用单引号日期格式:日-x月-年select * from emp where hirdate>'01-1月-1982';//必须用单引号引起来--查询SELECT * FROM emp;SELECT empno "Emp_no",ename ENAME,sal,400+sal*12 AS "Annual Salary",job,comm+400 提成FROM emp;SELECT 12/NULL FROM dual;SELECT '姓名是'||ename||'薪水是'||sal||'提成是'||comm 雇员信息FROM emp;SELECT DISTINCT job FROM emp;--where子句SELECT * FROM emp WHERE sal>=3000;SELECT * FROM emp WHERE sal=3000;SELECT * FROM emp WHERE sal<>3000;SELECT * FROM emp WHERE hiredate>'01-JAN-1982';SELECT * FROM emp WHERE ename='SCOTT';ALTER SESSION SET NLS_LANGUAGE='AMERICAN';SELECT * FROM EMP WHERE sal BETWEEN 3000 AND 5000;SELECT * FROM emp WHERE sal>=3000 AND sal<=5000;SELECT * FROM emp WHERE deptno IN (20,30);--like %:任意多的字符_:任意一个字符SELECT * FROM emp WHERE ename LIKE '%A%';SELECT * FROM emp WHERE ename LIKE '_A%';SELECT * FROM emp WHERE ename LIKE '%\_%' ESCAPE '\';--ESCAPE 标识符来查找带特殊符号的字符号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库学习笔记2.2.2查看数据表1、查看所有表show tables;2、查看部分表:模糊匹配:Show tables like‘pattern’;%:表示匹配多个字符;_:表示匹配单个字符;1、查看表的创建语句;Show create table 表名;4.查看表结构:查看表中的字段信息Desc/describe/show columns(列)from 表名;2.2.3修改数据表2.2.3.1修改表本身表本身可以修改:表名和表选项;1、修改表名:Rename table 老表名to 新表名;2、修改表选项:A2.2.3.2修改字段(增、删、改、查)1、新增字段:Alter table 表名add[column] 字段名数据类型[列属性] [位置];位置:字段名可以存放表中任意位置First:第一个位置;After:在哪个字段之后:after 字段名;默认的是在最后一个字段之后。
2、修改字段:Alter table 表名modify 字段名数据类型【属性】【位置】;3、重命名字段Alter table 表名change旧字段新字段名数据类型【属性】【位置】;2、删除字段:Alter table 表名drop字段名;注意:如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆)。
2.2.4删除数据表Drop table 表名1,表名2,表名3···;可以一簇删除多张表。
2.3数据操作:2.3.1新增数据:两种方案:方案1、给全表字段插入数据,不需要指定字段列表;要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致,凡是非数值数据都需要使用引号(建议使用单引号)包裹。
Insert into 表名values(值列表)【,(值列表)】;--可以一次插入多条数据。
方案2、给部分字段插入数据,需要选定字段列表,字段列表出现的顺序与字段的顺序无关,但是值列表的顺序必须与选定的字段的顺序一致Insert into 表名(字段列表)values (值列表)【,(值列表)】;2.3.2查看数据:1、查看所有数据Select* from 表名;2、查看指定字段,指定条件的数据Select 字段列表from 表名【where条件】;2.3.3更新数据:Update表名set 字段= 值【where条件】;---建议都有where:要不是更新全部2.3.4删除数据:Delete from 表名【where条件】;3、中文数据问题中文数据问题本质是字符集问题。
4、数据类型(列类型)Sql中将数据类型分为三大类:数值类型,字符串类型和时间类型4.1、整数型(tinyint,int)常用Tinyint和Int。
SQL中的数据类型全部都是默认有符号,分正负;有的时候需要使用无符号的数据,需要给数据类型限定:int unsigned,----无符号从0开始。
显示宽度没有特别的含义,只是默认告诉用户可以显示的形式而已,实际上用户可以控制的,这种控制不会改变数据本身的大小。
显示宽度的意义:5、列属性列属性:真正约束字段的是数据类型,但是数据类型的约束很单一,需要有一些额外的约束,来更加保证数据的合法性。
列属性有很多:NULL/NOTNULL,default,Primary key,unique key,auto_increment,comment5.1、空属性两个值:NULL(默认的)和NOT NULL虽然默认为空,但实际开发中,尽可能保证所有数据都不为空,因为空数据没有意义,也无法参加运算。
5.2、列描述列描述:comment,描述,没有实际含义:是专门用来描述字段的,会根据表创建语句保存,用来给程序员(数据库管理员)来进行了解的。
5.3、默认值默认值:某一种数据会经常性的出现某一个具体的值,可以在一开始便指定好,在需要真实数据的时候,用户可以选择性的使用默认值。
6、字段属性6.1、主键:主键:primary key,主要的键,一张表只能有一个主键,用来唯一的约束该字段里的数据,不能重复。
6.1.1增加主键增加主键的三种方式:1、创建表时直接在字段之后跟primary key关键字(主键本身不允许为空)优点:直接;缺点:只能使用一个字段作为主键。
2、创建表的时候,在所有字段之后使用primary key(主键字段列表)来创建主键(如果有多个字段为主键,可以是复合主键)3、当表已经创建好之后,再次额外追加主键,可以通过修改表字段属性,也可以直接追加。
Alter table 表名add primary key(字段列表)前提:表中字段对应的数据本身是独立的(不重复)。
6.1.2主键约束主键对应的字段中数据不允许重复,一旦重复,数据操作失败。
6.1.3更新主键&删除主键没有办法更新主键,主键必须先删除,才能增加。
Alter table 表名drop primary key;6.1.4、主键分类6.2、自动增长自增长:当对应字段不给值或者给默认值或者给NULL时,自增长被系统触发,系统会从当前字段中已有的最大值进行+1操作,得到一个新的不同字段。
自增长通常与主键配合使用;自增长的特点:auto_increment6.2.1新增自增长1、任何一个字段做自增长,前提本身必须是一个索引(key一栏有值);2、字段必须是数字,而且是整型;3、一张表最多只能有一个自增长。
6.2.2自增长使用当对应字段不给值或者给默认值或者给NULL时,自增长被系统触发,系统会从当前字段中已有的最大值进行+1操作,得到一个新的不同字段。
如果自增长对应字段输入了值,那么自增长将失效,但是下一次还是能自动的自增长(从最大值+1)如何确定下一次自增长是什么?可以通过查看创建表语句6.2.3修改自增长自增长如果涉及到字段改变,必须先删除自增长后增加(因为一张表只能有一个自增长)。
修改当前自增长已经存在的值,修改只能比当前已有的自增长的最大值大,不能小,(小不生效)。
Alter table 表名auto_increment =?;6.2.4删除字增长自增长是一个属性,可以通过modify来进行修改(保证字段里没有auto_increment即可)Alter table 表名modify 字段类型。
6.3、唯一键一张表往往有许多字段需要具有唯一性,数据不能重复,但是一张表中只能有一个主键,唯一键(unique key)就可以解决多个字段需要唯一性约束的问题。
唯一键本质与主键差不多,唯一键默认的允许自动为空,而且可以对个为空(空字段不参与唯一性比较)。
6.3.1增加唯一键基本与主键差不多1、在创建表时,字段之后直接跟unique/unique key2、在所有字段之后增加unique key (字段列表);--复合唯一。
4、在创建表之后增加唯一键;6.3.2唯一键约束唯一键与主键本质相同,唯一的区别就是唯一键默认允许为空,而且是多空;如果唯一键也不允许为空,与主键的约束作用是一致的。
6.3.3更新唯一键&删除唯一键更新唯一键:先删除后新增(唯一键可以有多个,可以不删除)1、删除唯一键Alter table 表名drop index 索引名字;唯一键默认使用字段名作为索引名字。
6.4、索引几乎所有的索引都建立在字段之上索引:系统根据某种算法,将已有的数据(未来可能新增的数据)单独建立一个文件,文件能够实现快速的匹配数据,并且能快速的找到对应表中的记录。
索引的意义:1、提升查询数据的效率;2、约束数据的有效性(唯一性等);增加索引的前提条件:索引本身会产生索引文件(有时候可能比数据文件还大),会非常耗费磁盘空间,Mysql中提供多种索引:1、主键索引:primary key;2、唯一索引:unique key;3、全文索引:fulltext index;4、普通索引:index全文索引:针对文章内部的关键字进行索引,全文索引最大的一个问题在于如何确定关键字。
英文很容易:英文单词与单词之间有空格;中文很难:没有空格,而且中文可以各种随意组合(分词:sphinx)。
7、数据的高级操作数据操作:增删改查7.1新增数据基本语法:Insert into 表名【(字段列表)values (值列表)】;7.2查询数据基本语法:Select 字段列表/* from 表名【where 条件】完整语法:Select【select 选项】字段列表【字段别名】/* from 数据源【where 条件子句】【group by 子句】【having 子句】【order by 子句】【limit 子句】;1、s elect 选项:select对查出来的结果的处理方式。
All:默认的,保留所有结果;Discinct:去重,查出来的结果,将重复的给去除(所有字段都相同)。
2、字段别名:字段别名:当数据进行查询出来的时候,有时候名字并不一定就满足需求(多表查询的时候,会有同名字段)需要对字段名进行重命名:别名。
语法:字段名【as】别名;3、数据源数据源:数据的来源,关系型数据库的来源都是数据表,本质上只要保证数据表类似二维表,最终都可以作为数据源。
数据源分为多种:单表数据源,多表数据源,查询语句;1、单表数据源:select * from 表名;2、多表数据名:select * from 表名1,表名2,····;(笛卡尔积没什么卵用)3、子查询:数据来源是一条查询语句(查询语句的结果是二维表)Select * from (select 语句)as 表名;4、where子句where子句:用来判断数据,筛选数据。
Where子句返回结果,0或者1,0代表false,1代表true。
判断条件:条件查询1:要求找出学生id为1或者3或者5的学生;条件查询2:查询区间落在180,190身高之间的学生;Between本身是闭区间,between左边的值必须小于或者等于右边的值。
4、g roup by子句group by :分组的意思,根据某个字段进行分组(相同一组,不同的分到不同组)基本语法:Group by 字段名;分组的意义在于统计数据(按组统计,按分组字段进行数据统计)SQL提供一系列统计函数:Count();统计分组后的记录数,每一组有多少记录;Max();统计每组中最大值;Min();统计每组中最小值;Avg();统计平均值;Sum();统计和;Count()函数,里面可以使用两种参数,*代表统计记录,字段名代表统计对应的字段(NULL 不统计);分组会自动排序,根据分组字段自动排序,默认升序。
Group by 字段【asc|desc(降序)】;---对分组结果合并之后的整个结果进行排序。