SQL基础语句

/* 语法:SELECT query list from table name 属性: 1 、查询列表:表中的字段、常量值、语句、函数 2 、查询结果为虚拟表 */--运行查询前必须打开指定的库,employees、USM员工、SELECTlast_nameFRO员工、last_name、salary、email FROM EMPLOYEES,SELECT*FROM EMPLOYEES;--顺序与表中字段相同SELECT1 00;SELECT'JOIN';SELECT1 00*9 9 ;SELECTVE RSION();--8 .0.1 1 /*优点: 1 . 2 个名字很容易理解。
他们*/SELECT1 00*7 7 AS 结果哈哈;姓氏 姓氏,名字 名字 FROM 员工,SELECT1 0 0*7 7 结果哈哈,姓氏 姓氏,名字 FROM 员工;--salary ASOUTputFROM 员工;报错——因为是关键字,所以如果别名中有关键字,请加双引号或者单引号。
SELECTsalaryAS"result" FROMEmployees;SELECTDISTINCTdepartment_idFROMemployees;/*1 .+数字只有一个功能:select运算符1 00+9 0;这个加法是2 .SELECTNULL+1 0;--只要一侧为null,结果就肯定为null。
*/--error❌:last_name+first_name AS 员工姓名; SELECTCONCAT(姓氏, 名字) AS nameEmployees, DESC 部门, SELECT *from 部门; SELECTDISTINCTJob_idFROMemployees;--commission_pct 的某些值是 NULL - 因为 NULL 和所有关联的值都是 NULL - 所以下面的结果可以是 NULLSELECTCONCAT(employee_id,',',first_name,'',last_name.e,",",commission_pct)AS "OUT_PUT" FROMEmployees;SELECTIFNULL(commission_pct,0) AS Bonus rate,commission_PCTFROMemployees;-- 如何执行上述查询: SELECTCONCAT(employee_id) ,',',first_name,',',last_name,",",IFNULL(commission_pct,0)) AS"OUT_PUT" FROMEmployees;/*语法: SELECT name FROM table name from querylist with filter criteria。
查询列表: 字段: 常量值: 表达式: 函数 表中分类: 1 . 使用条件表达式过滤条件运算符:><=!= 或 <>>=<= 两个。
用逻辑表达式过滤逻辑运算符: z 函数:条件表达式和&||!或者不是三个。
不同的查询,如 BetWEENANDinisNULL 或未删除 */ SELECT * FROM 员工,工资 > 1 2 000; SELECTemployee_id,department_idFROMemployeesWHEREdepartment_id<>9 0;SELECTlast_na I,salary,commission_pctFROMemployeesWHEREsalary>=1 0000 ANDsalary=2 0000;SELECT* FROMEmployeesWHEREdepartment_id<9>1 1 0orsalary>1 5 000;--或写选择T*FROMEMPLOYEESWHERENOt(department_id=9 0ANDdepartment_id<=1 1 0)concern>1 5 000;/*as属性:通配符一般与通配符一起使用 %:任意个字符,其中0个字符:1 个字符 */--%代表人物卡 *SELECT Last_name FROMEmployeesFROMlocation; LIKE'%a%';last_name,salaryFROMemployeesLAST_nameLIKE'__n_l%';-\字符转义字符 SELECT last_nameFROMemployeesWHEREST_nameLIKE'_%';--或者告诉系统%'ESCAPE'$';/*1 .为了提高表达式的简洁性,使用and和2 包装临界值3 前小后大,不能颠倒顺序*/ SELECT * FROM员工WHEREemployee_id>=1 00ANDemployee_id<=1 2 0;--OR *SELECT FROM员工WHERE员工_id BETWEEN1 :0/AND*1 2 0 BETWEEN员工之间的某个值;我的 0/1 2 0 是列表中某个项目的一个。
属性:1 .in比简单或2 .列表中的值类型必须相同或兼容last_name,job_idFROMEmployeesWHEREjob_idIN('IT_PROG','AD_PRES','AD_VP');/*=或<>不能用于计算空值,因此无效且不为空*/SELECTlast_name,c ommission_pctFROMEmployeesWHEREcommission_pctisnull;last_name,commission_pctFROMEmployeesWHEREcommission_pctisnotnull;--Security Equals 功能:判断是否等于包括null,如果相等则返回true。
可读性低 --isnull:仅判断null值,可读性高。
--写入 = 不可能直接 SELECTLast_name,Commission_pctFROMemployeesWHEREcommission_pct<=>null;SELECT*FROMEmployeesWHEREsalary=>1 2 000;--此 IFN 的注意事项 ULLSELECTlast_name,partment_id,salary1 2 (1 +IFNULL,年薪佣金) FROM员工WHEREemployee_id=1 7 6 ;工资,姓氏FROMemployeesWHEREcommission_pctISNULLANDSalary<1>'IT'ORsalary=1 2 000;DESCdepartments;SELECTDISTIN CTlocation_idFROMdepartments;SELECT*FROM 员工WHEREcommission_name LIKE 字段,并且 AFTER AND 为 NULL

sql常用九大命令语句

SQL中常用的核心命令可以分为数据定义、数据操作和数据控制等几类。
常用的核心语句包括 CREATE、ALTER、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT 和 REVOKE 等。
具体功能和应用如下: 1 .数据定义语言(DDL):用于定义或修改数​​据库对象结构。
1 . CREATE:创建数据库、表、视图等对象。
示例:“CREATETABLE 学生(学号 INT,姓名 VARCHAR(2 0),年龄 INT);”2 . ALTER:更改现有数据库对象的结构。
示例:`ALTERTABLE 学生 ADDCOLUMN 性别 VARCHAR(2 );`3 . DROP:删除数据库、表和其他对象(谨慎使用)。
示例:“可删除学生;” 2 .数据操作语言(DML):用于查询、添加、修改和删除数据。
1 . SELECT: Query data in the table, which is the most commonly used SQL statement.示例:“从学生中选择姓名、年龄,其中年龄 > 1 8 ;”2 . INSERT:向表中插入新数据例:`INSERTINTO学生(学号、姓名、年龄)VALUES(1 ,'张三',2 0); ”3 . UPDATE:更改表中现有数据。
示例:“UPDATE Student SET Age = 2 1 WHERE Student number = 1 ; 4 、DELETE:删除表中指定数据(可与WHERE条件结合)例:`DELETEFROM学生WHERE学号=1 ; 3 . 数据控制语言(DCL):用于管理数据库权限 1 . GRANT:授予用户操作权限 例:“GRANTSELECT,INSERTON 学生TO 普通用户;” 2 . REVOKE:撤销授予的权限。
示例:“REVOKEINSERTON 学生来自普通用户;”附加说明:以上命令是SQL的基本核心,但不同的数据库(如MySQL、Oracle、SQLServer)可能在语法细节上存在差异,必须结合具体的数据库文档使用。

SQL 入门大全

《SQL入门教程》是适合初学者的系统学习资源。
它基于SQL:2 01 6 标准,涵盖了六种传统数据库(Oracle、MySQL、SQLServer、PostgreSQL、Db2 、SQLite)的语法和差异。
下面详细介绍: 1 .课程主要内容: 基本查询语句涵盖了SELECT查询的主要语法,包括字段选择、去重(DISTINCT)、别名(AS)等操作。
示例:从student表中查询姓名和年龄,并将字段重命名为student_name和student_age。
条件过滤和排序 使用WHERE子句实现条件过滤,支持比较运算符(=、<>、>)、逻辑运算符(AND、OR、NOT)和模糊匹配(LIKE、IN)。
使用 ORDERBY 对结果按单列或多列进行排序,支持升序(ASC)和降序(DESC)。
分组汇总和聚合函数使用GROUPBY对数据进行分组并组合聚合函数(COUNT、SUM、AVG、MAX、MIN)来计算统计值。
示例:统计各班次的平均分或统计订单总金额超过1 000的客户数量。
多表连接查询讲解了内连接(INNERJOIN)、左外部连接(LEFTJOIN)、右外部连接(RIGHTJOIN)、全外部连接(FULLJOIN)的适用场景。
示例:匹配学生表和成绩表,查询学生姓名和对应科目成绩。
子查询和集合操作 子查询分为标量子查询、行子查询和表子查询,用于嵌套查询条件或结果集。
集合操作包括 UNION、INTERSECT 和 EXCEPT,用于执行多个结果集的并集或过滤。
常用函数应用字符串函数:如CONCAT(拼接)、SUBSTRING(截取)、UPPER/LOWER(大小写转换)。
日期函数:如CURRENT_DATE(当前日期)、DATE_ADD(日期加减)、DATEDIFF(日期差)。
数学函数:如ROUND(四舍五入)、CEILING/FLOOR(向上/向下四舍五入)。
2 .数据操作与维护数据插入(INSERT)支持单行插入(INSERTINTO...VALUES)和多行插入(INSERTINTO...SELECT),并讲解批量插入的优化技巧。
数据更新(UPDATE)通过WHERE条件定位需要改变的记录,并结合子查询实现动态更新。
示例:将分数低于 6 0 分的记录升级为“不及格”。
删除数据(DELETE)根据条件删除表中的数据,强调删除前备份的重要性。
比较 TRUNCATE(快速删除表)和 DELETE 语句之间的差异。
合并操作(MERGE)实现“存在则更新,不存在则插入”的逻辑,适用于数据同步场景。
3 、视图和表结构的管理视图操作创建视图(CREATEVIEW)可以简化复杂的查询并隐藏底层表结构的细节。
示例:创建“高分学生视图”,仅包含分数高于 9 0 分的学生信息。
创建数据定义语言 (DDL) 表:使用 CREATETABLE 定义字段类型和约束(PRIMARYKEY、FOREIGNKEY、NOTNULL)。
表修改:添加/删除字段、通过 ALTERTABLE 更改字段类型或约束。
消除table:使用 DROPTABLE 删除表结构和数据,或 TRUNCATETABLE 仅删除数据。
4 .比较多个数据库之间的差异语法差异分页查询:MySQL使用LIMIT,Oracle使用ROWNUM,SQL Server使用OFFSET-FETCH。
字符串连接:MySQL使用CONCAT,Oracle使用||而SQLServer使用+。
窗口函数的功能支持:PostgreSQL和SQLServer支持完整的窗口函数(如ROW_NUMBER()),MySQL8 .0+逐渐支持。
递归查询:Oracle和PostgreSQL支持WITHRECURSIVE,MySQL8 .0+引入CTE来实现递归。
5 、学习收益总结 技能覆盖:从基础查询到高级功能,从单表操作到多表关联,形成完整的知识体系。
面向实践:通过案例展示六种数据库的语法差异,提高跨数据库开发技能。
标准兼容性:基于SQL:2 01 6 标准,保证知识的前瞻性和通用性。
本教程结合理论讲解和实际案例,帮助初学者快速掌握基本的SQL技能,了解不同数据库的实现差异。
它适合作为入门的首选资源。