设为首页 收藏本站
查看: 1260|回复: 0

[经验分享] 二、个人总结的菜鸟教程|sql教程的知识点(SQL高级教程)

[复制链接]

尚未签到

发表于 2018-10-20 14:23:36 | 显示全部楼层 |阅读模式
  二、SQL高级教程
  1、SQL SELECT TOP
  SELECT TOP 子句用于规定要返回的记录的数目。
  SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。
  注释:并非所有的数据库系统都支持 SELECT TOP 子句。
  sql server|ms access语法
  select top number|percent column_name from table_name;
  mysql|oracle语法(与top等价)
  select Column_name from table_name limit number;
  mysql语法
  select * from table_name limit number
  select * from websites limit 2
  oracle语法
  select * from table_name where rownum 10)
  )
DSC0000.png

  alter table person4 add check(id>10)
DSC0001.png

  alter table person4 drop check(...)
  24、SQL DEFAULT
  DEFAULT 约束用于向列中插入默认值。
  如果没有规定其他的值,那么会将默认值添加到所有的新记录。
  create table Persons(
  id int primary key,
  name varchar(20) default "zy"
  )
  create table orders(
  id int primary key,
  p_id int not null,
  orderdate date default getdate(),
  foreign key (p_id) references persons(id)
  )
  create table persons(
  id int primary key,
  name varchar(20) default 'zy'
  )
DSC0002.png


  alter table persons>
DSC0003.png

DSC0004.png


  alter table persons>
DSC0005.png

DSC0006.png

  25、SQL CREATE INDEX
  CREATE INDEX 语句用于在表中创建索引。
  在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
  您可以在表中创建索引,以便更加快速高效地查询数据。
  用户无法看到索引,它们只能被用来加速搜索/查询。
  注释:更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
  create index index_name on table_name(column_name)
  create index index_name on persons(name)
DSC0007.png

  在表上创建一个唯一的索引。不允许使用重复的值:唯一的索引意味着两个行不能拥有相同的索引值。Creates a unique index
  create unique index index_name on table_name(column_name)
  创建多列索引
  create index index_name on table_name(column_name)
  26、SQL DROP
  通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
  drop index index_name on table_name
DSC0008.png

  删除表
  drop table table_name
  删除数据库
  drop database database_name
  如果我们仅仅需要删除表内的数据,但并不删除表本身,那么我们该如何做呢?
  truncate table table_name
DSC0009.png


  27、SQL>  ALTER TABLE 语句用于在已有的表中添加、删除或修改列。
  增加列
  alter table_name add column_name datattype
DSC00010.png

  修改列
  alter table table_name modify column column_name datatype
DSC00011.png

  删除列
  alter table table_name drop column column_name
DSC00012.png

  28、SQL AUTO INCREMENT
  Auto-increment 会在新记录插入表中时生成一个唯一的数字。
DSC00013.png

  要让 AUTO_INCREMENT 序列以其他的值起始,请使用下面的 SQL 语法:
DSC00014.png

  要在 "Persons" 表中插入新记录,我们不必为 "ID" 列规定值(会自动添加一个唯一的值):
DSC00015.png

DSC00016.png

  oracle的自增
  create sequence seq_person
  minvalue 1
  start with 1
  increment by 1
  cache 10
  29、SQL视图
  SQL视图创建
  SQL CREATE VIEW
  create view view_name as select column_name(s) from table_name where ...
  在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。
  视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
  您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。
DSC00017.png

DSC00018.png

  SQL视图更新
  SQL CREATE OR REPLACE VIEW
  create or replace view view_name as select column_names from table_name where....
  SQL视图删除
  drop view view_name
  30、SQL日期
  当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。
  只要您的数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间部分,情况就有点复杂了。
  在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。
  now() 返回当前的日期和时间
DSC00019.png

DSC00020.png

  curdate() 返回当前日期
DSC00021.png

DSC00022.png

DSC00023.png

DSC00024.png

DSC00025.png

DSC00026.gif

  31、SQL NULL值
  NULL 值代表遗漏的未知数据。
  默认地,表的列可以存放 NULL 值。
  本章讲解 IS NULL 和 IS NOT NULL 操作符。
  如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
  NULL 值的处理方式与其他值不同。
  NULL 用作未知的或不适用的值的占位符。
DSC00027.png 注释:无法比较 NULL 和 0;它们是不等价的。

  无法使用比较运算符来测试 NULL 值,比如 =、< 或 。
  我们必须使用 IS NULL 和 IS NOT NULL 操作符。
  SQL IS NULL
DSC00028.png

  SQL IS NOT NULL
DSC00029.png

  32、SQL NULL函数
DSC00030.png

DSC00031.png

DSC00032.png

  33、SQL通用数据类型
  character(n) 字符/字符串.固定长度n.
  varchar(n)或 character varying(n) 字符、字符串。可变长度。最大长度n。
  binary(n) 二进制串。固定长度n。
  boolean 存储TRUE或FALSE值。
  varbinary(n)或 binary varying(n) 二进制串。可变长度。最大长度n。
  integer(p) 整数(没有小数点)。精度p。
  smallint 整数值(没有小数点)。精度5。
  integer 整数值(没有小数点)。精度10。
  bigint 整数值(没有小数点)。精度19。
  decimal(p,s) 精确数值,精度p,小数点后位数s。列如:decimal(5,2)是小数点前有3位,小数点后有2位数的数字。
  numeric(p,s)精确值,精度p,小数点后位数s。(与decimal相同)
  float(p) 近似数值,尾数精度p。一个采用以10为基数的指数计数法的浮点数。该类型的size参数由一个指定最小精度的单一数字组成。
  REAL近似数值,尾数精度 7。
  FLOAT近似数值,尾数精度 16。
  DOUBLE PRECISION近似数值,尾数精度 16。
  DATE存储年、月、日的值。
  TIME存储小时、分、秒的值。
  TIMESTAMP存储年、月、日、小时、分、秒的值。
  INTERVAL由一些整数字段组成,代表一段时间,取决于区间的类型。
  ARRAY元素的固定长度的有序集合
  MULTISET元素的可变长度的无序集合
  XML存储 XML 数据
DSC00033.png

  34、SQL DB数据类型
Microsoft Access 数据类型
DSC00034.png

MySQL 数据类型
  在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。
DSC00035.png

DSC00036.png

DSC00037.png

SQL Server 数据类型
DSC00038.png

  Number 类型:
DSC00039.png




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-624160-1-1.html 上篇帖子: Server dropped: no data (ntpdate 同步时间服务器) 下篇帖子: Lync 和Skype for Business Server/Client更新汇总
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表