IT评测·应用市场-qidao123.com

标题: SQL基础(2),程序人生 [打印本页]

作者: 卖不甜枣    时间: 2024-7-23 04:28
标题: SQL基础(2),程序人生
  1. ALTER TABLE Persons
  2. ADD UNIQUE (P_Id)
复制代码
3)已创建的表中删除unique束缚
  1. ALTER TABLE Persons
  2. DROP INDEX uc_PersonID
复制代码
3)primary key 束缚

作用:

实例:
1)创建表时添加primary key 束缚:
  1. --mysql
  2. CREATE TABLE Persons
  3. (
  4. P_Id int NOT NULL,
  5. LastName varchar(255) NOT NULL,
  6. FirstName varchar(255),
  7. Address varchar(255),
  8. City varchar(255),
  9. PRIMARY KEY (P_Id)
  10. )
  11. --SQL Server / Oracle / MS Access:
  12. CREATE TABLE Persons
  13. (
  14. P_Id int NOT NULL PRIMARY KEY,
  15. LastName varchar(255) NOT NULL,
  16. FirstName varchar(255),
  17. Address varchar(255),
  18. City varchar(255)
  19. )
复制代码
2)已创建的表添加primary key 束缚
  1. ALTER TABLE Persons
  2. ADD PRIMARY KEY (P_Id)
复制代码
3)已创建的表中删除primary key 束缚
  1. ALTER TABLE Persons
  2. DROP PRIMARY KEY
复制代码
4)foreign key 束缚

作用:

实例:
“Persons” 表:
P_IdLastNameFirstNameAddressCity1HansenOlaTimoteivn 10Sandnes2SvendsonToveBorgvn 23Sandnes3PettersenKariStorgt 20Stavanger “Orders” 表:
O_IdOrderNoP_Id1778953244678332245624245621
1)创建表时添加foreign key 束缚:
  1. --mysql
  2. CREATE TABLE Orders
  3. (
  4. O_Id int NOT NULL,
  5. OrderNo int NOT NULL,
  6. P_Id int,
  7. PRIMARY KEY (O_Id),
  8. FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
  9. )
  10. --SQL Server / Oracle / MS Access:
  11. CREATE TABLE Orders
  12. (
  13. O_Id int NOT NULL PRIMARY KEY,
  14. OrderNo int NOT NULL,
  15. P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
  16. )
复制代码
2)已创建的表添加foreign key 束缚
  1. ALTER TABLE Orders
  2. ADD FOREIGN KEY (P_Id)
  3. REFERENCES Persons(P_Id)
复制代码
3)已创建的表中删除foreign key 束缚
  1. ALTER TABLE Orders
  2. DROP FOREIGN KEY fk_PerOrders
复制代码
5)check 束缚

作用:

实例:
1)创建表时添加check 束缚:
  1. --mysql
  2. CREATE TABLE Persons
  3. (
  4. P_Id int NOT NULL,
  5. LastName varchar(255) NOT NULL,
  6. FirstName varchar(255),
  7. Address varchar(255),
  8. City varchar(255),
  9. CHECK (P_Id>0)
  10. )
  11. --SQL Server / Oracle / MS Access:
  12. CREATE TABLE Persons
  13. (
  14. P_Id int NOT NULL CHECK (P_Id>0),
  15. LastName varchar(255) NOT NULL,
  16. FirstName varchar(255),
  17. Address varchar(255),
  18. City varchar(255)
  19. )
复制代码
2)已创建的表添加check 束缚
  1. ALTER TABLE Persons
  2. ADD CHECK (P_Id>0)
复制代码
3)已创建的表中删除check 束缚
  1. ALTER TABLE Persons
  2. DROP CHECK chk_Person
复制代码
6)default 束缚

作用:

实例:
1)创建表时添加default 束缚:
  1. CREATE TABLE Persons
  2. (
  3.     P_Id int NOT NULL,
  4.     LastName varchar(255) NOT NULL,
  5.     FirstName varchar(255),
  6.     Address varchar(255),
  7.     City varchar(255) DEFAULT 'Sandnes'
  8. )
复制代码
2)已创建的表添加default 束缚
  1. ALTER TABLE Persons
  2. ALTER City SET DEFAULT 'SANDNES'
复制代码
3)已创建的表中删除default 束缚
  1. ALTER TABLE Persons
  2. ALTER City DROP DEFAULT
复制代码
14.create index 语句

作用:

语法:
  1. --在表上创建一个简单的索引。允许使用重复的值:
  2. CREATE INDEX index_name
  3. ON table_name (column_name)
  4. --在表上创建一个唯一的索引。不允许使用重复的值
  5. CREATE UNIQUE INDEX index_name
  6. ON table_name (column_name)
复制代码
实例:
1)在 “Persons” 表的 “LastName” 列上创建一个名为 “PIndex” 的索引:
  1. CREATE INDEX PIndex
  2. ON Persons (LastName)
复制代码
2)如果您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
  1. CREATE INDEX PIndex
  2. ON Persons (LastName, FirstName)
复制代码
15.SQL drop

作用:

语法:
  1. -----DROP INDEX 语句用于删除表中的索引。
  2. --MS Access
  3. DROP INDEX index_name ON table_name
  4. --DB2/Oracle
  5. DROP INDEX index_name
  6. -- MS SQL Server
  7. DROP INDEX table_name.index_name
  8. --MySQL
  9. ALTER TABLE table_name DROP INDEX index_name
  10. ----DROP TABLE 语句用于删除表。
  11. DROP TABLE table_name
  12. ----DROP DATABASE 语句用于删除数据库。
  13. --DROP DATABASE database_name
  14. ----只删除表中的数据,不删除表本身
  15. TRUNCATE TABLE table_name
复制代码
16.SQL alter table 语句

作用:

语法:
  1. --在表中添加列
  2. ALTER TABLE table_name
  3. ADD column_name datatype
  4. --删除表中的列
  5. ALTER TABLE table_name
  6. DROP COLUMN column_name
  7. --改变表中列的数据类型
  8. ALTER TABLE table_name
  9. MODIFY COLUMN column_name datatype
复制代码
17.SQL auto increment 字段

作用:

语法:
  1. --MySQL
  2. CREATE TABLE Persons
  3. (
  4. ID int NOT NULL AUTO_INCREMENT,
  5. LastName varchar(255) NOT NULL,
  6. FirstName varchar(255),
  7. Address varchar(255),
  8. City varchar(255),
  9. PRIMARY KEY (ID)
  10. )
  11. --SQL Server
  12. CREATE TABLE Persons
  13. (
  14. ID int IDENTITY(1,1) PRIMARY KEY,
  15. LastName varchar(255) NOT NULL,
  16. FirstName varchar(255),
  17. Address varchar(255),
  18. City varchar(255)
  19. )
  20. --Access
  21. CREATE TABLE Persons
  22. (
  23. ID Integer PRIMARY KEY AUTOINCREMENT,
  24. LastName varchar(255) NOT NULL,
  25. FirstName varchar(255),
  26. Address varchar(255),
  27. City varchar(255)
  28. )
  29. --Oracle
  30. CREATE SEQUENCE seq_person
  31. MINVALUE 1
  32. START WITH 1
  33. INCREMENT BY 1
  34. CACHE 10
复制代码
18.SQL 视图

作用:

语法:
  1. CREATE VIEW view_name AS
  2. SELECT column_name(s)
  3. FROM table_name
  4. WHERE condition
  5. ---注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。
复制代码
实例:
1)视图 “Current Product List” 会从 “Products” 表列出全部正在利用的产品(未停产的产品)。
  1. --创建视图
  2. CREATE VIEW [Current Product List] AS
  3. SELECT ProductsID,ProductName
  4. FROM Products
  5. WHERE Discontinued=No
  6. ---查询视图
  7. SELECT * FROM [Current Product List]
复制代码
2)更新视图:
  1. CREATE OR REPLACE VIEW view_name AS
  2. SELECT column_name(s)
  3. FROM table_name
  4. WHERE condition
复制代码
3)删除视图
  1. DROP VIEW view_name
复制代码
19.SQL null值

作用:

如何测试 NULL 值

实例:
1)选取在 “Address” 列中带有 NULL 值的记录:
  1. SELECT LastName,FirstName,Address FROM Persons
  2. WHERE Address IS NULL
复制代码
2)选取在 “Address” 列中不带有 NULL 值的记录
  1. SELECT LastName,FirstName,Address FROM Persons
  2. WHERE Address IS NOT NULL
复制代码
第三章 SQL函数


第一节 SQL date 函数

SQL Date 数据类型

MySQL 利用下列数据类型在数据库中存储日期或日期/时间值:

SQL Server 利用下列数据类型在数据库中存储日期或日期/时间值:

MySQL Date 函数

下面的表格列出了 MySQL 中最重要的内建日期函数:
函数描述NOW()返回当前的日期和时间CURDATE()返回当前的日期CURTIME()返回当前的时间DATE()提取日期或日期/时间表达式的日期部分EXTRACT()返回日期/时间的单独部分DATE_ADD()向日期添加指定的时间间隔DATE_SUB()从日期减去指定的时间间隔DATEDIFF()返回两个日期之间的天数DATE_FORMAT()用不同的格式显示日期/时间 SQL Server Date 函数

下面的表格列出了 SQL Server 中最重要的内建日期函数:
函数描述GETDATE()返回当前的日期和时间DATEPART()返回日期/时间的单独部分DATEADD()在日期中添加或减去指定的时间间隔DATEDIFF()返回两个日期之间的时间CONVERT()用不同的格式显示日期/时间 第二节 SQL null 函数

  1. --SQL Server / MS Access
  2. SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
  3. FROM Products
  4. --Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:
  5. SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
  6. FROM Products
  7. --Mysql
  8. SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
  9. FROM Products
  10. -或
  11. SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
  12. FROM Products
复制代码
第三节 aggregate 函数

1.AVG() - 返回平均值

作用:

语法:
  1. SELECT AVG(column_name) FROM table_name
复制代码
演示:
1)从 “access_log” 表的 “count” 列获取平均值:

2)选择访问量高于平均访问量的 “site_id” 和 “count”:

2.COUNT() - 返回行数

作用:

语法:
  1. --返回指定列的值的数目(NULL 不计入)
  2. SELECT COUNT(column_name) FROM table_name;
  3. --返回表中的记录数
  4. SELECT COUNT(*) FROM table_name;
  5. --返回指定列的不同值的数目:
  6. SELECT COUNT(DISTINCT column_name) FROM table_name;
复制代码
演示:
1)计算 “access_log” 表中 “site_id”=3 的总访问量:

2)计算 “access_log” 表中总记录数:

3)计算 “access_log” 表中不同 site_id 的记录数:

3.FIRST() - 返回第一个记录的值

作用:

语法:
  1. --只有 MS Access 支持 FIRST() 函数。
  2. SELECT FIRST(column_name) FROM table_name;
  3. --SQL Server
  4. SELECT TOP 1 column_name FROM table_name
  5. ORDER BY column_name ASC;
  6. --MySQL
  7. SELECT column_name FROM table_name
  8. ORDER BY column_name ASC
  9. LIMIT 1;
  10. --Oracle
  11. SELECT column_name FROM table_name
  12. ORDER BY column_name ASC
  13. WHERE ROWNUM <=1;
复制代码
演示:
1)选取 “Websites” 表的 “name” 列中第一个记录的值:

4.LAST() - 返回末了一个记录的值

作用:

语法:
  1. --MS Access 支持 LAST() 函数。
  2. SELECT LAST(column_name) FROM table_name;
  3. --SQL Server
  4. SELECT TOP 1 column_name FROM table_name
  5. ORDER BY column_name DESC;
  6. --MySQL
  7. SELECT column_name FROM table_name
  8. ORDER BY column_name DESC
  9. LIMIT 1;
  10. --Oracle
  11. SELECT column_name FROM table_name
  12. ORDER BY column_name DESC
  13. WHERE ROWNUM <=1;
复制代码
演示:
1)选取 “Websites” 表的 “name” 列中末了一个记录的值:

5.MAX() - 返回最大值

作用:

语法:
  1. SELECT MAX(column_name) FROM table_name;
复制代码
演示:
1)从 “Websites” 表的 “alexa” 列获取最大值:

6.MIN() - 返回最小值

作用:

语法:
  1. SELECT MIN(column_name) FROM table_name;
复制代码
演示:
1)从 “Websites” 表的 “alexa” 列获取最小值:

7.SUM() - 返回总和

作用:

语法:
  1. SELECT SUM(column_name) FROM table_name;
复制代码
演示:
1)查找 “access_log” 表的 “count” 字段的总数:

第四节 scalar 函数

1.UCASE() - 将某个字段转换为大写

作用:

语法:
  1. SELECT UCASE(column_name) FROM table_name;
复制代码
演示:
1)从 “Websites” 表中选取 “name” 和 “url” 列,并把 “name” 列的值转换为大写:

2.LCASE() - 将某个字段转换为小写

作用:

语法:
  1. SELECT LCASE(column_name) FROM table_name;
复制代码
演示:
1)从 “Websites” 表中选取 “name” 和 “url” 列,并把 “name” 列的值转换为小写:

3.MID() - 从某个文本字段提取字符,MySql 中利用

作用:

语法:
  1. SELECT MID(column_name,start[,length]) FROM table_name;
  2. --column_name        必需。要提取字符的字段。
  3. --start        必需。规定开始位置(起始值是 1)。
  4. --length        可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。
复制代码
演示:
1)从 “Websites” 表的 “name” 列中提取前 2个字符:

4.LEN() - 返回某个文本字段的长度

作用:

语法:
  1. SELECT LEN(column_name) FROM table_name;
  2. --MYSQL
  3. SELECT LENGTH(column_name) FROM table_name;
复制代码
自我先容一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到如今。
深知大多数Linux运维工程师,想要提升技能,每每是自己摸索发展大概是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术故步自封!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。





既有适合小白学习的零基础资料,也有适合3年以上履历的小同伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习条记、源码讲义、实战项目、解说视频,并且后续会连续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)


最全的Linux教程,Linux从入门到夺目
======================

第一份《Linux从入门到夺目》466页
====================
内容简介
====
本书是获得了许多读者好评的Linux经典脱销书**《Linux从入门到夺目》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者先容了Linux 的基础应用、体系管理、网络应用、娱乐和办公、程序开发、服务器设置、体系安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
   需要《Linux入门到夺目》、《linux体系移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+批评
  一个人可以走的很快,但一群人才气走的更远。岂论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都欢迎扫码加入我们的的圈子(技术交换、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习发展!

x教程,Linux从入门到夺目
======================

第一份《Linux从入门到夺目》466页
====================
内容简介
====
本书是获得了许多读者好评的Linux经典脱销书**《Linux从入门到夺目》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者先容了Linux 的基础应用、体系管理、网络应用、娱乐和办公、程序开发、服务器设置、体系安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
   需要《Linux入门到夺目》、《linux体系移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+批评
  一个人可以走的很快,但一群人才气走的更远。岂论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都欢迎扫码加入我们的的圈子(技术交换、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习发展!
[外链图片转存中…(img-P6k6Xij3-1712549491510)]

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4