数据库+select+查询的内容+from+哪张表格+where+限制条件
select * from Users
select * from Users where name="huahua"
Distinct [dɪ'stɪŋ(k)t] 删除重复行
select distinct name from Users
获取前n条信息
select [top n] name from Users
运用运算符
select * from Users where name="huahua"
运用逻辑运算符
select * from Users where id<90 and id>100
select * from Users where id=100 or id=110
select * from Users where not id
使用IN 条件
select * from Users where id in("001","002")
between 条件包含边界值
select * from Users where id between 80 and 90
like进行模糊查询
% 通配符;_通配符;
select * from Userswhere id like "[01]%" 选取以0,1开头的信息。若为“[0_3]%”查询以0到3开头的信息
is not null 查询不为空的信息
select * from Users where name IS NOT NULL
【聚合函数:专用的数值统计函数】
group by 子句(保证子句的列是可计算的,并且出现在select中)
HAVING 子句用于限定分组统计值
select CouNo ,AVG(Score) AS '平均成绩' from score group by CouNo
就是把CouNo对象当中相同的进行分组
select title,id,SUM(score) AS'sun',t_type from news WHERE score=89 GROUP BY score
select AVG(score) from news where score > 80 group by t_type having AVG(score)>20
COUNT 求组中项数,返回整数
SUM 求和,返回表达式所以值得和
AVG 求平均 MAX求最大 MIN求最小
查询排序问题 order by ,desc 为逆序,ASC为正序
select * from news ORDER BY t_type desc ,score ASC
多表查询
基本连接(笛卡尔乘积)
select * from news,newstype
内连接(当有n个表的时候,则有n-1个选择条件)
select * from news,newstype where news.t_type=newstype.type;
左外连接
select * FROM news left join newstype on news.t_type= newstype.type
右外连接
SELECT * FROM news RIGHT JOIN newstype ON news.t_type = newstype.type
联合查询
子查询
INSERT INTO news(title,content,t_type) VALUES ('鸡腿','鸡腿好不好吃','89')
insert select语句(插入一块数据)查询其他表的数据
注意事项:
1.必须检验被插入新建的表是否在数据库
2.保证接受的新值与已有表中的数据结构的数据类型一致
3.明确被忽略的列是否存在默认值或空值,是否允许为空值
insert into news select * from newstype
select into 插入临时的数据(临时表)
select * into classtemp from temp
修改表中的数据行
UPDATE news SET score=score+100 WHERE t_type=78
利用查询语句更新值
DELETE FROM news where id=7
drop database + 数据库名称;//删除数据库
create database news
create table news(duixia)
CREATE VIEW v1 AS SELECT * from news WHERE id=8
从视图里面修改数据库内容
UPDATE v2 SET t_type=188 WHERE id=2
修改视图
ALTER VIEW v1 AS SELECT * FROM news
删除视图
DROP VIEW v2
唯一索引
CREATE UNIQUE INDEX index1 ON news(id)
主键索引
数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。
聚集索引
在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。
-- 主键:
alter table 表名
add constraint PK_字段名--"PK"为主键的缩写,字段名为要在其上创建主键的字段名,'PK_字段名'就为约束名
primary key (字段名) --字段名同上
--唯一约束:
alter table 表名
add constraint UQ_字段名
unique (字段名)
--外键约束:
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。
alter table 表名
add constraint FK_字段名--"FK"为外键的缩写
foreign key (字段名) references 关联的表名(关联的字段名) --注意'关联的表名'和'关联的字段
alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)
alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)
alter table 成绩表 add constraint FK_StudentNo foreign key (StudentNo) references Student (StudentNo)
ON UPDATE CASCADE ON DELETE CASCADE
级联更新,级联删除,这样在删除主表Student时,成绩表中该学生的所有成绩都会删除。
--检查约束:
alter table 表名
add constraint CK_字段名
check (条件表达式) --条件表达式中的条件用关系运算符连接
--默认值约束:
alter table 表名
add constraint DF_字段名
default '默认值' for 字段名--其中的'默认值'为你想要默认的值,注意'for'
--删除创建的约束:
alter table 表名
drop constraint 约束名--约束名为你前面创建的如:PK_字段这样的约束名
--注意:如果约束是在创建表的时候创建的,则不能用命令删除
--只能在'企业管理器'里面删除