sql快速入门传送门

1、要求目标表table2已经存在数据库,单纯的插入数据

insert into table2(field1,field2)select value1,vlues2 from table1  

2、要求目标表table2不存在数据库,通过新创建table2进行指定数据字段复制

select value1,value2 into table2 from table1     

3、len()函数返回文本字段中值的长度

具体事例

SELECT LEN(column_name) FROM table_name   可以直接进行判断操作

4、round()函数用于指定字段数值的舍为指定的小数位数

select round(column_name,decimal) from table   指定需要进行舍入的字段和保存位数 必填

5、now()函数用来返回当前数据库操作的时间 getDate()函数用来获取sql server获取当前操作数据库时间

6、format()函数用于转换当前日期数据格式

format(column_name,format)  column_name 需要转换的字段   format 需要转成的数据格式,如 "YYYY-MM-DD"

7、create (unique)index 用于在数据表中创建唯一/不唯一的表索引

事例: create index as index_name on table(Column_name DESC) 索引多个列可以直接使用功能逗号进行隔开即可

8、数据库视图

创建视图:create  or  replace view  view_name as select *  from student

删除视图:drop  view  view_name

查询视图:select * from view_name 

视图是虚拟的数据表结构,不存储数据,是虚拟的表,其中单视图一般用来查询和修改,多视图一般只用来查询,不做修改操作

作用:

安全高效定制

①简化了操作,把经常使用的数据定义为视图。

②安全性,用户只能查询和修改能看到的数据。

③逻辑上的独立性,屏蔽了真实表的结构带来的影响。

9、group by用于结合合计函数,根据一个或者几个列对数据函数进行分组 ,比如sum常常需要添加group by

事例:SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate    对统一名称数据进行汇总,不会显示多个

10、delete 对某些表数据进行删除

DELETE FROM 表名称 WHERE 列名称 = 值
delete直接删除表,只会想表数据进行删除,不会删除表结构、属性和索引

11、drop 对某些表结构和数据进行删除索引、表和数据库

drop FROM 表名称 
DROP INDEX  删除表的字段索引   

DROP INDEX table_name.index_name

12、having使用主要原因是where 无法与合并函数一起使用

SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer='Bush' OR Customer='Adams'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500    having在group by的后面进行添加作为过滤条件

13、insert into 用于向已经数据库表中插入数据使用

insert into  table-name(field,field2)values(value1,value2)

14、like操作符用于在 WHERE 子句中搜索列中的指定模式

select * from  table-name where column-name like pattern

15、distinct 表中,可能会包含重复值,distinct 操作符用来筛选中返回不重复的值

select distinct column_name from table-name order by  column-name

16、truncate TRUNCATE TABLE table_name

truncate用于删除表的数据,但仍保留表的数据结构,truncate 不能删除行数据,要删就要把表清空

17、update用于更新表的数据

update   table  set column-name = column-name1 where value = value1

18、Top返回指定数据的条数

sql sever的语法

SELECT TOP number|percent column_name(s)
FROM table_name    number用于指定的数据条数或者数据总数的百分数   等同于limit进行限制返回的数据条数

orcal 语法

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number   直接使用功能rownum进行指定返回的数据条数

19、like操作符用于在WHERE 子句中搜索列中的指定模式

“%” 可用于定义通配符(模式中缺少的字母)

select * form  where column-name like “N%”   前面模糊匹配  %N后面模糊匹配   %N%中间模糊

20、SQL通配符

% 替代一个或者多个字符

_仅替代一个字符

SELECT * FROM Persons
WHERE FirstName LIKE '_eorge'  选取第一个字符之后是eorge的数据
[charlist]字符列中的任何单一字符

SELECT * FROM Persons
WHERE City LIKE '[ALN]%'  挑选出居住城市以A  L N开头的
[^charlist]或者[!charlist]表示不在字符列表的任何单一字符
SELECT * FROM Persons  where city like '[!ALN]'

21、in操作符允许我们在where之后添加多个规定值

select * from table where in('value1','value2')

22、between…and…查询出介于两者之间的值,但是对于不同的数据库查询的结果可能有差异

有的可能全包含,有的全不包含,有的左包含,有的右包含

SELECT * FROM Persons
WHERE LastName
BETWEEN 'Adams' AND 'Carter'   查询字母顺序显示介于该两者的信息
如果想不在该两者,一般直接前面加上not即可

23、Alias直接指定别名

SELECT column_name(s) as akias-name
FROM table_name AS alias_name  通过as或者不使用as直接为表或者列指定别名

24、join和key

通过表的外键连接表数据进行查询

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

—–内连接查询

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName   两表直接使用内部连接  然后在进行排序输出

25、inner join 内部连接,等同于join 常搭配join on

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

26、left join 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName    返回左表所有的行,右表没有匹配的直接为空

27、right join关键字会根据右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName   右表所有行都会进行显示,左表没有的数据直接不显示

28、full join 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。别称是 full outer join

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName    只要是两表出现的都会返回
FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行

29、union用于连接表查询的结果集

规范:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同

UNION 命令只会选取不同的值,而union all会列出所有的相同值

30、select into 语句用于从一个表中选取数据,然后把数据插入另一个表中

IN 子句可用于向另一个数据库中拷贝表

SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons    直接用于数据库表的拷贝

31、create datebase用于直接创建数据库

create table xxx 用于直接创建数据库表,需要指定字段名称和字段类型

CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

32、constraints增加表的约束条件 可以在创建表的时候进行添加,也可以在之后进行alter table进行修改

NOT NULL   直接在需要进行约束的字段后面添加即可
Plain Text
UNIQUE   可以直接在需要约束字段后面添加,或者最后添加unique(字段)  后面直接使用进行多字段约束  CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
musql:DROP INDEX uc_PersonID  用于撤销响应的约束条件    其他:DROP CONSTRAINT uc_PersonID
PRIMARY KEY   直接创建添加主键,主键需要满足唯一,不为空
FOREIGN KEY  

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) 指定外键然后添加连接
)

CHECK 可以直接在需要进行检查的字段后面添加,多个字段需要指定别名

CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
DEFAULT  指定默认值

32、create index 用于为表创建索引,作用是不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据

CREATE INDEX index_name
ON table_name (column_name)   直接指定需要索引的列
unique指定索引的唯一性   唯一的索引意味着两个行不能拥有相同的索引值
删除索引    DROP INDEX index_name ON table_name    或者  table.index

33、alter用于改变表的字段或者其他的属性

34、Auto-increment 会在新记录插入表中时生成一个唯一的数字

P_Id int NOT NULL AUTO_INCREMENT,   自动生成主键
MS SQL 使用 IDENTITY 关键字来执行 auto-increment 任务。
默认地,IDENTITY 的开始值是 1,每条新记录递增 1
如:P_Id int PRIMARY KEY IDENTITY,

35、视图view 视图是基于 SQL 语句的结果集的可视化的表

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

36、date()函数 https://www.w3school.com.cn/sql/sql_dates.asp

37、NULL特殊的数据格式 必须使用 IS NULL 和 IS NOT NULL 操作符

38、数据类型 https://www.w3school.com.cn/sql/sql_datatypes.asp

39、UCASE 函数把字段的值转换为大写 lcase函数把字段的值转换成小写

SELECT UCASE(LastName) as LastName,FirstName FROM Persons

40、MID 函数用于从文本字段中提取字符

SELECT MID(City,1,3) as SmallCity FROM Persons   提取每个字段的前三个字符

本文地址:https://blog.csdn.net/baidu_34168157/article/details/107151344