SQL数据库(上)

大纲

1、安装数据库(2005/2008/2012/2014)

2、启动数据库服务
3、进入软件(sa)
4、认识几个数据库
master 系统数据库
model 模型数据库
tempdb 临时数据库
msdb 警报日志信息

5、创建数据库(.mdf数据文件 .ldf日志文件)包括了解一些属性

create database stu0220

6、删除数据库 drop database stu0220

7、附加数据库 脱机 联机

数据类型:

int
float
varchar(长度)
char(长度)

sname varchar(10)
	大锤:实际占用四个
sname char(10)
	狗蛋:实际占用10个

char:每一个字符都对应一个编号
  1. 数据库当中需要大家记住的几个数据类型:

varchar 字符串
text 文本
int 整数
float 小数
datetime 日期时间
bit 布尔类型

  1. 约束

主键约束 primary key(pk)一个表格里面只能有一个主键
主键只能有一个,可不可以把两个列设置为主键

标识规范
非空约束
sex约束
默认值约束
年龄约束

增删改查 功能

1.添加数据
格式1: 默认给所有字段添加数据
insert into 表名 values(字段1值,字段2值…);
eg. insert into Student values(‘啊蛋’, ‘男’, 18, ‘嘻嘻’, ‘长沙’, ‘嘿嘿嘿’);

格式2: 给指定字段添加数据
insert into 表名(字段1, 字段2…) values(字段1值, 字段2值…);

2.删除数据
delete 表名[where 条件];

–删除表 drop table 表名;

–添加表
create table 表名(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型
)

3.修改数据
update 表名 set 字段名 = 值, 字段名=值…where 条件
eg. update Student set ssex = ‘男’ where sname = ‘啊蛋’;
–把所有人的年龄都加1岁
update Student set sage = sage +1;
–把学号为1 的学生姓名 改为张三
update Student set sname = ‘张三’ where sid = 1;

4.查询数据
–查询所有: *
select * from 表名
eg. select * from Student
–查询指定字段的值
select 字段1, 字段2… from 表名
eg. select sid, sname from Student;

[1] 条件查询:where
–查询所有的男生信息
select * from Student where ssex = ‘男’;
[2] and: 且 (类似 Java中的 &&)
–查询年龄在16岁到18岁之间的学生信息
格式1:select * from Student where sage>=16 and sage<=18;
between…and…
格式2:select * from Student where sage between 16 and 18;
[3] like:模糊查询
格式:select * from 表名 where 字段 like 条件表达式;
占位符:(1)_ : 表示一个字符位置
(2)%:表示任意个字符位置
–找到 刘姓 的学生
select * from Student where sname like ‘刘%’;
–找到 蛋字结尾 的 两个姓名 的学生信息
select * from Student where sname like ‘蛋’;
–单纯不显示 两个字的
select * from Student where sname like '
’ or sname like ‘__%’;

排序:order by 默认为 升序
–格式:select * from 表名 order by [升序/降序];
(1)asc:升序
select * from Student order by sid;
(2)desc:降序
selelct * from Student order by sid desc;

起别名
格式1:select sid ‘学号’,sname ‘姓名’, ssex ‘性别’ from Student;
格式2:select sid as ‘学号’, snmae as ‘姓名’, ssex as ‘性别’ from Student;
格式3:select ‘学号’=sid, ‘姓名’=sname, ‘性别’=ssex from Student;

求字符串长度:
select 字段名, len(字段名) 别名 from 表名;
eg. select sname, len(sname) ‘长度’ from Student;

六大约束

主键
默认值
检查
非空
唯一unique

外键
增删改查sql语句
模糊查询
is null
is not null
排序 order by desc asc

自带函数

脚本不区分大小写,参数值看情况区分
use 库 --切库

1.字符串函数
①CHARINDEX 找位置,如果没找到结果为0
[1]找第1次出现的位置
select charindex(‘a’,‘AMy Sagalser Course’) 执行为 1
[2)从指定位置开始往后找第一次出现的位置
select charindex(‘a’,aMySagalser Course’,5) 执行为5
②LEN 返回字符串的长度
select len( ‘万乐’) 执行为:2
③LOWER 转小写
select lower (‘SQL’) 执行为:sql
④UPPER 转大写
⑤LTRIM 清除第一个字符左边所有的空格
select ltrim(‘左边’) 执行为:左边
⑥RTRIM 清除最后一个字符右边所有的空格
⑦RIGHT()从右边获取指定个字符
select right(‘何永琪’,1) 执行为 琪
⑧LEFTC ()从左边获取指定个字符
⑨REPLACE 替换
select replace(‘莫乐可切·杨可’,‘可’、‘兰’) 执行为 莫乐可兰·杨兰

2.日期函数 西式时间 05/01/1999 1999年5月1日
①GETDATE 获取当前系统时间
select getdate()
②DATEADD 添加时间
–给时间1999-12-31 添加10天 2000-1-10
select dateadd(dd,10,‘1999-12-31’)
一-给当前系统时间减5个月
select dateadd(mm,-5,getdatel))
③DATEDIFF 相差日期
select datediff(yy,‘1999-12-31’,getdate())
一-字符串日期:不能自动转换 报错 11月没有31日
select datediffcmm,‘1990-11-31’,‘1999-12-31’)
④DATENAME 获取指定日期(年、月、日)
select datename(mi,‘1999-1-1 10:12:32’) 执行为 12
⑤DATEPART 获取日期的整数形式
select datepart(mm,getdatec))
⑥YEAR/MONTH/DAY 获取当前系统时间的年、月、日

年份 year 季度 qq 月份 mm
每年的某一日 dy 日期 dd 星期 wk、ww
工作日 dw 小时hh 分钟 mi

3.数学函数
①ABS 绝对值
select ABS(-43) 执行为 43
②CEILING 返回大于或等于所给数字表达式的最小整数
select ceiling(43.1) 执行为44
③FLOOR取小于或等于指定表达式的最大整数
select floor(43.9) 执行为43
④ROUND四舍五入为指定精度
select round(43.543,1) 执行为43.5
⑤ Sign 正数返回+1,负数返回-1,对于0返0
⑥sart 取平方根
select sart(9) 执行为3

4.系统函数 (CAST只有1个参数)
①CONVERT /CAST 用来转换数据类型
select convert()
select cast ()
②DATALEGTH 返回指定表达式的字节数
select datalength(‘万乐’) 执行为4
select len(‘万乐’) 执行为2
·字符串数字会自动转换为数值进行运算
① select 10+10 ②select ‘10’+10
执行都为20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youdabi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值