use test;
------------------------------------------------------------------------------------------------------
-- 外键
/*
drop table classes
create table classes (
classid int constraint pk_class_classid primary key,
name varchar(40),
pid int check(pid>0)
);
insert into classes values (11,'adf',20);
drop table students;
create table students
(
studentid int auto_increment constraint pk_student_studentid primary key,
name varchar(32),
classid int not null,
constraint fk_student_class foreign key (classid) references classes(classid)
);
*/
-- insert into classes values (1,'一年级一班',10);
-- insert into students values (2,'zhangsan',2);
--------------------------------------------------------------------------------------------------------
--创建约束check
/*
create table users (
id int primary key,
name varchar(32),
gender char(1) not null,
constraint check_grender check(gender in ('F','M'))
);
insert into users values(1,'张三','f');
*/
-- 插入空值,会失败。
-- insert into users values(2,'test',null);
--------------------------------------------------------------------------------------------------------
--修改表
/*
--修改表的语法55
alter table <table_name>
{
[add [column] <column_definion>]|
[add <table_constraint>]|
[alter [column] <column_name>{set default <default_value> | drop default}]|
[drop [column] <column_name> restrict | cascade]|
[drop constraint <constraint_name> restrict | cascade ]
};
*/
--------------------------------------------------------------------------------------------------------
-- 创建索引
/*
create [unique] index <index_name>
on <table_name> (column_name [asc | desc])
*/
-- insert into users values(2,'张三2','f');
-- create index index_users_name on users (name desc);
-- create unique index index_users_name2 on users (name desc);
-- 删除索引
-- drop index users.index_users_name2;
-- 一般不去修改索引,一般是删除了新建,索引会像表一样占用物理存储空间。
/*
创建索引的原则:
1.当数据量很大的时候,查询返回的数据小于总数据量15%的时候,可以加快查询速度,超过了反而会影响查询速度。
2.当表很小的时候,创建所有反而会影响查询速度。
3.经常使用where的字段可以创建索引来增加查询速度。
4.在数据变化很大的列和null很多的列,可创建索引来提高查询速度。
*/
--------------------------------------------------------------------------------------------------------
--视图,视图可以看作虚表,不使用物理空间。其中select不能使用order by ,union
--创建视图
-- create view <view_name> (column_name,....) as <selecte_stament> [with [cascade | local ] check option]
-- 修改视图
-- alter view ...,各个数据修改视图的区别很大,不做介绍。
-- 删除视图
-- drop view <view_name>
-- create view test_view as select u.name from users u where u.gender='F' ;
-- insert into users values(5,'TEST1','F');
--create view test_view2 as select u.name as bb from users u where u.gender='F';
--drop view test_view2;
--create view test_view3 as select u.name from users u where u.gender='F' with local check option;
--------------------------------------------------------------------------------------------------------
-- 增加数据,
-- insert into <table_name or view_name> [(columns_name,...)] values {( <v> | <expression> | null | default,...) | select_stament};
-- 不能省略字段中不能为空的,不然会抛出异常。
-- 添加视图,必须在相关实表中有数据。
-- insert into test_view(name) values('bbs');
--select * from users where 1=1;
/*
注意事项:
1.使用的列明必须与该列定义的名称匹配,不区分大小写。
2.插入的数值必须与定义的字段数据类型匹配。
3.插入数据的数字范围必须在定义的范围内。
4.插入数值的宽度不能超过定义的宽度。
5.插入的数值必须遵循其约束。
*/
--------------------------------------------------------------------------------------------------------
--更新,如果没有where,那将更新所有的字段。
-- update <table_name or view_name> set {<column_name>=<value> | <expression> | null | default | where <where_stament>}
--------------------------------------------------------------------------------------------------------
-- 删除数据,不会删除表结构
-- delete from <table_name> where <where_stament>
-- delete from users
--------------------------------------------------------------------------------------------------------
-- 查询
/*
select [ distinct ] [ qualifier. ] <column_name,...> | * | <expression> [ as column_alias ],... from <table_name or view_name> | <inline_view > [as <table_alias>]
[where <where_stament>] |
[group by <qualifier. > <column_name>,... [having <having_stament>] ] |
[order by <column_name> | <column_number> [desc |asc],...]
*/
--select * from classes;
-- 可添加表达式
-- select cc.classid,cc.name,cc.pid, cc.classid * 2 as pid2 from classes cc;
--
/*
比较运算符
1.等于(=) 和不等于(<>);
2.大于(>) 和大于等于(>=);
3.小于(<) 和小于等于(<=);
4.空(is null) 和非空(is not null);
5.模糊查询,like 和 not like,通配符%,_;(%,替换一个字符串),(_,替换一个字符)
*/
select * from classes cc where cc.name is not null;
select * from classes cc where cc.name like 'a__';
/**
逻辑运算符;
1.or 或
2.and 与
3.not 非
*/
/***
算术运算符:+、-、*、/、%(取模)
*/
/***
集合运算:
1.union 和 union all ,返回2个查询的组合。
2.intersect,返回2个集合共同的行。
3.except,返回第一个集合存在,在第二集合不存在的记录。
*/
/*
select * from classes union (select * from classes where classid>1);
select * from classes intersect (select * from classes where classid>1);
select * from classes except (select * from classes where classid>1);
*/
/*
专用运算符:
1.in,
2.between ... and ...,包括区间端点。
3.distinct,不重复记录。
4.top,
5.exists,检查子查询中是否有匹配的值的行。
*/
-- select top 3 * from classes;
/***
order by ,
1.一定是 select 的最后一个子句。
2.默认升序。
3.可以在order by 子句中使用列名或表达式。
4.不是必须在select中出现。
*/
-- select * from classes order by pid desc;
/***
group by ,分组查询
*/
/**
having ,对分组出来的数据进行筛选,
*/
--------------------------------------------------------------------------------------------------------
--函数
/*
create function [owner_name.]function_name
([{@param_name [as] scalar_paramer_data_type [=default] },{},..])
returns scalar_return_data_type
[with < function_option> [[,],..]]
[as]
begin
function_body
retrun scalar_expression
end
*/
/*
-- 创建3个数的和
create function sum_three3(@arg1 int,@arg2 int,@arg3 int)
returns int
as
begin
return (@arg1+@arg2+@arg3)
end
go
*/
-- 删除函数
-- drop function dbo.sum_three2
-- 调用函数
-- select * from person where age > dbo.sum_three2(1,2,3);
--------------------------------------------------------------------------------------------------------
-- 存储过程
/*
create procedure procedure_name
[@param data_type] [output]
[with ](recompile | encryption)
as
sql_statement
*/
/*
drop procedure select_person
create procedure select_person_name
@person_id int,
@param_name varchar(255) output
as
select @param_name=person.name from person where person.id=@person_id;
go
*/
-- 调用存储过程
/*
declare @p_name varchar(255)
execute select_person_name 1,@p_name output
select @p_name as t_name
go
*/
-- 删除存储过程
-- drop procedure select_person_name
--------------------------------------------------------------------------------------------------------
分享到:
相关推荐
我的第一个C#小程序之简单音乐播放器1731655933.html
练习springboot1 项目 模拟高并发秒杀,实现基本的登录、查看商品列表、秒杀、下单等功能,简单实现了系统缓存、降级和限流。SpringBoot + MyBatis + MySQL+Druid + Redis + RabbitMQ + Bootstrap + jQue….zip
html常规学习.zip资源资料用户手册
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
HTML转PDF py脚本
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
西电通院模电大作业课后题电路设计图24年
本文档主要讲述的是sqlserver内存释放;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
zw
发动机制造厂技术处安全、消防安全手册.docx
生产现场工艺文件执行检查管理流程说明.docx
Spring Boot集成Spring Security,HTTP请求授权配置:包含匿名访问、允许访问、禁止访问配置
通过设置截止频率和带宽来获取对应的滤波器参数
全国月尺度平均风速数据集(1961-2022, 0.25° × 0.25°)是一个高分辨率的网格化平均风速数据集,覆盖了中国大陆及周边地区。 该数据集通过科学方法整合气象观测和再分析数据,为气候研究、生态模型、农业生产、以及水资源管理等领域提供了重要支持。 数据下载后可显示详细信息。
styles
用VHDL语言设计电梯控制器.doc
管道试压报审验表、管道强度、严密性试验记录表.doc
使用springboot实现的旅游网站
所有库函数和源代码
存储介质信息消除工具应用完善的数据消除算法,严格按照BMB21-2007《涉及国家秘密的载体销毁与信息消除安全保密要求》标准,能够灵活的实现对存储介质中的数据进行完全擦除,不留痕迹,是我国各级政府、军工保密信息化建设以及各企业中不可缺少的工具。 数据一旦执行消除操作,专业的数据恢复工具也无法对其进行恢复,彻底解决用户的后顾之忧。同时不损坏存储介质,是国内先进的非暴力信息消除工具,可以有效降低用户的存储成本。可以对各种硬盘、软盘、U 盘、存储卡等进行数据粉碎,并且支持多种的磁盘分区格式,包括FAT 系列、NTFS 系列等磁盘格式进行数据销毁,确保了存储介质数据信息的安全性。 存储介质信息消除工具适用于机密级即以下涉密计算机存储介质上的信息消除,满足分级保护系统要求。 主要功能: 1. 支持单个或多个文件、目录、磁盘信息的消除。 2. 支持单个或多个磁盘剩余空间中残留信息的消除。 3. 支持搜索深度上网痕迹、文件(夹)删除痕迹、深度USB存储设备接入痕迹来确认系统中是否残留涉密信息 4. 支持清除其他多种违规外联痕迹