SQL数据库
数据库基本介绍,用法,mysql,SQL,oracle等常见数据库的基本操作
媛媛要加油呀
创造财富,即创造未来
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SQL常见面试题
1、SQL的表连接方式有哪些?SQL中连接按结果集分为:内连接,外连接,交叉连接内连接:inner join on,两表都满足的组合。内连接分为等值连接,不等连接,自然连接。等值连接:两表中相同的列都会出现在结果集中。自然连接:两表中具体相同列表的列会合并为同一列出现在结果集中。外连接:分为左(外)连接,右(外)连接,全连接左(外)连接:A left (outer) join B,以A...原创 2020-03-26 20:55:44 · 1119 阅读 · 0 评论
-
正则表达式总结(思维导图)
一直对正则表达式这块内容不太清晰,总是会忘记哪个符号是什么含义,最近抽空完成了下面这个思维导图,希望对大家有帮助!希望你想学时用尽全力,希望你想玩时一身轻盈希望你积极向上,希望你兜里有钱,眼里有光总结不易,多多支持!想要原格式.xmind的可以私信加我~~~...原创 2021-04-09 18:31:31 · 1700 阅读 · 0 评论 -
一、SQL数据库基础知识
主键:唯一标识这一行的数据外键:关联到其他表主键的字段索引:提高数据的查询速度,占用一定的磁盘空间,减慢数据删除和插入的速度(因为插入和删除数据都需要更新索引)。表关联:关系数据库的核心理念,通过关联,可以表达复杂的数据关联(如学生表,课程表进行关联)SQL:Structured Query LanguageSQL 具有下面4个主要的功能:1.创建数据库并定义表的结构;2.查询需要的...原创 2020-03-28 11:14:05 · 352 阅读 · 0 评论 -
二、SQL—数据的增删改
首先创建数据表:create tableT_Person (FName varchar(20),FAge int,FRemark varchar(20),primary key(FName));create table T_Debt (FNumber varchar(20),FAmount decimal(10,2) not null,FPerson varchar(20),...原创 2020-03-29 18:27:43 · 133 阅读 · 0 评论 -
三、SQL—数据检索①(select)
准备数据:1,创建员工信息表CREATE TABLE T_Employee (FNumber VARCHAR(20),FName VARCHAR(20),FAge INT,FSalary DECIMAL(10,2),PRIMARY KEY (FNumber))2,插入数据INSERT INTO T_Employee(FNumber,FName,FAge,FSalary) VALU...原创 2020-03-30 19:41:36 · 271 阅读 · 0 评论 -
三、SQL—数据检索②(通配符)
通配符过滤:like(模糊查询)单字符匹配:通配符为半角下划线“_”,它匹配单个出现的字符如通配符表达式“b_d”匹配第一个字符为b、第二个字符为任意字符、第三个字符为d的字符串。如:T_Employee表中FName字段匹配如下规则的数据行:以任意字符开头,剩余部分为“erry”SELECT * FROM T_Employee WHERE FName LIKE "_erry"单...原创 2020-03-31 10:20:24 · 785 阅读 · 0 评论 -
三、SQL—数据检索③(group by)
准备工作:为T_Employee表增加两列,分别为表示其所属分公司的FSubCompany字段和表示其所属部门的FDepartment。ALTER TABLE T_Employee ADD FSubCompany VARCHAR(20);ALTER TABLE T_Employee ADD FDepartment VARCHAR(20);两个字段添加完毕后,将表中原有数据行的这两个字段值更...原创 2020-04-01 21:29:24 · 214 阅读 · 0 评论 -
三、SQL—数据检索④(union)
联合结果集:union有时我们需要组合两个完全不同的查询结果集,而这两个查询结果之间没有必然的联系,只需他们显示在一个结果集中,在SQL中可以使用UNION运算符来将两个或者多个查询结果集联合为一个结果集中。数据准备:创建一个临时工信息表CREATE TABLE T_TempEmployee (FIdCardNumber VARCHAR(20),FName VARCHAR(20),FA...原创 2020-04-02 22:13:52 · 239 阅读 · 0 评论 -
三、SQL—数据检索⑤(having)
having:对部分分组进行条件过滤等价与where,只在需要使用聚合函数时,用having代替where(不能喝聚合函数一起使用)。如:SELECT FAge,COUNT(*) AS CountOfThisAge FROM T_Employee GROUP BY FAge HAVING COUNT(*)>1执行结果:FAge CountOfThisAge23 225 ...原创 2020-04-03 21:28:02 · 246 阅读 · 0 评论 -
三、SQL—数据检索⑥(limit)
限制结果集行数:(不同数据库,有不同的方法)MySQL中用limit,语法:limit 首行行号,最多显示多少行放在select语句最后如:按照工资降序排列的从第二行开始(行号从0开始)的最多五条记录:SELECT * FROM T_Employee ORDER BY FSalary DESC LIMIT 2,5MSSQL2000:top N 返回结果集中,前N行的数据如:检索工资...原创 2020-04-05 00:41:29 · 253 阅读 · 0 评论 -
三、SQL–数据搜索–⑦(distinct)
DISTINCT关键字:用来进行重复数据抑制的最简单的功能,且所有的数据库系统都支持DISTINCT。DISTINCT的使用:在SELECT之后增加DISTINCT即可如:检索公司里有哪些垂直部门,并抑制重复数据的产生SELECT DISTINCT FDepartment FROM T_Employee执行结果:FDepartmentDevelopmentHumanResourceI...原创 2020-04-05 19:38:55 · 189 阅读 · 0 评论 -
三、SQL数据检索(⑧计算字段)
计算字段存在数据库系统中的数据的默认展现方式不一定完全符合应用的要求,比如:1,数据库系统中姓名、工号是单独存储在两个字段的,但是在显示的时候想显示成“姓名+工号”的形式。2,数据库系统中金额的显示格式是普通的数字显示方式(比如668186.99),但是显示的时候想以千分位的形式显示(比如668,186.99)。3,数据库系统中基本工资、奖金是单独存储在两个字段的,但是希望显示员工的工资总...原创 2020-04-07 22:50:54 · 321 阅读 · 0 评论 -
三、SQL–数据检索(⑨数据处理函数)
像普通编程语言一样,SQL支持使用函数处理数据函数使用若干字段名/常量值做为参数(参数数量不固定,可为空,甚至有的函数的参数个数可变)几乎所有函数都有返回值,返回值即为函数的数据处理结果常见典型函数聚合函数:对一组数据进行统计计算数学函数:进行数值处理日期函数:进行日期处理字符串函数:进行字符串处理计算字符串长度的函数:该函数接受一个字符串类型的字段值做为参数,返回值为这个字符串的...原创 2020-04-08 22:38:49 · 167 阅读 · 0 评论 -
三、SQL–数据检索(⑩字符串拼接)
字符串的拼接SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外。如:若需要以“工号+姓名”的方式在报表中显示一个员工的信息,那么就可以把工号和姓名两个字符串类型的字段拼接计算。如:需要在报表中在每个员工的工号前增加“Old”这个文本。这时就需要对字符串类型的字段(包括字符串类型的常量字段)进行拼接。在不同的数据库系统下的字符串拼接不同字符串一般采用单引号包围,如: 'zh...原创 2020-04-09 23:42:17 · 549 阅读 · 0 评论 -
三、SQL数据检索11(不从实体表中取的数据)
有时需要查询一些不能从任何实体表中能够取得的数据。如:将数字1作为结果集或者计算字符串“abc”的长度。*尝试使用下面的SQL来完成类似的功能:SELECT 1 FROM T_Employee执行结果集:111111111结果集中出现了不止一个1,因为通过这种方式得到的结果集数量取决于T_Employee表中的数据条目数,必须要借助于DISTINCT关键字来将结果集条数...原创 2020-04-10 21:50:35 · 280 阅读 · 0 评论 -
四、SQL函数①(数学函数1)
数据准备创建数据表MYSQL:CREATE TABLE T_Person (FIdNumber VARCHAR(20),FName VARCHAR(20),FBirthDay DATETIME,FRegDay DATETIME,FWeight DECIMAL(10,2))MSSQLServer:CREATE TABLE T_Person (FIdNumber VARCHAR...原创 2020-04-12 23:25:35 · 357 阅读 · 0 评论 -
四、SQL函数①(数学函数2)
求正弦值:SIN()函数它接受一个参数,这个参数为待计算正弦值的表达式。如SELECT FName,FWeight,SIN(FWeight) FROM T_Person求余弦值:COS ()函数它接受一个参数,这个参数为待计算余弦值的表达式。如SELECT FName,FWeight, COS(FWeight) FROM T_Person求反正弦值:ASIN()函数它接受一个参数,这...原创 2020-04-13 09:04:45 · 409 阅读 · 0 评论 -
四、SQL函数②(字符串函数)
字符串函数:用户的密码、电子邮箱地址、证件号码等都是以字符串类型保存在数据库中的。计算字符串长度LENGTH()函数用来计算一个字符串的长度。该函数接受一个参数,此参数为待计算的字符串表达式,在MYSQLServer 中这个函数名称为LEN()。如:MYSQL,Oracle,DB2:SELECT FName, LENGTH(FName) FROM T_PersonMSSQLServe...原创 2020-04-14 21:52:54 · 525 阅读 · 0 评论 -
四、SQL函数③(日期时间函数)
分类:根据表示的类型、精度的不同,数据库中的日期时间数据类型分为日期、时间、日期时间、时间戳四种类型。日期类型:用来表示“年-月-日”信息的数据类型,其精度精确到“日”,其中包含了年、月、日三个信息,比如“2008-08-08”。在数据库中,一般用Date来表示日期类型。时间类型:用来表示“小时:分:秒”信息的数据类型,其精度精确到“秒”,其中包含了小时、分、秒三个信息,比如“19:00:0...原创 2020-04-15 22:49:59 · 359 阅读 · 1 评论 -
四、SQL函数④(其他函数)
类型转换隐式转换:数据库系统自动将字符串类型转换为整数类型显式转换:使用类型转换函数转换。使用类型转换函数不仅可以保证类型转换的正确性,而且可以提高数据处理的速度,因此应该使用显式转换,尽量避免使用隐式转换。MYSQLMYSQL中提供了CAST()函数和CONVERT()函数用于进行类型转换,CAST()是符合ANSI SQL99的函数,CONVERT() 是符合ODBC标准的函数,这两个函...原创 2020-04-16 23:52:57 · 316 阅读 · 0 评论 -
四、SQL函数⑤(各数据库系统独有函数①)
MYSQL中的独有函数IF()函数如果符合条件则返回A,否则返回B,使用CASE函数过于繁琐,如下:CASE WHEN condition THENA ELSE B END因而,MYSQL提供了IF()函数用于简化这种逻辑判断,其语法格式如下:IF(expr1,expr2,expr3)如果expr1 为真(expr1 <> 0 以及expr1<>NULL),那...原创 2020-04-17 23:17:36 · 328 阅读 · 0 评论 -
四、SQL函数⑤(各数据库系统独有函数②)
Oracle中的独有函数填充函数与MYSQL类似,Oracle中也提供了用于进行字符串填充的函数LPAD()、RPAD(),其参数格式如下:LPAD(char1,n [,char2])RPAD(char1, n [,char2])与MYSQL中不同的是,Oracle中LPAD()和RPAD()函数的第三个参数是可以省略的,如果省略第三个参数,则使用单个空格进行填充。如:分别将每个人的姓...原创 2020-04-19 19:34:11 · 185 阅读 · 0 评论 -
五、SQL—索引/约束①
在数据库系统中解决问题的技术就是索引与约束。索引用来提高数据的检索速度约束则用来保证数据的完整性索引索引是建立在数据表上的,因此需要首先创建一张记录人员信息的数据表,创建SQL语句如下:MYSQL、MSSQLServer、DB2:CREATE TABLE T_Person (FNumber VARCHAR(20),FName VARCHAR(20),FAge INT)Oracle:C...原创 2020-04-20 18:42:20 · 235 阅读 · 0 评论 -
五、SQL–索引/约束②(非空约束)
在定义数据表的时候,默认情况下所有字段都是允许为空值的,如果需要禁止字段为空,那么就需要在创建表的时候显示指定。指定一个字段为非空的方式就是在字段定义后增加NOT NULL。如:创建了表T_Person,并设置FNumber 字段不允许为空:MYSQL,MSSQLServer,DB2:CREATE TABLE T_Person (FNumber VARCHAR(20) NOT NULL ,F...原创 2020-04-22 00:13:47 · 785 阅读 · 0 评论 -
五、SQL–索引/约束③(唯一约束)
唯一约束又称为UNIQUE约束,它用于防止一个特定的列中两个记录具有一致的值如:在员工信息表中希望防止两个或者多个人具有相同的身份证号码。唯一约束分为单字段唯一约束与复合唯一约束两种。单字段唯一约束:如果希望一个字段在表中的值是唯一的,那么就可以将唯一约束设置到这个字段上,设置方式:在字段定义后增加UNIQUE。如果是DB2,那么还要同时将NOT NULL约束设置到这个字段上。如:创建了...原创 2020-04-22 23:30:20 · 789 阅读 · 0 评论 -
五、SQL–索引/约束④(check约束)
CHECK约束会:检查输入到记录中的值是否满足一个条件,如果不满足这个条件则对数据库做的修改不会成功。如,一个人的年龄是不可能为负数的,一个人的入学日期不可能早于出生日期,出厂月份不可能大于12。可以在CHECK条件中使用任意有效的SQL表达式,CHECK约束对于插入、更新等任何对数据进行变化的操作都进行检查。字段添加CHECK约束:在该字段定义后添加CHECK 表达式,几乎所有字段中都可以...原创 2020-04-23 23:47:02 · 2735 阅读 · 0 评论 -
五、SQL–索引/约束⑤(主键约束)
第一范式要求每张表都要有主键,因此主键约束是非常重要的,而且*主键约束是外键关联的基础条件。主键约束为表之间的关联提供了链接点。主键必须能够唯一标识一条记录,即主键字段中的值必须是唯一的,而且不能包含NULL 值。虽然一张表中可以有多个UNIQUE 约束和非空约束,但每个表中只能有一个主键约束。在CREATE TABLE语句中定义主键约束:在字段定义后添加PRIMARY KEY关键字即可。不过...原创 2020-04-25 08:02:08 · 318 阅读 · 0 评论 -
五、SQL–索引/约束⑥(外键约束)
引出:当一些信息在表中重复出现时,就要考虑要将它们提取到新的表中,并在源表中引用新创建的中的数据。如:很多作者都著有不止一本著作,所以在保存书籍信息的时候,应该把作者信息放到单独的表中,创建表的SQL语句如下:MYSQL、MSSQLServer:CREATE TABLE T_AUTHOR(FId VARCHAR(20) PRIMARY KEY,FName VARCHAR(100),F...原创 2020-04-26 19:09:56 · 388 阅读 · 0 评论 -
六、SQL–表连接①(简介)
表连接:进行多表检索最常用的技术,使用JOIN关键字将一个或者多个表按照彼此间的关系连接为一个结果集。数据准备:创建客户表MYSQL,MSSQLServer,DB2:CREATE TABLE T_Customer (FId INT NOT NULL ,FName VARCHAR(20) NOT NULL ,FAge INT,PRIMARY KEY (FId))Oracle:CRE...原创 2020-04-27 08:34:54 · 206 阅读 · 0 评论 -
六、SQL–表连接②(内连接)
inner join:内连接组合两张表,并且基于两张表中的关联关系来连接它们。使用内连接需要指定表中哪些字段组成关联关系,并且需要指定基于什么条件进行连接。内连接的语法如下:INNER JOIN table_name ON condition其中table_name 为被关联的表名,condition则为进行连接时的条件。如:检索所有的客户姓名为MIKE的客户的订单号以及订单价格:SEL...原创 2020-04-28 12:27:47 · 399 阅读 · 0 评论 -
六、SQL–表连接③(不等值连接)
等值连接:连接的ON子句的条件包含一个等号运算。等值连接是最常用的连接,因为它指定的连接条件是一个表中的一个字段必须等于另一个表中的一个字段。不等值连接:在连接的条件中可以使用小于(<)、大于(>)、不等于(<>)等运算符,还可以使用LIKE、BETWEEN AND等运算符,甚至还可以使用函数。例如,如果需要检索价格小于每个客户的年龄的五倍值的订单列表,那么就可以...原创 2020-04-29 13:09:28 · 5365 阅读 · 0 评论 -
六、SQL–表连接④(交叉连接)
交叉连接与内连接比起来,交叉连接非常简单,因为它不存在ON子句。交叉连接会将涉及到的所有表中的所有记录都包含在结果集中。交叉连接,定义方式分为隐式连接和显式连接。隐式连接:只要在SELECT语句的FROM语句后将要进行交叉连接的表名列出即可,这种方式可以被几乎任意数据库系统支持。如:将T_Customer表和T_Order做交叉连接:SELECT T_Customer.FId, T_Cus...原创 2020-04-30 08:15:20 · 357 阅读 · 0 评论 -
六、SQL–表连接⑤(自连接)
自连接:参与连接的表为同一张表,即与自身连接。交叉连接、内连接、外连接等连接方式中只要参与连接的表是同一张表,那么它们就可以被称为自连接。自连接主要用途:就是检索一张表内部的匹配情况如:检索与另外一个订单的订单类型一样的所有订单的列表。可为以下SQL语句:SELECT FNumber,FPrice,FTypeId FROM T_Order WHERE FTypeId= FTypeId执行...原创 2020-05-06 18:15:31 · 1184 阅读 · 0 评论 -
六、SQL–表连接⑥(外部连接)
内部连接:要求组成连接的两个表必须具有匹配的记录,T_Order表中的数据如下:FId FNumber FPrice FCustomerId FTypeId1 K001 100.00 1 12 K002 200.00 1 13 T003 300.00 1 24 N002 100.00 2 25 N003 500.00 3 46 T001 300.00 4 37 T002 100.0...原创 2020-05-07 19:02:55 · 272 阅读 · 0 评论 -
六、SQL–表连接⑦(全外部连接)
全外部连接并不是所有数据库系统都支持,最常使用的MYSQL就不支持全外部连接。全外部连接:是左外部连接和右外部连接的合集,因为即使在右表中不存在匹配连接条件的数据,左表中的所有记录也将被放到结果集中,同样即使在左表中不存在匹配连接条件的数据,右表中的所有记录也将被放到结果集中。如:使用全外部连接查询每张订单的信息以及对应的客户信息SELECT o.FNumber,o.FPrice,o.FCu...原创 2020-05-08 18:42:30 · 275 阅读 · 0 评论 -
七、SQL–子查询①(子查询数据准备)
子查询定义:SQL语句允许将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询。所有可以使用表的地方几乎都可以使用子查询来代替如:SELECT * FROM T 中就可以用子查询来代替表T如:SELECT * FROM( SELECT * FROM T2 where FAge<30)这里的“SELECT * FROM T2 wh...原创 2020-05-09 23:20:45 · 164 阅读 · 0 评论 -
七、SQL–子查询②(单值子查询)
单值子查询单值子查询:语法和普通的SELECT语句一样,唯一的限制是子查询的返回值必须只有一行记录,而且只能有一个列。这样的子查询又被称为标量子查询,标量子查询可以用在SELECT语句的列表中、表达式中、WHERE 语句中等很多场合。首先来看一个在SELECT语句列表中使用的最简单的标量子查询。SQL语句如下:MYSQL,MSSQLServer:SELECT 1 AS f1,2,(SELE...原创 2020-05-12 23:34:06 · 486 阅读 · 0 评论 -
七、SQL–子查询③(列子查询)
列值子查询与标量子查询不同,列值子查询可以返回一个多行多列的结果集。这样的子查询又被称为表子查询,表子查询可以看作一个临时的表,表子查询可以用在SELECT 语句的FROM子句中、INSERT语句、连接、IN 子句等很多场合。首先来看一个在FROM子句中使用的最简单的表子查询。SQL语句如下:SELECT T_Reader.FName,t2.FYearPublished,t2.FName F...原创 2020-05-13 07:54:43 · 378 阅读 · 0 评论 -
七、SQL-子查询④(标量子查询select)
标量子查询:可以当做是select列表中的一个列,唯一约束条件是子查询的返回值必须只有一行记录,且只能有一个列。但并不是只能返回唯一的值,它可以随当前查询记录而变化。如:SELECT FId,FName,(SELECT MAX(FYearPublished) FROM T_Book WHERE T_Book. FCategoryId= T_Category.FId) FROM T_Catego...原创 2020-05-19 10:31:04 · 741 阅读 · 0 评论 -
七、SQL-子查询⑤(标量子查询where)
先看一个简单的例子例:要检索喜欢“Story”的读者主键列表,(可以使用连接来完成,但使用子查询的实现思路也比使用连接简单)使用子查询来完成。1、首先肯定要到T_Category 表中查找FName等于“Story”的记录的FId字段值:SELECT FId FROM T_Category WHERE FName=" Story "因为这个查询的返回值是单列且单行的,所以可以当作标量子...原创 2020-05-20 14:31:40 · 381 阅读 · 0 评论
分享