第二天
复习:
1.创建数据库、表
2.插入数据
3.T-sql来 创建数据库、表、插入、删除、修改、查询(基本查询)表中的数据
创建数据库:
Create database db;
Create database db
On primary
(
Name=’db’,
Filename=’c:\db.mdf’,
Size=3mb,
Maxsize=100mb,
Filegrowth=10%
)
Create table biaoming --alter table biaoming () 修改表
(
Lieming int identity (1,1)primary key,
Lie2 varchar (50)not null
)
Drop table biaoming --删除表
[ ]可有可无的内容;
Insert into biaoming(列1,列2,列3)values(‘a’,’b’,’c’)
Select ‘a’,’b’,’c’ union --想要插入重复数据,可在后面加上all
Select *into newtable from oldTable where age>5 --拷贝表内容,但是主键是不能被跟着来的,一起的只有它的数据
Select*into newtable from oldTable where 1=2 --只拷贝表结构,因为没有一条数据能够满足1=2所以没有数据可以拷贝;
---更新
Update biaoming set lieming =值1,lei2=值,lei2=值,where lie2>10and. . ..and...or
--删除
Delete from biao where age>20
----一次删除表中的所有数据
Delete from biao
Truncate table biaoming
Select*from biaoming where. . .
Select name, age from biao where. . .
273734825
手动删除一列
Alter table employee drop column emp_address
手动增加一列
Alter table employee alter column emp_email varchar(200)
约束
1. 主键约束→primary key必须是int类型,右键单击选择“设置主键”
2. 唯一约束→unique对着列右键单击,选择“索引/键”,点击“添加”,在“类型”中选择唯一键,在“列”中选择要设置的列
3. 检查约束→check对着列右击,选择“CHECK约束”,点击“添加”,在“表达式”中输入要设置的条件,“名称”可以选择改与不改
4. 默认约束→default单击要设置的列,在列属性中的“默认值或绑定”中输入默认的值
5. 外键约束→foreign key对着列右击,选择“关系”,点击“添加”,打开“表和列规范”的右边的按钮,在“表和列”的主键表的下拉菜单中,选择主键表,在下面的列中选择主键表中的列,在外键表的下面选择选择连接主键表的列,单击“确定”
6. 非空→not null
7. 外键约束需要在外键表中建立
为empId增加一个主键约束
增加一个非空约束恰是就是修改列
Alter table employee alter column emp_name varchar(50)not null
为empname 增加一个唯一约束
Alter table employee add constraint UQ_employee_emp_name unique (emp_name)
为性别增加一个默认约束;默认为“男”
Alter table employee add constraint DF_Employee_emp_gender default(‘男’)for emp_gender
想要增加外键约束,必须是主键,如果不是主键,则需要增加一个主键
给department表增加一个主键
给列起别名: as可以省略 ,也可以是 :姓名=FName,
函数是粉颜色的
这个是更加准确的时间
Print getdate()以文本的形式输出
查找表中的前10条数据,更加精准
Select top 10*from MyStudent
Select top 20 percent *from mystudent 表示查询前百分之20条的记录;
Select top 5*from mystudent order by FAge ASC 升序排列后,显示 desc是降序
默认的是升序的select*from mystudent order by FAge 最好加上排序方式
Select distinct * from 表名 distinct 表示对查询出的结果集,进行去除重复,只有完全重复的行,才会去除。Select distinct 姓名,性别,年龄 from 表名 可以排除一些条件,
查询年龄最大的年龄 最小用min ()中的是要查询的列名
查询所有同学的年龄的总和 平均值是avg 总数据条数count
当在查询的列中,使用了聚合函数的时候,那么就不能再列表中再出现其他列名了,除非该列也包含在聚合函数中,就算数据只有一条也不行,如:
查询没有及格的男学生的
Select*from mystudent where (math<60 or english<60)and gender=’男’
区间查找是用between
模糊查询
要查询的记录是几位后面就加上几个下划线;
如果用[ ]括起来的下划线就代表着,它就是下划线;不再是通配符;百分号是一样的;数量随便,可以在[ ]中,可以用正则表达式,只有一部分;
查找所有的数学成绩为null的数据
查找所有的数学成不为null的数据,在其中加上not
数据排序(order by永远放在语句的最后)
按照英语和数学的总成绩进行排序
可以直接使用别名,
先按英语排序,如果英语成绩一样,则再按数学排序
中间用逗号 隔开;
分组查询
查询出每个销售员的 总的销售数量
查找出每个班的班级id,以及这个班的学生的总人数:
查找每个班的所有的男生人数
1.where ,在分组前筛选数据
2.Having,在分组后筛选数据
查找出班级中的人数大于250的班级
使用了聚合列时,就不能使用普通列了,
不能有fname as 姓名这个列,fclassid是分组的依据,所以不会错
执行顺序:
1.from 表
2.Where 条件
3.Group by 列
4.Having 筛选条件
5.Select 选择列, distinct ,top
6.Order by 列
类型转换
字符串直接与整数相加出错(类型不匹配)