`
buerkai
  • 浏览: 169287 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

mysql 基础

 
阅读更多
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版

    2. **MySQL基础** - **DBMS**:数据库管理系统(DataBase Management System),如MySQL,用于科学地组织和存储数据,高效地获取和维护数据。 - **SQL语句分类**:主要包括DDL(数据定义语言)、DML(数据操作语言...

    康师傅mysql基础pdf

    康师傅mysql基础pdf可能是一份教程或教材,涵盖了MySQL的基础知识,包括安装、配置、基本操作以及一些核心概念。在这里,我们将深入探讨MySQL的一些关键点。 1. **安装与配置**: MySQL的安装通常涉及下载安装包,...

    mysql基础知识和mysql优化整理

    一、MySQL基础知识 1. 数据库与表:MySQL中的数据库是一个逻辑存储单元,用于组织相关数据。表是数据库中的基本元素,由列和行构成,用来存储具体的数据。 2. 数据类型:MySQL支持多种数据类型,如整数类型...

    MySQL基础PDF文件

    MySQL基础PDF文件涵盖了关于MySQL数据库的入门知识,包括数据库的概念、安装配置、基本语法以及SQL语句的操作。MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其免费、功能强大和高效的特点,成为了...

    MYSQL基础知识-学习笔记

    这份"MYSQL基础知识-学习笔记"涵盖了对MySQL的初步介绍以及基础概念,是初学者入门的理想资源。 首先,我们从MySQL的简介开始。MySQL是由瑞典的MySQL AB公司开发的,后被甲骨文公司收购。它是一款开源、免费的...

    MySQL 基础知识的总结

    本文将深入探讨MySQL的基础知识,包括安装、数据类型、表的创建、查询语句、索引以及事务处理等核心概念。 1. **安装与配置** MySQL的安装过程通常包括下载适合操作系统的安装包,按照向导进行安装,然后配置...

    6天掌握Mysql基础视频【完整资料]教程中的资料.7z

    本教程“6天掌握MySQL基础视频”旨在帮助初学者在短时间内快速理解和掌握MySQL的基础知识,为后续的数据库管理和开发工作打下坚实的基础。 在6天的学习过程中,你将深入理解以下核心知识点: 1. **MySQL安装与配置...

    数据库MySQL基础引用

    MySQL数据库中一些基础的方法调用,可供新手学习使用。不喜勿喷

    MYSQL基础教程

    ### MySQL基础教程知识点详解 #### 一、MySQL简介与启动 **标题与描述:**“MySQL基础教程”这一章节主要介绍了MySQL的基础操作方法,包括如何启动MySQL服务。 **知识点:** 1. **MySQL简介** - MySQL是一款...

    mysql基础操作

    ### MySQL基础操作详解 #### 一、MySQL安装与配置 **1. 解压缩** - 首先,需要下载MySQL的安装包。通常可以从官方网站或其他可靠的来源获取。 - 下载完成后,将安装包解压到指定目录,例如`C:\MySQL`。 **2. ...

    mysql基础篇尚硅谷视频

    mysql基础篇尚硅谷视频 。。。。。。。。。。。。。。。。。。。。。。。。。

    MySQL基础.docx

    这篇文档主要针对初学者,涵盖了MySQL的基础知识,包括数据库的基本概念、MySQL的安装与使用、SQL语句的学习以及一些高级特性。 首先,理解数据库的重要性至关重要。数据库能够将数据持久化存储在本地,提供结构化...

    MySQL 基础教程参考手册

    MySQL数据库开发的三十六条军规_石展_完整.pdf mysql容灾及自动化切换.pdf MySQL 性能优化最佳实践.pdf ...MySQL存储过程基础教程.pdf MySql 手册.pdf MySQL_中文参考手册.pdf Mysql双机热备安装手册(V).doc

    mysql基础学习教程百度网盘下载.txt

    该教程为mysql基础学习教程,适合初入mysql的同学下载学习

    《MySQL基础.pdf》文档

    《MySQL基础.pdf》文档对于看完对应文章的小伙伴们可看可不看,文章中基础部分写的很详细,图文并茂让阅读者可以在没有编写环境的情况下可以轻松掌握,后面还有对应的练习题供大家自己参考,至于本pdf中的安装流程...

    麦子学院PHP培训之Mysql基础到进阶实战培训视频

    资源名称:麦子学院PHP培训之Mysql基础到进阶实战培训视频教程内容:麦子学院Mysql基础班培训视频简介:本章主要是php开发中Mysql基础知识的学习,包括MySQL的简单介绍和安装、MySQL管理工具的使用、表的建立、数据的...

    Mysql基础语法及脚本.zip

    Mysql基础语法及脚本,非常适合新人学习,里面有2个Demo及脚本,第一个适合完全不会的新人,通过学习Demo1,能掌握简单的增删改查,通过学习Demo2,能掌握mysql运算符,排序,用limit分页查询,MySQL正则表达式,约束,索引,函数...

Global site tag (gtag.js) - Google Analytics