(以下内容是本人在准备面试时从相关网站整理出来的数据库知识汇总,实际面试做题时只遇到很简单的题目,贴在这里供日后自己回顾和大家参考)
1、SQL(Structured Query Language):结构化查询语言。SQL使我们有能力访问数据库,SQL是一种ANSI(美国国家标准化组织)的标准计算机语言。SQL对大小写不敏感,语句末可加分号。
2、SQL能做什么? ------增删改查
- 面向数据库执行查询;
- 可从数据库取回数据;
- 可在数据库中插入新的记录;
- 可更新数据库中的数据;
- 可从数据库删除记录;
- 可创建新数据库;
- 可在数据库中创建新表;
- 可在数据库中创建存储过程;
- 可在数据库中创建视图;
- 可以设置表、存储过程和视图的权限
3、SQL是一门ANSI的标准计算机语言,用来访问和操作数据库系统。SQL语句用于取回和更新数据库中的数据。SQL可与数据库程序协同工作,比如MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase以及其他数据库系统。
4、RDBMS指的是关系型数据库管理系统。RDBMS是SQL的基础,同样也是所有现代数据库系统的基础。RDBMS中的数据存储在表(tables)中,表是相关的数据项的集合,由行和列组成。
5、SQL可分为两个部分:
- 数据操作语言(DML):SELECT、DELETE、INSERT INTO、UPDATE
- 数据定义语言(DDL):CREATE、DROP、ALTER
6、SQL SELECT 语句:
- SELECT * FROM table;
- SELECT LastName,FirstName FROM Persons;
7、SQL SELECT DISTINCT语句:
- SELECT DISTINCT LastName FROM Persons;
8、SQL WHERE 子句:
操作符有(=、<>、>、<、>=、<=、BETWEEN、LIKE、IN、NULL)
- SELECT * FROM Persons WHERE City =’Beijing’;
- SELECT * FROM Persons WHERE Year>1965;
9、SQL AND & OR 运算符:
- SELECT * FROM Persons WHERE (FirstName=’Thomas’ OR FirstName=’William’) AND LastName=’Carter’
10、SQL ORDER BY子句:(顺序ASC、倒序DESC)
- SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
11、SQL 函数:
- AVG():返回数值列的平均值,不包括null值;
- COUNT():返回匹配指定条件的行数;
- SELECT COUNT(Store_Name) FROM Store_Information WHERE Store_Name IS NOT NULL;
- SELECT COUNT(DISTINCT Store_Name) FROM Store_Information;
3. MAX():返回一列中的最大值,null值不包括在计算中;
4. MIN():返回一列中的最小值,null值不包括在计算中;
- SELECT MIN(Salary) FROM Store_Information;
5. SUM() :返回数值列的总数(总额);
- SELECT SUM(Sales) FROM Store_Information;
6. FIRST():返回指定的字段中第一个记录的值;
- SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders;
7. LAST():返回指定的字段中最后一个记录的值;
- SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders;
8. UCASE():把字段的值转换为大写;
- SELECT UCASE(LastName) AS LN, FirstName FROM Persons;
9. LCASE():把字段的值转换为小写;
- SELECT LCASE(LastName) AS LN, FirstName FROM Persons;
10. MID():从文本字段中提取字符;
- SELECT MID(City,1,3) AS SC FROM Persons;
11. LEN():返回文本字段中值的长度;
- SELECT LEN(City) AS LengthOfCity FROM Persons;
12. ROUND():把数值字段舍入为指定的小数位数;
- SELECT ProductName, ROUND(UnitPrice,1) AS UP FROM Products;
13. NOW():返回当前的日期和时间;
- SELECT ProductName, UnitPrice, Now() as PerDate FROM Products;
14. FORMAT():对字段的显示进行格式化;
- SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDate FROM Products
12、SQL CONVERT()函数:
CONVERT()函数是把日期转换为新数据类型的通用函数,可以用不同的格式显示日期/时间数据。
CONVERT(data_type(length),data_to_be_converted,style)
例:CONVERT(CHAR(10),birthday,120)
isnull(convert(char(10),birthday,120), ‘日期不详’)
如果birthday为空,则显示‘日期不详’;否则显示yyyy-mm-dd
data_type(length)规定目标数据类型(带有可选的长度);data_to_be_converted含有需要转换的值;style规定日期/时间的输出格式
13、SQL FORMAT函数:
用于对字段的显示进行格式化。SELECT FORMAT(column_name,format) FROM table_name
例:SELECT FORMAT(Now(),’YYYY-MM-DD’) as PerDate;
14、SQL GROUP BY子句:
- SELECT Store_Name, SUM(Salary) FROM Store_Information GROUP BY Store_Name;
15、SQL HAVING 子句:
- SELECT Store_Name,SUM(Salary) FROM Store_Information GROUP BY Store_Name HAVING SUM(Salary) >1500;
16、SQL alias 别名(空格):
- SELECT A1.Store_Name Store, SUM(A1.Salary) ‘Total Salary’ FROM Store_Information A1 Group by A1.Store_Name;
17、SQL 表格连接(join): inner join | cross join | ,
SELECT G.Region_Name,SUM(S.Sales) SALES FROM Store_Information S,Geography G WHERE S.Store_Name = G.Store_Name GROUP BY G.Region_Name;
18、SQL <