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
上一篇: MySQL数据导入--loaddata
下一篇: vue request拦截处理