传智播客.net培训422sql添加约束聚合函数模糊查询等学习

在学习了数据库理论以及数据库创建后,今天主要学习用sql语句为表添加约束,
聚合函数,以及select的一些查询练习。
约束中主要有主键约束,唯一约束,非空约束,外键,以及默认值和一些字段范围的约束
在今天的练习中,对这些主外键进行正确规范的命名是很重要的,否则后期要管理编辑的时候会很麻烦。
比如主键就用fk开始命名。
在进行模糊查询时要用到通配符感觉和正则表达式有一些像。哈哈。

数据库表结构:
--部门表
CREATE TABLE DEPARTMENT
(
DEPT_ID INT IDENTITY(1,1),
DEPT_NAME VARCHAR(50)
)
GO
--员工表
CREATE TABLE EMPLOYEE
(
EMP_ID INT IDENTITY(1,1),--员工编号
EMP_NO VARCHAR(50),--身份证号码
EMP_NAME VARCHAR(50),--姓名
EMP_GENDER CHAR(2),--性别
EMP_JOINDATE DATETIME,--入职日期
EMP_AGE INT,--年龄
EMP_ADDRESS VARCHAR(500),--地址
EMP_PHONE VARCHAR(100),--电话
EMP_DEPTID INT,--部门Id
EMP_EMAIL VARCHAR(50)
)
GO

---------------------------------
删除表中的一列
alter table employee drop column emp_adress
增加一列
alter table employee add empdrr varchar(1000)
修改emp_email数据类型
alter table employeee alter colunm emp_email varchar(200)
为empid增加一个主键约束
alter table employee add constraint pk_employee_emp_id primary key(emp_id)
非空约束,为empname增加一个非空约束,修改列为not null,增加一个非空约束其实就是修改列
alter table employee alter column emp_name varchar(50) not null
为empname增加一个唯一约束
alter table employee add constraint df_employee_emp_gender default('男') for emp_gender
为年龄增加一个检查约束:年龄必须在0-120岁之间,含0岁与120岁
alter table employee add constraint ck_employee_emp_age check(emp_age>=0 and emp_age<=120)
增加外键约束,表employee中有一列empdeptid引用tbldepartment表中的deptid
alter table employee add constraint pk_department_dept_id primary key(dept_id)
alter table employee add constraint fk_employee_department foreign key(emp_deptid) references department(dept_id) on delete cascade
删除某个名字的约束
alter table employee drop constraint fk_employee_department
用一条语句为表增加多个约束
alter table employee add
constraint ......,
constraint...

获取当前系统时间
select getdate()
select sysdatetime()

只查询表中的前10条数据
select top 10 * from mystudent
也可以按百分数来查询
select top 20 percent * from mystudent

distinct表示对查询出的结果集,进行去除重复
只有当出现出的结果集中存在完全重复的多行,这时才会把所有的重复行只保留一行,其他都去掉。

模糊查询:
数据中用%表示任意多个字符
下划线_表示一个字符
如果想使用普通%符号,就在加[]
[^]表示非,同regex

查询所有数学成绩为null的人的信息
select * from mystudent where fmath is null
order不仅可以按照某列来排序,也可以按照表达式排序
select * ,(fmath+fenglish) as 总分,平均分=(FMath+FEnglish)/2
from MyStudent order by (FMath+FEnglish)/2 desc
由于order by是在最后才执行,所以在执行order by的时候,其他语句已经执行了,列也已经起了别名了,所以可以在order by中欧冠直接使用别名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值