SQL数据库学习

刘鑫婷 2019-06-22 02:28:37
一、SQL数据库作用
1、SQL的功能有:
(1)创建新的数据库;
(2)在数据库中创建新表、存储过程和视图;
(3)可设置表、存储过程和视图的权限;
(4)可对数据库进行数据查询、更新数据和获取数据等操作;
(5)可对数据库插入新的记录和删除记录。
2、我们可以把SQL看作两部分,分别是数据操作语言(DML)和数据定义语言(DDL)。SQL(结构化查询语言)是用于执行查询的语法。但是它也包含了用于更新、插入和删除记录的语法。
3、其中查询和更新的指令构成了SQL的DML部分:
(1)SELECT 的作用是从数据库表中获取数据;
(2)UPDATE 的作用是更新数据库表中的数据;
(3)DELETE 的作用是从数据库中删除数据;
(4)INSERT INTO 的作用是向数据库的表中插入数据。
4、SQL的数据定义语言(DDL)部分使我们有能力创建或删除表格。也可以用它来定义索引(键)和规定表之间的连接,以及施加表间的约束。其中SQL 中最重要的 DDL 语句有:
(1)CREATE DATABASE 的作用是创建新数据库;
(2)ALTER DATABASE 的作用是修改数据库;
(3)CREATE TABLE 的作用是创建新表;
(4)ALTER TABLE 的作用是变更(改变)数据库表;
(5)DROP TABLE 的作用是删除表;
(6)CREATE INDEX 的作用是创建索引(搜索键);
(7)DROP INDEX 的作用是删除索引。
5、我们需要注意的是:
(1)SQL语句对大小写不敏感。例如:DELETE相当于delete。
(2)在创建数据库表的时候,要注意像“金额”这样的可由之前表中出现的字段“数量”和字段“价格”运算后得出的字段不能在数据库表中出现。
(3)在整个数据库的表中,通常情况下一个字段只能出现一次。
(4)数据库表中的字段名不能以中文命名。
(5)设计数据库时,必须严格使用三范式规则。
(6)在设置数据类型时预留的字节要比实际的字节多,以避免出现一些异常。例如:我们的身份证号码时18位的,但我们在设置数据类型时,应该预留19或20个字节。
二、数据库语句
1、select 语句:select 列名 from 表名;
2、select distinct 语句:select distinct 列名 from 表名;
3、where 子句:select 列名 from 表名 where 列 运算符 值;
4、and 和 or 运算符:可在 where 子语句中把两个或多个条件结合起来。
5、order by 语句:用于根据指定的列对结果集进行排序。它默认按照升序对记录进行排序。正序排序:order by 表名 ascending ;倒序排序:order by 表名 descending 。
6、insert into 语句:insert into 表名 values (值1,值2,…);也可以写成 insert into 表名(列1,列2,…) values (值1,值2,…)。
7、update 语句:update 表名 set 列名 = 新值 where 列名 = 某值;
8、delete 语句:delete from 表名 where 列名 = 值;它是用于删除表中的行。
9、top 子句:select top 数字或者百分比 列名(s) from 表名;它是用于规定要返回的记录的数目,但是并不是所有的数据库系统都支持top子句。
10、like 操作符:like操作符具体有 - % [] [^] [!] escape;它是用于在where 子句中搜索列中的指定模式。
11、in 操作符:in 操作符允许我们在 WHERE 子句中规定多个值。
12、between 操作符:操作符 between …and 会选取介于两个值之间的数据范围。而这些值可以是数值、文本或者是日期。
13、SQL Alias 别名:可为列名和表名指定别名。
三、多表查询
1、多表查询 等值连接 select 列名 from 表名a,表名b where 表名a.列名a = 表名b.列名a;
2、join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
3、inner outer join 关键字:在表中存在至少一个匹配时,inner join 关键字返回行。
4、left outer join 关键字:left join 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
5、right outer join 关键字:right join 关键字会从右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
6、full outer join 关键字:只要其中某个表存在匹配,full join 就会返回行。
7、union 操作符:它是用于合并两个或多个 select 语句的结果集。但是我们要注意,union内部的 select 语句必须拥有相同数量的列。而且列也必须拥有相似的数据类型。同时,每条 select 语句中的列的顺序也必须相同。我们默认 union 操作符不允许重复的值。如果要允许重复的值,就使用 union all。
8、select into 语句:它是从一个表中选取数据,然后再把数据插入到另一个表中。因此它常用来创建表的备份复件或者用于对记录进行存档。
9、create database 语句:create database 数据库名;它是用来新建数据库的。
10、create table 语句:create table 表名(列名1 数据类型,列名2 数据类型,…);它是用来创建数据库中的表的。
11、对于SQL 约束,我们将主要探讨以下几种约束:
(1)not null 约束强制列不接受 NULL 值。
(2)unique 约束唯一标识数据库表中的每条记录。
(3)primary key 约束唯一标识数据库表中的每条记录。
(4)foreign key 一个表中的 foreign key 指向另一个表中的 primary key。
(5)check 约束用于限制列中的值的范围。
(6)default 约束用于向列中插入默认值。
12、create index 语句:create index 索引名 ON 表名 (列名);它是用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可更快地查找数据;但在更新上,具有索引的表比没有索引的表需要更多的时间,这是因为索引本身也要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
13、drop 语句:drop database 数据库名称; drop table 表名称; drop index 表名.索引名;
14、truncate table 语句:truncate table 表名称;与delete比较,truncate table 命令仅仅删除表格中的数据。
15、alter table 语句用于在已有的表中添加、修改或删除列。
16、auto increment 字段: Auto-increment 会在新记录插入表中时生成一个唯一的数字。
17、SQL VIEW(视图):在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。CREATE VIEW 视图名 AS SELECT 列名(s) FROM 表名 WHERE condition;
18、SQL 日期:最难的是确保所插入的日期的格式,与数据库中日期列的格式相匹配;
(1)GETDATE() 返回当前日期和时间;
(2)DATEPART() 返回日期/时间的单独部分;
(3)DATEADD() 在日期中添加或减去指定的时间间隔;
(4)DATEDIFF() 返回两个日期之间的时间;
(5)CONVERT() 用不同的格式显示日期/时间。
(6)日期简写: 年:yy, yyyy; 季度:qq, q; 月:mm, m; 年中的日 :dy, y;
日:dd, d; 周:wk, ww; 星期:dw, w; 小时: hh; 分钟 :mi, n;
秒:ss, s; 毫秒:ms; 微妙 :mcs; 纳秒 :ns;
-----style 类型代码:
100或者0:mon dd yyyy hh:miAM (或者 PM); 101:mm/dd/yy; 102:yy.mm.dd;
103:dd/mm/yy; 104:dd.mm.yy; 105:dd-mm-yy;
106:dd mon yy; 107:Mon dd, yy; 108:hh:mm:ss;109或者9 :mon dd yyyy hh:mi:ss:mmmAM(或者 PM);110:mm-dd-yy; 111;yy/mm/dd;
112:yymmdd; 113或者13:dd mon yyyy hh:mm:ss:mmm(24h); 114:hh:mi:ss:mmm(24h);
120或者20:yyyy-mm-dd hh:mi:ss(24h); 121或者21:yyyy-mm-dd hh:mi:ss.mmm(24h);
126:yyyy-mm-ddThh:mm:ss.mmm(没有空格); 130:dd mon yyyy hh:mi:ss:mmmAM;
131:dd/mm/yy hh:mi:ss:mmmAM;
19、.SQL NULL 值: is null 和 is not null操作符。
...全文
287 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

488

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧