常用sql操作总结_尚硅谷_宋红康
- 格式:pdf
- 大小:341.66 KB
- 文档页数:5
SQL面试用题id 和它的平均工资.5. 查询平均工资最低的部门信息6. 查询平均工资最低的部门信息和该部门的平均工资7. 查询平均工资最高的 job 信息8. 查询平均工资高于公司平均工资的部门有哪些?9. 查询出公司中所有 manager 的详细信息.10. 各个部门中最高工资中最低的那个部门的最低工资是多少11. 查询平均工资最高的部门的 manager 的详细信息: last_name,department_id, email, salary12. 查询 1999 年来公司的人所有员工的最高工资的那个员工的信息.13.返回其它部门中比job_id为‘IT_PROG’部门所有工资都低的员工的员工号、姓名、job_id 以及salary************************answers********************* 1.查询每个月倒数第 2 天入职的员工的信息.select last_name, hire_datefrom employeeswhere hire_date = last_day(hire_date) – 12.查询出 last_name 为 'Chen' 的 manager 的信息.1). 通过两条 sql 查询:select manager_idfrom employeeswhere lower(last_name) = 'chen' --返回的结果为 108select *from employeeswhere employee_id = 1082). 通过一条 sql 查询(自连接):select m.*from employees e, employees mwhere e.manager_id = m.employee_id and st_name = 'Chen'3). 通过一条 sql 查询(子查询):select *from employeeswhere employee_id = (select manager_idfrom employeeswhere last_name = 'Chen')3.查询平均工资高于 8000 的部门 id 和它的平均工资.SELECT department_id, avg(salary)FROM employees eGROUP BY department_idHAVING avg(salary) > 80004. 查询工资最低的员工信息: last_name, salarySELECT last_name, salaryFROM employeesWHERE salary = (SELECT min(salary)FROM employees)5. 查询平均工资最低的部门信息SELECT *FROM departmentsWHERE department_id = (SELECT department_idFROM employeesGROUP BY department_idHAVING avg(salary) = (SELECT min(avg(salary))FROM employeesGROUP BY department_id))6. 查询平均工资最低的部门信息和该部门的平均工资select d.*, (select avg(salary) from employees where department_id = d.department_id)from departments dwhere d.department_id = (SELECT department_idFROM employeesGROUP BY department_idHAVING avg(salary) = (SELECT min(avg(salary))FROM employeesGROUP BY department_id))7. 查询平均工资最高的 job 信息1). 按 job_id 分组, 查询最高的平均工资SELECT max(avg(salary))FROM employeesGROUP BY job_id2). 查询出平均工资等于 1) 的 job_idSELECT job_idFROM employeesGROUP BY job_idHAVING avg(salary) = (SELECT max(avg(salary))FROM employeesGROUP BY job_id)3). 查询出 2) 对应的 job 信息SELECT *FROM jobs。
目录SQL基础学习(一) (5)SQL基础学习(二)SQL SELECT 语句 (6)SQL基础学习(三)SQL distinct (8)SQL基础学习(四)select where (9)SQL基础学习(五)and & or (11)SQL基础学习(六):order by (13)SQL基础学习(七):insert into (15)SQL基础学习(八):Update (19)SQL基础学习(九):DELETE (20)SQL进阶学习(一):TOP (22)SQL进阶学习(二):LIKE (25)SQL进阶学习(三):通配符 (26)SQL进阶学习(四):IN (30)SQL进阶学习(五):BETWEEN (31)SQL进阶学习(六):Alias(别名) (33)SQL进阶学习(七):INNER JOIN (35)SQL进阶学习(八):LEFT JOIN (38)SQL进阶学习(九):RIGHT JOIN (40)SQL进阶学习(十):FULL JOIN (42)SQL进阶学习(十二):SELECT INTO (46)SQL进阶学习(十三):CREATE DATABASE (50)SQL进阶学习(十四):CREATE TABLE (51)SQL进阶学习(十五):NOT LULL UNIQUE PRIMARY KEY (53)SQL进阶学习(十六):PRIMARY KEY (55)SQL进阶学习(十七):CHECK (58)SQL进阶学习(十八):Default (60)SQL进阶学习(十九):CREATE INDEX (62)SQL进阶学习(二十):DROP (62)SQL进阶学习(二十一):ALTER TABLE (63)SQL进阶学习(二十二): AUTO INCREMENT (65)SQL进阶学习(二十三):DATE (67)SQL进阶学习(二十四):NULL (70)SQL进阶学习(二十五):数据类型 (73)SQL进阶学习(二十六):VIEW (75)SQL函数学习(一):内建函数认识 (78)SQL函数学习(二):AVG函数 (79)SQL函数学习(三):COUNT函数 (80)SQL函数学习(四):FIRST()函数 LAST()函数 (81)SQL函数学习(五):MAX()函数 MIN()函数 (82)SQL函数学习(六):SUM()函数 (83)SQL函数学习(七):GROUP BY (84)SQL函数学习(九):UPPER() and LOWER() (86)SQL函数学习(十):SUBSTRING() 函数 (88)SQL函数学习(十一):LEN() Rtrim() Ltrim() Upper() Lower() (89)SQL函数学习(十二):ROUND函数 (91)SQL函数学习(十三):LEFT()and RIGHT()函数 (92)SQL函数学习(十四):REPLACE (93)SQL函数学习(十五):CHARINDEX()and patindex() (95)SQL函数学习(十六):STUFF()函数 (98)SQL函数学习(十七):STR()函数 (100)SQL函数学习(十八):FLOOR()和CEILING() (101)SQL函数学习(十九):CAST()函数和CONVERT()函数 (104)SQL函数学习(二十):常用数学函数 (105)SQL函数学习(二十一):配置函数 (109)SQL自定义函数学习(一):创建标量函数 (110)SQL自定义函数学习(二):创建单语句表值型函数 (113)SQL自定义函数学习(三):多语句表值型函数 (114)SQL自定义函数学习(四):修改和删除和管理 (117)SQL补充学习(一):CROSS JOIN (119)SQL补充学习(二):自身连接 (121)SQL补充学习(三):INTERSECT语句和EXCEPT语句 (122)SQL补充学习(四):在select语句中使用子查询 (124)SQL补充学习(五):在from语句中使用子语句 (125)SQL补充学习(六):在where语句中使用子查询 (126)SQL补充学习(七):IN语句的子查询 (127)SQL补充学习(八):在多表查询中使用子查询 (128)SQL补充学习(九):使用EXISTS语句的子查询 (129)SQL补充学习(十):ANY运算符和ALL运算符的子查询 (130)SQL补充学习(十一):Having语句的子查询 (132)SQL补充学习(十二):嵌套子查询 (133)SQL补充学习(十三):CASE语句交叉表查询 CASE (135)SQL补充学习(十四):插入多条数据信息 (137)SQL补充学习(十五):select和select into语句插入数据 (138)SQL补充学习(十六):使用子查询插入数据信息 (141)SQL补充学习(十七):使用SQL删除数据 (142)SQL补充学习(十七):使用SQL修改数据 (145)SQL补充学习(十八):SQL server中的事务 (148)SQL补充学习(二十):使用SQL维护数据库和数据库表 (151)SQL经验分享(一):找出某列中重复值 (154)SQL经验分享(二)取得数据库中所有的表名、字段名以及字段属于哪个表 (157)SQL经验分享(三):获取用户信息 (161)SQL流程控制语句学习(一):变量及控制语句种类 (162)SQL流程控制语句学习(二):begin...end if...else case.. (164)SQL流程控制语句学习(三):while break continue (168)SQL流程控制语句学习(四):goto waitfor (170)SQL数据库常用的语句总结 (171)SQL server经验分享:SQLSERVER 被标记为“可疑”的数据库处理方法 (176)SQL2005 TXT导入的长度问题 (177)SQL2005查询中增加序号列 (178)SQL基础学习(一)1 .SQL语法1.1数据库表一个数据库通常包含一个或多个表。
SQL基础知识要点笔记归纳总结01.01_SQL基础(SQL的使用)(掌握)∙A:数据库的开启与关闭o net start mysql▪启动数据库o net stop mysql▪关闭数据库∙B:数据库的登录与退出o登录数据库▪mysql -u用户名-p密码▪例子:mysql -uroot -proot▪mysql -h数据库服务器器地址-u⽤用户名-p密码▪例子:mysql -h127.0.0.1 -uroot -proot▪mysql --host=数据库服务器地址--port=端口号-u用户名-p密码▪mysql --host=127.0.0.1 --port=3306 -uroot -prooto退出数据库▪quit;▪exit;o使用数据库▪use 数据库名;C:数据库备份与还原o备份▪mysqldump -u⽤户名-p密码数据库> 文件的路径(指定文件路径)▪需要自己指定文件,mysql不会自己生成备份文件o还原▪source 导入文件的路径.▪还原的时候需要先登录MySQL,并选中对应的数据库.∙D:用户密码的修改o修改管理员密码o▪需要在未登录mysql的情况下操作.o修改普通⽤户密码▪set password for '⽤户名'@'主机名' = password('新密码');▪需要在登陆MySQL的情况下操作.∙E:数据库语句分类o DDL:数据定义语言▪Data Define Language▪用来创建,删除,修改数据库与表结构▪关键字:create,drop,altero DML:数据操作语言▪Data Mainipulation language▪用来进行更新,插入,删除数据操作▪关键字:insert,update,,deleteo DQL:数据查询语言▪Data Query language▪用来进行数据的查询▪关键字:select,showo DCL:数据控制语言▪Data Control Language▪用来创建或删除用户,分配权限,等操作▪关键字:grant/revoke∙F:mysql的语法与注释o每一条语句必须要有分号结尾o. SQL语句中的关键字不区分⼤⼩写o注释用法▪-- :所有数据库共有的语法,单行注释▪# :MySQL数据库特有,单行注释▪/* 注释内容*/ :多⾏注释01.02_SQL基础(SQL之表的数据类型)(掌握) ∙A:常用的数据类型o int:整型o double:浮点型o varchar字符串型o data:日期类型∙B:整数类型o tinyint:占一个字节o smallint:占两个字节o mediumint:占三个字节o int(integer):占四个字节∙C:小数类型o float:单精度浮点数,占四个字节o double:双精度浮点数,占八个字节o decimal(m,n):定义数的长度,m表示数的长度,n表示小数的位数.∙D:日期类型o time:显示具体时间,没有日期.HH:MM:SSo date:显示具体日期,没有显示时间.YYYY-MM-DDo datetime:显示时间和具体日期.YYYY-MM-DD HH:MM:SS ∙E:文本、二进制类型o CHAR(M):定⻓字符串,M为0~255之间的整数o VARCHAR(M):可变字符串,M为0~65535之间的整数o TINYBLOB:允许⻓度0~255字节∙F:Binary Large Objecto blob: 允许⻓度0~65535字节o mediumblob: 允许⻓度0~167772150字节o longblob: 允许⻓度0~4294967295字节o tinytext: 文本,允许⻓度0~255字节o text: 文本,允许⻓度0~65535字节o mediumtext: 文本,允许⻓度0~167772150字节o longtext: 文本,允许⻓度0~4294967295字节o binary(m): 允许⻓度0~m个字节的定⻓字节字符串o varbinary(m): 允许⻓度0~m个字节的变⻓字节字符串01.03_SQL基础(SQL之DDL语句)(掌握)∙A:基本概述o数据定义语言.o Data Define Language.o用来创建,删除,修改数据库与表结构.o关键字:create,drop,alter.∙B:创建o create database 数据库名;▪创建一个数据库.o create database if not exists 数据库名;▪判断是否存在数据库,如果不存在则创建一个数据库.o create database 数据库名default character set gbk;▪创建一个数据库并指定字符集为gbk.o create table 新表名like 旧表名;▪快速创建一个表结构相同的表.o create table 表名(字段名1 数据类型,字段名2 数据类型,...);▪创建一个表.o create user '⽤户名'@'主机名' identified by '密码';▪创建一个新⽤户.▪密码可以为空,如果为空则该用户可以不需要密码登录服务器 C:修改o alter database 数据库名default character set 字符集;▪修改数据库字符集语句o alter table 表名add 字段名数据类型;▪为指定表列添加字段.o alter table 表名modify 字段名新数据类型;▪修改指定表指定字段的数据类型.o alter table 表名change 旧字段名新字段名数据类型;▪修改指定表的字段名与数据类型.o rename table 旧表名to 新表名;▪修改表名.o alter table 表名default character set 编码名称;▪修改指定表的字符集.C: 删除o drop database 数据库名;▪删除指定数据库.o drop table 表名;▪删除表.o drop table if exists 表名;▪判断表是否存在,存在则删除.o alter table 表名drop foreign key 外键名称;▪删除一个表的外键.o alter table 表名drop 字段名;▪删除一个表的字段名o drop user '⽤户名'@'主机名';▪删除用户01.04_SQL基础(SQL之DQL语句)(掌握) A:基本概述o数据查询语言o Data Query languageo用来进行数据的查询o关键字:select,showB:查看o show databases;▪查看所有数据库.o show create database 数据库名;▪查看指定数据库的定义信息. o select database();▪查看当前正在使用的数据库. o show tables;▪查看当前数据库所有表.o desc 表名;▪查看student表的结构.o show create table 表名;▪查看指定表的创建表sql语句.o show grants for '⽤户名'@'主机名';▪查看指定用户的所有权限.D:查询表o select distinct 字段名1,字段名2,... from student;▪查询指定列并且结果不出现重复数据.o select * from 表名;▪查询指定表所有数据o select 字段名1,字段名2,... from 表名;▪查询指定表指定列的数据o select 字段名+ 固定值from 表名;▪某列数据与固定值运算,返回单列多行数据.▪参与运算的必须是数值类型.o select 列名1 + 列名2 from 表名;▪某列数据和其他列数据参与运算.▪参与运算的必须是数值类型.01.05_SQL基础(SQL之DML语句)(掌握) ∙A:基本概述o数据操作语言o Data Mainipulation languageo用来进行更新,插入,删除数据操作o关键字:insert,update,delete∙B:插入记录o insert into 表名values(值1,值2,....);▪为指定表添加一组数据o insert into 表名(字段名1,字段名2,..) values(值1,值2,....);▪为指定表的指定字段名添加一组数据.▪没有添加数据的字段会使用null.C:删除记录o delete from 表名;▪删除表中的所有记录.o delete from 表名where ...;▪删除满足条件的表记录o truncate 表名;▪删除表中的所有记录.▪与delete区别▪delete删除所有数据:一⾏一⾏删除,不影响表结构.▪先删除(drop)整张表,然后再创建一张表结构相同的表.∙D:更新记录o update 表名set 字段名= 值;▪更新所有记录的数据.o update 表名set 字段名= 值where ...;▪更新满⾜条件的记录数据.01.06_SQL基础(SQL之DCL语句)(掌握)∙A:基本概述o数据控制语言o Data Control Languageo用来创建或删除用户,分配权限,等操作o关键字:grant/revoke∙B:授权o grant 权限1, 权限2... on 数据库名.表名to '⽤户名'@'主机名';▪分配授权给用户▪权限有:如SELECT, INSERT,UPDATE 等▪用户刚创建时,没有权限,需要给用户授权.o grant all on . to '⽤户名'@'主机名';▪分配所有权限给用户.∙C:撤销o revoke 权限1, 权限2... on 数据库.表名from '⽤户名'@'主机名';▪撤销用户对某个数据库的操作权限.01.07_SQL基础(SQL之约束关键字)(掌握)∙A:逻辑运算符o and(&&):多个条件同时满足o or(||):多个条件满足其中一个o not(!):不满足o between ... and ... : 在什么范围之间∙B:模糊查询:likeo like '通配符字符串'▪显示满足通配字符串的数据就会显示出来▪%: 可以匹配任意(0到n)个字符▪_: 可以匹配任意一个字符∙C:排序o order by 字段名[ASC|DESC];o ASC: 升序默认值o DESC: 降序o组合排序:是先按第一个字段进⾏排序,如果第一个字段相同,就按第二个字段进⾏排序▪order by 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];∙D:聚合函数o忽略null值的数据o例子:select 聚合函数(age) from 表名o count(列名):统计记录数o sum(列名):求指定列数据的和,列必须是数值类型o max(列名):求指定类数据的最⼤值o min(列名):求指定类数据的最⼩值o avg(列名):求指定类数据的最平均值E:分组与限制o group by 分组字段[having 条件];▪分组后聚合函数操作的不再是行数据,而是组数据▪having语句后使⽤的字段名必须是出现在select语句中▪having与where的区别:▪where语句的条件是对⾏数据进行过滤,where语句后⾯不能使⽤聚合函数的▪having语句的条件是对组数据进⾏过滤,having语句后⾯是可以使⽤聚合函数的▪having必须跟在group by后面o limit 跳过行数,返回的⾏数▪格式: limit 0,5▪如果第一个参数是0可以简写:limit 5F:约束关键字o主键约束:primary key▪主键⾃增:auto_increment▪DELETE 删除表中的数据,但不重置AUTO_INCREMENT的值。
数据库SQL语言中的常见操作命令数据库SQL语言是关系型数据库中最常用的查询语言,通过SQL语句可以对数据库进行增删改查等常见操作。
下面将介绍数据库SQL语言中的常见操作命令。
一、查询命令数据库中最常见的操作就是查询,查询命令分为两种基本类型:选择查询和聚集查询。
选择查询:通过SELECT语句查询数据库表中的指定列数据。
语法格式如下:SELECT column_name1, column_name2, ... FROM table_name;其中column_name为指定查询的列名,table_name为要查询的数据表名称。
如果要查询所有列,可以使用“*”通配符代替列名,语法格式如下:SELECT * FROM table_name;聚集查询:通过SUM、COUNT、AVG、MAX、MIN等聚集函数统计表中的数据。
语法格式如下:SELECT COUNT(*) FROM table_name; -- 查询表数据总条数SELECT SUM(column_name) FROM table_name; -- 查询指定列数据总和SELECT AVG(column_name) FROM table_name; -- 查询指定列数据平均值SELECT MAX(column_name) FROM table_name; -- 查询指定列数据最大值SELECT MIN(column_name) FROM table_name; -- 查询指定列数据最小值二、插入命令插入命令用于向数据表中添加新记录,使用INSERT语句实现。
语法格式如下:INSERT INTO table_name (column_name1, column_name2, ...) VALUES (value1, value2, ...);其中table_name为要插入数据的表名,column_name为要插入数据的字段名,value为要插入数据的值。
数据库查询语言SQL的使用技巧数据库查询语言SQL(Structured Query Language)是一种用于与关系型数据库进行交互的语言。
它可以帮助开发人员从数据库中获取所需的数据,并对数据进行操作和管理。
在本文中,我将分享一些有关SQL的使用技巧,帮助您更好地使用该语言进行数据库查询。
1. 使用合适的选择语句:在SQL中,SELECT语句用于从数据库中选择所需的数据。
当查询数据时,确保选择合适的列,以避免不必要的数据传输。
使用逗号将列名分隔开,以选择多个列。
例如:SELECT 列1, 列2FROM 表名;2. 别名的使用:别名是为列或表指定一个临时名称,使查询结果更易读。
您可以使用AS关键字来为列或表指定别名。
例如:SELECT 列1 AS 名称FROM 表名;3. 使用过滤条件:WHERE子句用于添加过滤条件,将只选择满足特定条件的数据。
可以使用比较操作符(如“=”,“<”等)和逻辑操作符(如AND,OR等)来构建条件。
例如:SELECT 列1, 列2FROM 表名WHERE 列1 = 值;4. 通配符的使用:通配符是用于匹配模式的字符。
在SQL中,常见的通配符是“%”和“_”。
百分号表示零个或多个字符,下划线表示一个字符。
例如,要选择所有以“ab”开头的名称,可以使用以下语句:SELECT *FROM 表名WHERE 列名 LIKE 'ab%';5. 排序数据:ORDER BY子句用于对结果进行排序。
您可以根据一个或多个列对数据进行升序或降序排列。
默认情况下,数据将按升序排列。
例如,要按列1进行降序排序,可以使用以下语句:SELECT *FROM 表名ORDER BY 列1 DESC;6. 聚合函数的使用:聚合函数可用于计算数据的总数、平均值、最大值、最小值等。
常见的聚合函数有SUM,AVG,COUNT,MIN和MAX。
例如,要计算列1的总和,可以使用以下语句:SELECT SUM(列1)FROM 表名;7. 连接多个表:当需要从多个表中查询数据时,可以使用JOIN子句来合并表。
SQL语言学习的自我总结
学习SQL语言的过程中我收获了很多知识和技能,以下是我学习SQL的自我总结:
1. 掌握了SQL语言的基本语法和常用命令,包括SELECT、INSERT、UPDATE、DELETE等,能够使用这些命令来对数据库进行操作。
2. 理解了数据库的基本概念,包括表、字段、主键、外键等,能够设计和管理简单的数据库结构。
3. 学会了使用SQL语句查询数据库中的数据,包括基本的查询、条件查询、多表联合查询等。
4. 掌握了SQL语句的高级用法,包括聚合函数、分组、排序、子查询等,能够处理复杂的数据查询需求。
5. 学会了使用SQL语句进行数据的增删改查操作,能够对数据库中的数据进行灵活的管理。
6. 熟悉了SQL语言的优化技巧,能够提高查询效率和性能。
7. 通过练习和实践,加深了对SQL语言的理解和掌握,能够灵活应用SQL解决实际的数据处理问题。
8. 意识到SQL语言在数据处理和管理中的重要性,为今后的数据工作打下了良好的基础。
学习SQL应知道的动态SQL语句基本语法1 、普通SQL语句可以用Exec执行eg: Select * from tableNameExec('select * from tableName')Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N2、字段名,表名,数据库名之类作为变量时,必须用动态SQLeg:declare @fname varchar(20)set @fname = 'FiledName'Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意加号前后的单引号的边上加空格当然将字符串改成变量的形式也可declare @fname varchar(20)set @fname = 'FiledName' --设置字段名declare @s varchar(1000)set @s = 'select ' + @fname + ' from tableName'Exec(@s) -- 成功exec sp_executesql @s -- 此句会报错declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)set @s = 'select ' + @fname + ' from tableName'Exec(@s) -- 成功exec sp_executesql @s -- 此句正确3、输出参数declare @num int,@sqls nvarchar(4000)set @sqls='select count(*) from tableName'exec(@sqls)--如何将exec执行结果放入变量中?declare @num int,@sqls nvarchar(4000)set @sqls='select @a=count(*) from tableName 'exec sp_executesql @sqls,N'@a int output',@num outputselect @num此外,如果想要在SQL语句字符串中使用单引号'' 可以使用''''SQL Server数据库中经常用到的identity列发布时间:2008.03.24 04:59来源:赛迪网作者:Alice【赛迪网-IT技术报道】SQL Server中,经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便。
SQL语句的多表查询方式
例如:按照department_id查询employees(员工表)和departments(部门表)
的信息。
方式一(通用型):SELECT ... FROM ... WHERE
SELECT st_name,e.department_id,d.department_name
FROM employees e,departments d
where e.department_id = d.department_id
方式二:SELECT ... FROM ... NATURAL JOIN ...
有局限性:会自动连接两个表中相同的列(可能有多个:department_id和manager_id)
SELECT last_name,department_id,department_name
FROM employees
NATURAL JOIN departments
方式三:SELECT ... JOIN ... USING ...
有局限性:好于方式二,但若多表的连接列列名不同,此法不合适
SELECT last_name,department_id,department_name
FROM employees
JOIN departments
USING(department_id)
方式四:SELECT ... FROM ... JOIN ... ON ...
常用方式,较方式一,更易实现外联接(左、右、满)
SELECT last_name,e.department_id,department_name
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
--内连接
1)
--等值连接
--不等值连接
2)
--非自连接
--自连接
--外连接
--左外连接、右外连接、满外连接
创建和管理表(DDL)
CRAETE TABLE /TRUNCATE TABLE /ALTER TABLE /REANME...TO/DROP TABLE ..操作完以后,自动commit;所以,rollback对其操作,没有效果
1.创建表
1)直接创建
create table emp1(
name varchar2(20),
salary number(8,2)default 1000,
id number(4),
hire_date date
);
2)通过子查询的方式创建
create table emp2
as
select last_name name,employee_id id,hire_date
from employees;
或者
create table emp2
as
select last_name name,employee_id id,hire_date
from employees
where department_id = 80;/where 1=2;
2.修改表
1)增加新的列
alter table emp1
add(birthday date)
2)修改现有的列
alter table emp1
modify(name varchar2(25) default 'abc')
3)重命名现有的列
alter table emp1
rename column salary to sal;
4)删除现有的列
alter table emp1
drop column birthday;
3.清空表中的数据(与delete from table_name区分开)
truncate table emp2;
4.重命名表
rename emp2 to emp3;
5.删除表
drop table emp3;
数据处理DML
1)增
1.1 增添一条记录
insert into [表名](,,,,,)
values(,,,,,)
1.2 从其它表中拷贝数据
insert into [表名]
select .... from [另一个表]
where ....
2)改
update [表名]
set .....
where ....
3)删
delete from [表名]
where ....
4)查(最常用的数据库操作)
select ....
from …
where ….
group by …
having …
order by ….
约束
对创建的表的列属性、字段进行的限制。
诸如:not null/unique/primary key/foreign key/check
1.如何定义约束---在创建表的同时,添加对应属性的约束
1.1 表级约束 & 列级约束
create table emp1(
employee_id number(8),
salary number(8),
--列级约束
hire_date date not null,
dept_id number(8),
email varchar2(8) constraint emp1_email_uk unique,
name varchar2(8) constaint emp1_name_uu not null,
first_name varchar2(8),
--表级约束
constraint emp1_emp_id_pk primary key(employee_id),
constraint emp1_fir_name_uk unique(first_name),
constraint emp1_dept_id_fk foreign key(dept_id) references departments(department_id) ON DELETE CASCADE
)
1.2 只有not null 只能使用列级约束。
其他的约束两种方式皆可
2.添加和删除表的约束--在创建表以后,只能添加和删除,不能修改
2.1添加
alter table emp1
add constaint emp1_sal_ck check(salary > 0)
2.1.1对于not null来讲,不用add,需要使用modify:
alter table emp1
modify (salary not null)
2.2 删除
alter table emp1
drop constaint emp1_sal_ck
2.3使某一个约束失效:此约束还存在于表中,只是不起作用
alter table emp1
disable constraint emp1_email_uk;
2.4使某一个约束激活:激活以后,此约束具有约束力
alter table emp1
enable constraint emp1_email_uk;。