数据库

三种数据库

Oracle

Oracle公司的产品
产品免费 服务收费

SQL Server

微软出品的 Windows系统用的多
易用性好

MySQL

开源 免费 网站应用广泛

数据库操作

增:插入数据
删:删除数据
改:更新数据
查:检索数据

数据完整性约束

完整性:指对的约束

约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束

实体完整性:指对的约束

约束方法:唯一约束、主键约束(不允许重复)、标识列

引用完整性:指对表与表之间关系的约束

约束方法:外键约束

自定义完整性:其他特定的约束

约束方法:规则、存储过程、触发器

数据类型

MySql
在这里插入图片描述
SQL Server
在这里插入图片描述

SQL语言四大类

数据查询语言DQL()
数据操作语言DML(manipulation)select、update、insert、delete,用来操作数据库里面的数据
数据定义语言DDL(definition)create、alter、drop,主要用在定义或改变表(table)的结果,数据类型,表之间的链接和约束等初始化工作上,它们大多在建立表时使用
数据控制语言DCL(control) :用来设置或更改数据库用户或角色权限的语句,包括(grant、deny、revoke

SQL语句

Structured Query Language:结构化查询语言

SQL语句的组成

在这里插入图片描述

SQL语句的运算符

不等于:<>
AND : 当且仅当两个布尔表达式都为true时,返回true
OR : 其中一个为true,则为true
NOT : 布尔表达式的值取反

SQL语句之插入语句

语法:

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

SQL语句之查询语句(DQL)

语法:

select 列名 :查询全部列:* 查询部分列:直接写列名,逗号隔开
from 表名
where 查询条件表达式
order by 排序的列名[ASCDESC]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 Grade 

SQL Server常用函数

字符串函数

1、寻找一个指定的字符串在另一个字符串中的起始位置

select charIndex('adc','hjsadco',1) 返回:4

2、获得字符串长度

select len('SQL Server课程') 返回:12 

3、把传递给它的字符串转换为大写

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这就是爱EFG

日期函数

1、获得当前的系统日期

select getDate()  返回:今天的日期

2、将指定的数值添加到指定的日期,返回新的日期

select dateAdd(mm,4,'02/01/2009') 返回:以当前的日期格式返回 2009-06-01 00:00:00.000

3、两个日期之间的指定指定日期部分的间隔

select datediff(mm,'01/01/2009','07/01/2009') 返回:6

4、日期中指定日期部分的字符串形式

select datename(dw,'02/01/2000') 返回:星期二
dw:Weekday

5、日期中指定日期部分的整数形式

select datepart(day,'01/12/2000') 返回:12

数学函数

1、返回从0到1之间的随机float值

select rand() 返回:0.973255274336449

2、取数值表达式的绝对值

select abs(-45.2) 返回:45.2

3、取大于或等于指定数值/表达式的最小整数

select ceiling(43.5)  返回:44

4、取小于或等于指定数值/表达式的最小整数

select floor(43.5)  返回:43

5、取数值表达式的幂值

select power(3,2)  返回:9(32次方)

6、将数值表达式四舍五入为指定精度

select round(43.5498,2)  返回:43.5500

7、对于正数返回+1,对于负数返回-1,对于0返回0

select sign(-43)  返回:-1

8、取浮点表达式的平方根

select sqrt(16.0) 返回:4

系统函数

1、转变数据类型

select convert(varchar(5),12345) 返回:字符串12345

2、返回当前用户的名字

select current_user 返回:你登录的用户名dbo

3、返回指定表达式的字节数

select datalength('还珠格格') 返回:8

4、返回当前用户所登录的计算机名字

select host_name() 返回:你所登录的计算机的名字DESKTOP-G5OMCQM

5、返回当前所登录的用户名称

select system_user 返回:DESKTOP-G5OMCQM\lisijing

6、从指定的用户ID返回用户名

select user_name(1) 返回:从任意数据库中返回“dbo”

数据库的创建与管理(DDL)

创建一个数据库

例:使用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)

查看数据库列表

show databases;

使用数据库

use 数据库名

删除数据库

删除数据库必须满足的条件:
1、取消日志传送操作
2、删除备份
3、删除数据库快照
如果删除正在使用的数据库,系统会出现错误

drop database n1,n2...

修改数据库

alter database mrkj
指定要添加的数据库文件、事务日志文件
alter database mingri
add file
(name=mrkj, filename='G:\mrkj.ndf', size=10MB, maxsize=100MB, filegrowth=2MB)
add log file
数据库重命名

//将“mr”更名为“mrsoft”

exec sp_renamedb 'mr','mrsoft'
其他命令
to filegroup **指定要增加文件到哪个文件组
remove file **从数据库系统表中删除指定的文件,并且删除其物理文件。文件只有为空时才能被删除
remove filegroup **从数据库中删除指定的文件组
add filegroup **指定要增加的文件组
modify file **修改指定文件的文件名、容量大小、最大容量、文件
modify file group<filegroup_name><filegroup_property> **修改文件组属性
set **设置数据库属性

数据表基础

基本数据类型

整数数据类型常用的一种数据类型,可以存储整数或小数 bit、int、smallint、tinyint
货币数据类型用于存储货币值,使用前在数据前加上货币符号 money、smallmoney
浮点数据类型用于存储十进制小数 real、float、decimal、numeric
日期/时间数据类型用于存储日期类型和时间类型的组合数据 datetime、smalldatetime、date、datetime(2)、datetimestampoffset
字符数据类型用于存储各种字母、数字符号和特殊符号 char、nchar(n)、varchar、nvarchar(n)
二进制数据类型存储二进制数据 binary、varbinary
图像和文本数据类型用于存储大量的字符及二进制数据(Binary Data)

创建数据表

例:创建数据表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

修改字段类型

alter table 表名 
modify 字段名 char(10)

修改字段

alter table 表名 change 旧字段名 新字段名 bigint;
bigint是新字段的数据类型

删除数据表结构

drop table 表名;
drop table[database_name.[schema_name].| schema_name] 
	table_name [,...n][;]
**database_name:数据库名称
**schema_name:所属架构的名称
**table_name:要删除的表的名称

例:删除db_2012数据库中的数据表mingri

use db_2012
drop table mingri

往数据表里添加数据

insert语句可以向表中添加新记录或一个结果集
例:向数据表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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值