基本数据库操作(面试必背)
查询
- SELECT 列名称 FROM 表名称
- 删除重复值查询:SELECT DISTINCT 列名称 FROM 表名称
- 条件查询:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
- 连接WHERE 子语句:WHERE FirstName=‘Thomas’ AND LastName=‘Carter’
- 排序:SELECT Company, OrderNumber FROM Orders ORDER BY Company (DESC倒序)
- 插入:INSERT INTO table_name (列1, 列2,…可省略) VALUES (值1, 值2,…)
- 修改:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
- 删除:DELETE FROM 表名称 WHERE 列名称 = 值
- TOP 子句:mysql(SELECT TOP 2 FROM table_name)
sqlserve/Orace(SELECT * FROM Persons LIMIT 5) - 搜索像条件的数据:SELECT * FROM Persons WHERE City LIKE ‘N%’
- 一列中插多个数据:SELECT * FROM Persons WHERE LastName IN (‘Adams’,‘Carter’)
- 查询一定范围值得数据:SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
join - join:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P
- INNER join:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM 表1 INNER JOIN 表2 ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName
- LEFT JOIN:从左表返回所有的行,即使在右表没有匹配的行。SELECT column_name(s) FROM 表1 LEFT JOIN 表2 ON 表1.column_name =表2.column_name
- RIGHT JOIN:从左表返回所有的行,即使在右表没有匹配的行。SELECT olumn_name(s) FROM 表1 LEFT JOIN 表2 ON 表1.column_name =表2.column_name
- FULL JOIN:只要其中某个表存在匹配, 关键字就会返回行。
- UNION:合并两个或多个 SELECT 语句的结果集
- 合并两个查询结果:SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 [允许重复的值,请使用 UNION ALL]
创建
- 创建数据库:CREATE DATABASE database_name
- 创建表:CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, … )
- 创建一个唯一的索引:CREATE UNIQUE INDEX index_name ON 表名(列名)
- 创建视图:CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
修改
- 表中添加列:ALTER TABLE table_name ADD column_name datatype
- 表中添加列:ALTER TABLE table_name DROP COLUMN column_name
删除
- 用于 Microsoft SQLJet (以及 Microsoft Access) 的语法:DROP INDEX index_name ON table_name
- 用于 MS SQL Server 的语法:DROP INDEX table_name.index_name
- 用于 IBM DB2 和 Oracle 语法:DROP INDEX index_name
- 删除表:DROP TABLE 表名称
- 删除数据库:DROP DATABASE 数据库名称
- 删除表:TRUNCATE TABLE表名称 (表的结构、属性以及索引也会被删除)
sql注入是做什么的
解释:为了防止用户输入sql语句的拼接,造成数据库查出登录用户的信息,而进入本网站
解决方法:
1.js里验证正则表达式 例如:限定单双引号,等号,括号
2.可以把sql语句变成存储过程的写作
3.在程序中有一个管理员的权限是最高,但是不要把管理员的权限通过数据库交给任何一个人
4.可以把机密的信息进行敏感查询和加密
5.把原始的数据库报错信息进行封装,不让用户看到
6.通过软件或在线平台进行sql注入检测