Oracle公司的产品 产品免费 服务收费
微软出品的 Windows系统用的多 易用性好
开源 免费 网站应用广泛
增:插入数据 删:删除数据 改:更新数据 查:检索数据
域完整性:指对列的约束
约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束
实体完整性:指对行的约束
约束方法:唯一约束、主键约束(不允许重复)、标识列
引用完整性:指对表与表之间关系的约束
约束方法:外键约束
自定义完整性:其他特定的约束
约束方法:规则、存储过程、触发器
MySql SQL Server
数据查询语言DQL() 数据操作语言DML(manipulation) :select、update、insert、delete,用来操作数据库里面的数据 数据定义语言DDL(definition):create、alter、drop,主要用在定义或改变表(table)的结果,数据类型,表之间的链接和约束等初始化工作上,它们大多在建立表时使用 数据控制语言DCL(control) :用来设置或更改数据库用户或角色权限的语句,包括(grant、deny、revoke)
Structured Query Language:结构化查询语言
不等于:<> AND : 当且仅当两个布尔表达式都为true时,返回true OR : 其中一个为true,则为true NOT : 布尔表达式的值取反
语法:
insert [into] 表名 (列名) values(值列表) insert into student_table(Number,Name,Age) values('1','小燕子','19')备注:
1、[ ]代表其中的内容可写可不写。当插入表中 全部列 数据时,表名后可省略列名,值列表的列数和顺序与表定义中的列要一致 2、标识列不能插入数据,非空列必须有对应值,插入数据时注意检查约束的限制 3、SQL语句不区分大小写 4、插入的数据必定是一个完整行,数据受行完整性的约束限制,每个数据都需要与相应列匹配,受域完整性约束限制,可用default插入默认值 5、插入多行数据,可以用下面的方法
将现有表中的数据插入到另一张新表中,语法:
insert into 表名(列名) select 列名 from <源表名> insert into student_table(Number,Name,Age) select Number,Name,Age from student语法:
select 列名 :查询全部列:* 查询部分列:直接写列名,逗号隔开 from 表名 where 查询条件表达式 order by 排序的列名[ASC或DESC]:ASC升序,DESC降序 select * from student_table :查询student_table表的所有列 select Name,Grade from student_table:查询姓名和成绩两列 select Name,Grade from student_table where Address='陕西渭南':查询指定行信息 查询不是陕西渭南的所有女生信息 select Name,Grade,Sex,Address from student_table where Address<>'陕西渭南' and Sex=1特别用法
使用as为列起别名: select Code as 学生编号, Name as 学生姓名, Address as 学生地址 from student_table 使用运算符:把两列合并到一列 select firstName +''+ lastName as 姓名 from student_table 使用等号:把两列合并到一列 select 姓名 = firstName +'.'+ lastName 查询Email列的空值 select Name from student_table where Email is null限制查询行 SQL Server
select top 5 * from student_table :限制前五行 select top 20 percent * from student_table :限制前20%MySQL
select * from student_table limit 0,5 :限制从第一行开始,显示五行Oracle
select * from student_table where rownum<5 :使用rownum为虚列查询排序
select * from student_table order by Grade :成绩默认升序排序 select * from student_table order by Grade desc :成绩降序排序 1、查询考试成绩乘以0.9再加5分计算后的综合成绩大于60分的记录,并进行升序排序 select Number as 学生编号,(Grade*0.9+5) as 综合成绩 from student_table where (Grade*0.9+5) > 60 order by Grade1、寻找一个指定的字符串在另一个字符串中的起始位置
select charIndex('adc','hjsadco',1) 返回:42、获得字符串长度
select len('SQL Server课程') 返回:123、把传递给它的字符串转换为大写
select upper('sql server课程') 返回:SQL SERVER课程4、清除字符左边的空格
select Ltrim(' 张无忌 ') 返回:张无忌 右边空格保留5、清除字符右边的空格
select Rtrim(' 张无忌 ') 返回: 张无忌6、从字符串右边返回指定数目的字符
select Right('这就是爱糊里又糊涂',3) 返回:又糊涂7、替换一个字符串中的字符
select replace('这就是爱糊里又糊涂','爱','恨') 返回:这就是恨糊里又糊涂8、在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串 从第2个开始,删除3个
select stuff('ABCDEFG',2,3,'这就是爱') 返回:A这就是爱EFG1、获得当前的系统日期
select getDate() 返回:今天的日期2、将指定的数值添加到指定的日期,返回新的日期
select dateAdd(mm,4,'02/01/2009') 返回:以当前的日期格式返回 2009-06-01 00:00:00.0003、两个日期之间的指定指定日期部分的间隔
select datediff(mm,'01/01/2009','07/01/2009') 返回:64、日期中指定日期部分的字符串形式
select datename(dw,'02/01/2000') 返回:星期二 dw:Weekday5、日期中指定日期部分的整数形式
select datepart(day,'01/12/2000') 返回:121、返回从0到1之间的随机float值
select rand() 返回:0.9732552743364492、取数值表达式的绝对值
select abs(-45.2) 返回:45.23、取大于或等于指定数值/表达式的最小整数
select ceiling(43.5) 返回:444、取小于或等于指定数值/表达式的最小整数
select floor(43.5) 返回:435、取数值表达式的幂值
select power(3,2) 返回:9(3的2次方)6、将数值表达式四舍五入为指定精度
select round(43.5498,2) 返回:43.55007、对于正数返回+1,对于负数返回-1,对于0返回0
select sign(-43) 返回:-18、取浮点表达式的平方根
select sqrt(16.0) 返回:41、转变数据类型
select convert(varchar(5),12345) 返回:字符串123452、返回当前用户的名字
select current_user 返回:你登录的用户名dbo3、返回指定表达式的字节数
select datalength('还珠格格') 返回:84、返回当前用户所登录的计算机名字
select host_name() 返回:你所登录的计算机的名字DESKTOP-G5OMCQM5、返回当前所登录的用户名称
select system_user 返回:DESKTOP-G5OMCQM\lisijing6、从指定的用户ID返回用户名
select user_name(1) 返回:从任意数据库中返回“dbo”例:使用CREATE DATABASE命令创建一个名为“mrkj”的数据库。其中,主数据文件名称:“mrkj.mdf”,初始大小是10MB,最大存储空间为100MB,增长大小是5MB。日志文件名称:“mrkj.ldf”,初始大小是8MB,最大存储空间为50MB,增长大小是8MB。
create database mrkj on **主数据文件 (name='mrdat', filename='G:\sql\mrkj.mdf', size=10, maxsize=100, filegrowth=5) ** 文件名 文件路径 文件大小 最大值 标识增量 log on **事务日志文件 (name='mingrilog', filename='G:\sql\mrkj.ldf', size=8mb, maxsize=50mb, filegrowth=8mb)删除数据库必须满足的条件: 1、取消日志传送操作 2、删除备份 3、删除数据库快照 如果删除正在使用的数据库,系统会出现错误
drop database n1,n2...//将“mr”更名为“mrsoft”
exec sp_renamedb 'mr','mrsoft'例:创建数据表mingri,ID字段为int类型并且不允许为空,Name字段长度为50的varchar类型;Age为int类型
use db_2012 **打开数据库 create table [dbo].[mingri]( [ID] [int] not null, [Name] [varchar](60), [Age] [int] )向数据表中添加Sex字段/列
use db_2012 **打开数据库 alter table mingri add Sex [char](2)删除mingri数据表中的Sex字段/列
use db_2012 alter table mingri drop column Sex例:删除db_2012数据库中的数据表mingri
use db_2012 drop table mingriinsert语句可以向表中添加新记录或一个结果集 例:向数据表Employee添加数据记录
use db_2012 insert into Employee (ID,Nmae,Sex,Age)values(12,'雨涵','女',24,null)如果要添加表中所有字段的数据,可以省略列名
use db_2012 insert into Employee values(14,'雨新','女',22,null)例1:将Employee表中所有员工的年龄加2岁
use db_2012 update Employee set Age = Age + 2例2:将Employee表中“小燕子”的性别改为女
use db_2012 update Employee set Sex = '女' where Name = '小燕子'例3:删除Employee表中ID=17的员工的信息 delete语句用于删除表中的行
use db_2012 delete from Employee where ID=17