创建数据库
语法:create database [数据库名]
例:create database School;
创建表
语法:create table [表名]
(
列名1 数据类型,
列名2 数据类型,
……
例:create table Students (
name varchar(20),
sex char(2),
ID char(11),
class varchar(20)
);
增:
1.使用insert将具体指直接插入表中:
语法:insert [into]<表名> [列名] values <列值>
例:insert into Students (name,ID,class) values ('陈雨豪','16408070619','软工1603');
2.使用insert将select语句的查询结果添加到已有的表中:
语法:insert into <表名> <列名> select <列名> from <表名>
例:insert into Score (姓名,学号,班级)
select name,ID,class
from Strdents;
注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致
删:
使用delete删除表中某些元组
语法:delete from <表名> [where <删除条件>]
例:delete from Students
where name='陈雨豪'(删除表Students中name列值为‘陈雨豪’的行)
注意:delete删除的是元组,所以在delete后面不能出现字段名
删除表的所有行,但表的结构、列、约束、索引等不会被删除,即表依然存在
改:
使用update更新修改数据
语法:update <表名> set <列名=更新值> [where <更新条件>]
例:update Students set class='软工1801' where name = '陈雨豪';
查:
单表查询:
语法:select <列名> from <表名> [where <查询条件表达试>] [order by<排序的列名>[asc或desc]]
1).查询表中所有数据行和列
例:select *
from Students
说明:查询Students表中所有行和列
2).条件查询
例:select name
from Students
where class = '软工1603';
说明:查询表Students中班级为‘软工1603’的所有行,并显示姓名
注意:多个条件之间应该使用适当的谓词进行连接
3).在查询中使用as更改列名
例:select name as 姓名
from Students
where class='软工1603';
说明:查询Students表中班级为‘软工1603’的所有行,显示name列,并将name列改名为姓名显示
4).查询空行
例:select name
from Students
where class is null;
说明:查询表Students 中class 为空的所有行,并显示name列(SQL语句中用is null或者is not null来判断是否为空行)
5)查询返回限制行数
例:select top 6 name
from Students;
说明:查询表Students,显示列name的前6行
6).查询排序
例:select name
from Score
where grade>=60
order by desc;
说明:查询表中成绩大于等于60的所有行,并按降序显示name列(desc为降序,asc为升序)
7).使用like进行字符匹配
例:select *
from Students
where name like '陈%';
说明:查询显示表Students 中,name字段第一个字为陈的记录
注意:通配符%代表任意长度,_代表单个字符
8).使用between在某个范围内进行查询
例:select *
from Students
where age between 18 and 20;
说明:查询显示表Students 中年龄在18到20之间的记录
9).使用group by进行分组查询
例:select name
from Students
group by class
说明:查询Students表中name字段的所有记录,并按照class字段进行分组
10).使用having子句进行分组筛选
例:select name
from Students
group by class
having count(*)>30
说明:查询Students表中班级人数大于30的班级的学生的姓名