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
--------------------------------------------------------------------------------------------------------
分享到:
相关推荐
康师傅mysql基础pdf
linux基础 +mysql基础
mysql基础知识和mysql优化整理,mysql基础知识和mysql优化整理,
MySQL基础.pdf
MYSQL基础教程.pptx
mysql基础部分内容,适用于小白学习。主要包括mysql基本概念、单行函数、常见函数、连接查询、分组查询、联合查询、分页查询、子查询、事务、视图、存储过程、函数、流程控制、
MySQL基础与实例教程练习题参考答案,供学生们使用。方便学生备考,答案可能不太准确,欢迎留言评论。随时更新。
PHP mysql基础知识技术考题分享,用于面试,考题用,最基础的简单的数据库操作和PHP基础只是测试
MySQL基础知识总结.pdf
ssh+Mysql基础框架!可直接使用!spring3 struts2 hibernate3 mysql
MySQL数据库中一些基础的方法调用,可供新手学习使用。不喜勿喷
MySQL基础学习中所使用的数据库文件
mysql基础篇尚硅谷视频 。。。。。。。。。。。。。。。。。。。。。。。。。
NULL 博文链接:https://onestopweb.iteye.com/blog/2340103
MySQL数据库开发的三十六条军规_石展_完整.pdf mysql容灾及自动化切换.pdf MySQL 性能优化最佳实践.pdf ...MySQL存储过程基础教程.pdf MySql 手册.pdf MySQL_中文参考手册.pdf Mysql双机热备安装手册(V).doc
mysql基础教学
15_mysql基础练习题15.docx
mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句
《MySQL基础.pdf》文档对于看完对应文章的小伙伴们可看可不看,文章中基础部分写的很详细,图文并茂让阅读者可以在没有编写环境的情况下可以轻松掌握,后面还有对应的练习题供大家自己参考,至于本pdf中的安装流程...
资源名称:麦子学院PHP培训之Mysql基础到进阶实战培训视频教程内容:麦子学院Mysql基础班培训视频简介:本章主要是php开发中Mysql基础知识的学习,包括MySQL的简单介绍和安装、MySQL管理工具的使用、表的建立、数据的...