sql常用语句(简洁明了)

1.创建数据表

USE db_2023                     --打开数据库
CREATE TABLE [dbo].[student](   --创建表 student
    [ID][int] NOT NULL,         --字段 ID,int型,不能为空
    [Name][varchar](50),        --Name字段,varchar类型
    [Age][int]                  --Age字段 int类型
)

2.修改表结构

USE db_2023
ALTER TABLE student ADD Sex char(2)  --向student表中添加Sex字段

ALTER TABLE student DROP COLUMN Sex  --删除student表中的Sex字段

3.删除表

DROP TABLE [database_name.[schema_name].|schema_name.] table_name[,...n][;]
--database_name:要在其中删除表的数据库的名称
--schema_name:表所属架构的名称
--table_name:要删除的表的名称

例:
USE db_2023 
DROP TABLE student

4.向表中添加数据

INSERT INTO student VALUES(1,'张伟',18,'男')

5.修改表中的数据

UPDATE student SET Age='28' WHERE Name='张伟'

6.删除表中数据

DELETE FROM student WHERE ID=17

DELETE FROM student        --删除表中的所以记录

7.查询表中数据

(1)常见查询
select * from student  --查询表中所有内容
select * from student where name='张伟'         --查询名字叫张伟的所有个人信息
select age,sex from student where name='张伟'   --查询名字叫张伟的年龄和性别信息

查询结果列名取别名方法:
SELECT ID 学号,name 姓名,age 年龄 FROM student
as 取别名:
select atrsqn as liusuihao from student         --把列名atrsqn取别名为liusuihao
(2)模糊查询  LIKE(% 、_ 、 [])
SELECT * FROM student WHERE name LIKE '王%'                --查找姓名字符串中第一个字为“王”的记录
SELECT * FROM student WHERE name LIKE '王_'                --查询所有姓“王”且姓名仅有两个汉字的记录
SELECT * FROM student WHERE ID LIKE '201810618010[13478]'  --查询学号尾数是1、3、4、7、8的所有记录
SELECT * FROM student WHERE ID LIKE '201810618010[^13478]' --查询学号尾数不是1、3、4、7、8的所有记录
SELECT * FROM student WHERE ID LIKE '2018X%180106' ESCAPE 'X'  --ESCAPE 定义转义字符,将X定义为转义字符,则通配符%就会看作是普通字符
(3)空值查询  IS
SELECT * FROM student WHERE avgrade IS NULL  --查询平均成绩字段值为空的记录 注:空不能用=这种查询是无效的
(4)分组查询  GROUP BY 和HAVING
SELECT 专业 , count(*) 人数 FROM student GROUP BY 专业                     --查询各专业学生的人数  注:count()是库函数,用于统计每一组的记录个数
SELECT 专业 , count(*)人数 FROM student GROUP BY 专业 HAVING count(*) >=2  --查询专业人数大于或等于2的专业及人数
(5)范围查询
--AND 或 BETWEEN 例:
SELECT * FROM student WHERE avgrade>=80 AND avgrade<=90 
SELECT * FROM student WHERE avgrade BETWEEN 80 AND 90
--IN :适合非数值型范围查询 例:
SELECT * FROM student WHERE 专业 IN('音乐系','电子系')  --查询音乐系和电子系的学生 注意:IN后面必须跟枚举的列值
(6)排序查询  ORDER BY
select * from student order by age --查询表中的所有信息,并按age从小到大排序
select * from student order by age desc  --查询表中的所有信息,并按age的降序排序
(7)TOP 查询
select TOP n * from student  --查询表中前5名学生的所以信息
select TOP n * from student where age>18 --若子句中满足条件的记录少于n,则仅返回这些记录
--查询按年龄字段从小到大排序,选取age大于18且icflag等于0的第一条记录的所有信息
select top 1 * from student where icflag = '0' and age> '18' order by age

你可能感兴趣的:(sql,数据库,sqlserver)