关闭

SQL Demo

332人阅读 评论(0) 收藏 举报
分类:

--id name interest 
--SELECT、UPDATE、DELETE、INSERT 增删改查
--SQL 对大小写不敏感!
--SELECT 列名称(*) FROM 表名称
select * from tab 
select * from tab where id = 2
select id from tab
select id,name from tab 
select DISTINCT name from tab --select DISTINCT(name) from tab 
--  <>
select name,id from tab where id BETWEEN 2 and 3
select name,id from tab where id like '2%' --where id <> 2,id!=2 ,interest ='游泳'
select * from tab where name='bbb' and interest='游泳' -- or 
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
--ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
SELECT * FROM tab ORDER BY id desc
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
INSERT INTO tab VALUES (4, 'Bill', 'Xuanwumen 10')
INSERT INTO tab VALUES ('6', 'Bill', 'Xuanwumen 10')
INSERT INTO tab (id, name) VALUES (9, 'test') --插入某些列
UPDATE tab SET name ='123' WHERE id = 2
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson' --修改多列
--DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM tab WHERE id = 9 --delete * from tab
select * from tab LIMIT 3 --top 3 
SELECT * FROM tab WHERE name LIKE 'a%' -- '%b',%aa%,NOT LIKE '%lon%' ,%:替代一个或多个字符
--  _:仅替代一个字符,LIKE '_eorge'
SELECT * FROM tab WHERE name IN ('aaa','bbb')
--通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
SELECT name as name_a FROM tab 
SELECT tab.id, tab2.name FROM tab, tab2 WHERE tab2.id=3 or tab2.name='bbb'
SELECT a.id, b.name FROM tab as a, tab2 as b WHERE a.name='aaa' or b.name='bbb'
SELECT LastName AS Family, FirstName AS Name FROM Persons
--SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
--主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 


SELECT Persons.LastName, Persons.FirstName, Orders.OderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
--JOIN: 如果表中有至少一个匹配,则返回行
--LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
--RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
--FULL JOIN: 只要其中一个表中存在匹配,就返回行
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
--UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA


--在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
--合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。
--GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer --delete 


--not bull;
--UNIQUE 约束唯一标识数据库表中的每条记录。
--PRIMARY KEY 约束唯一标识数据库表中的每条记录。
--一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
--SQL CHECK 约束 :CHECK 约束用于限制列中的值的范围。
--通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
--Auto-increment 会在新纪录插入表中时生成一个唯一的数字。


--SQL 函数
avg,count,first,last,max,min,sum....
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders
--COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
char,varchar与text区别:
总结起来,有几点:
经常变化的字段用varchar
知道固定长度的用char
尽量用varchar
超过255字符的只能用varchar或者text
能用varchar的地方不用text

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:734148次
    • 积分:11169
    • 等级:
    • 排名:第1464名
    • 原创:454篇
    • 转载:83篇
    • 译文:1篇
    • 评论:121条
    最新评论