SQL单词及数据库增删改查

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL单词及数据库增删改查
数据库(Database, DB)
数据库管理系统(Database Management System, DBMS)
数据库管理员(Database Administrator, DBA)
数据库系统(Database System, DBS)
SQL:结构化查询语言(structured Query Language)DB: 数据库(database)
DBA:数据库管理员(database administrator)DBMS:数据库管理系统(database management system)
Toa d:癞蛤蟆,一款开发数据库的可视化软件
Roo t: 根
Re la tion shi p:关系
U ser:用户
Ta ble:表
P ro ce dure:存储过程
Fun c tion:函数
Tri gger:触发器
Vie w:视图
In de x:索引
C rea te:创建
Dro p:删除
Ta ble:表
En gine:引擎
Co lu mn:列
P ri ma ry:主要的
Primary key:主键
Na me:列名
Au to:自动的
In cre men t:可增长的
Au to_In cre men t: 自动增长
Da ta Ty pe:数据类型
Not null:非空
Co mmen t:注释
Cha ra c ter se t:字符集
Co lle c tion:采集(对比方法)
Fo reig n:外部的
Fo reig n key:外键
SQL 数据化查询语言
DML数据操作语言(Data Manipulation Language)DCL数据控制语言(Data Control Language)DQL: 数据查询语言(Data Query Language)DDL: 数据定义语言(Data Definition Language)in ser t:插入(增)
de le te:删除(删)
up da te:修改(改)
se le c t:查询(查)
in to:到哪里。

fro m:从哪里来。

va lue:值
u nio n:拼接
wh ere:在。

se t:设置
trun ca te:截断
im por t:导入
ex por t:导出
Or der:顺序
Or der by:排序
Re p la ce:替换
Now:现在
Cei ling:天花板
F loo r:地板
Si gn:符号
Con ver t:转换
Di s tin c t:独特的(去重复的)
Li mi t:限制
li ke:像。

一样
be t wee n 。

and:在。

和。

之间su m:和
avg:平均值
ma x:最大值
mi n:最小值
coun t:计数
g rou p:组
in ner:内部
jo in:连接
in ner joi n内部联接查询
C rea te:创建
dro p:删除
al ter:修改
trun ca te:截断
Co mmen t:注释
u ni que:唯一的
con s train t:约束
pro ce dure:存储过程
fun c tion:函数
S tar t 开始
Tran sa c tion:事物
Roll ba ck:回滚
Co mmi t:提交
Atomicity:原子性A con sis ten cy:一致性C
i so la tion:隔离性I durability:永久性D
de c la re 声明
han d ler:处理器Exit:退出
war ning:警告
foun d:发现
ex ce p tion:异常
auto co mmi t:自动提交
de c la re 声明
Set 赋值
dri ver: 驱动
ma na ger: 管理者
Dri ver Ma na ger: 驱动管理者
con ne c tion:连接
s ta te men t:声明
p re pare d: 准备好的
re sul t:结果
Result Set:结果集
exe cu te: 执行
que ry:查询
jdbc:(java database connectivity)java 数据库连接技术插入:
1= insert into表名[(列名...)] values ( 值..... );
2= insert into表名(列名...) values ( 值... ), (值... );
3= insert into表名(列名...)
select值... union
select值...;
4= insert into表A(列名1...)
select列名2... from表B;
删除:
1= delete from表名
[where 条件]
2= truncate table表名;
3= al ter table表名au to_in c re men t=1;
修改:
1= up da te表名set 列1=值1,列2=值2
[where 条件];
查找:
1= select di s tin c t 列名from 表A;
[ in ner joi n表B on表A.列A = 表B.列B ]
[ Where条件子句]
[ G rou p by列名]
[ Ha ving条件子句]
[ Or der by表A ]
[ Li mi t子句];
1= Select di s tin c t表A.列名1 as别名,表B.列名2... from表A,表B...
[Where条件子句]
[G rou p by列名] //对列表进行分组
[Ha ving条件子句] //分组后结果进行判断筛选
[Order by表A.列名子句[默认升序asc/降序desc]]
[Limit子句];
( 联接inner join 、判断where 、分组group by 、后判断having 、排序order by 、限制limit )
截取字符串
select Substing(字段,从包含索引1开始,截取的个数);
拼接字符串
select Concat(值1,值2...) ;
返回索引位置
select instr(值,索引的值1) ;//没有返回0
从左得值
Select locate(‘值代替索引’,’字符串’,从第几个位置开始)
例:分词:
从右得值
select Right(值,索引得值的个数);
替换字符串
select Re p la ce(值,原值,新值);
转换成大写进行返回:
U pper(‘字符串’)
( 截取substing ,拼接concat ,索引instr ,右得值right ,替换replace )
当前时间
select now();
当前日期
Select curdate();
在当前日期上加减时间
select date_add ( 日期, in ter val数值day);+
select date_sub (日期, interval数值day );-
两个日期的间隔
Select date diff ( 日期1 , 日期2 );
日期格式化
select date_format ( 日期, ' %y-%M-%d %H:%i:%s ' )得到当前年、月、日
Ye ar(now());、mon th(now()) ;、day(now());
0到1之间随机的小数
Select ran d();
取绝对值(为正数)
Select a b s(正/负数);
天花板上进一的整数
Select cei ling(数值小数满5进1)
地板下去小数的整数
Select f loo r(数值有小数舍去)
取幂值
Select po wer(值1,值2个数相乘)
四舍五入
Select roun d(值,值2小数个数)
正数返回1,0返回0,负数返回-1
Select sig n(值);
取余数
Select m o d(值1,值2)
格式化输出¥
Select for ma t(值,小数个位)
返回当前用户名字
Select cu rren t_user
类型转换
Select ca s t(类型值1 as un si gne d)
Select con ver t(类型值1,unsigned)
Where 中模糊查询条件:(like、is null、be tween and、in) 1= 列名Like‘[ % _ ]值[ %或_]’
2= 列名is Null (是空)
3= 列名Be t ween数值小(日期) and数值大(日期)
4= 列名in ( ‘值1’ , ‘值2 ’ , ’值3 ’ )
Select 聚合函数:(sum、A V G、max、min、count)
1= 求和Select Sum (数值的列名)
2= 平均数Select Avg (列名)
3= 最大值Select Max (列名)
4= 最小值Select Min (列名)
5= 个数Select Count ( * /任何列名)
分组查询:
[G rou p by 列名[ , 列名] ]
[Having 条件子句]
多表联接查询:
[ Cross join ] //很少使用
内联接:
Select 列A from 表A
in ner joi n 表B on 表B.列1 = 表A.列1 外联接:
左联接:
Le f t join 表B on表B.列1 = 表A.列1
右联接:
Righ t join 表B using ( 相同共有列名) ;
DDL数据定义语言
创建数据库:
C rea te Da ta Ba se数据库名;
C rea te DataBase if not Exists 数据库名;
( 创建Create ,数据库DateBase ,如果if ,不Not ,存在Exists ) 删除数据库:
Drop DataBase 数据库名;
Drop DataBase if exists 数据库名;
( 删除Drop ,数据库DataBase ,如果if ,存在Exists )
查看显示创建的表:
Show Create Table数据库名.表名;
( 显示Drop ,创建Create ,表格Table)
创建表:
Create Table [ 数据库名.]表名(
列名1 数据类型特征:
[ Not null] 非空
[ De faul t ] 默认值
[ Comment ] 注释
[ Au to _ in cre men t] 数值自增
[ U ni que /u ni k/ ] 唯一键默认(表名.列名)
[ Primary key ] 设置主键
[ Character Set Utf8 ] 字符集,
列名2 数据类型[ 特征….. ] ,
主键约束:
primary key ( 列名) ,
外键约束:
Con s train t fk_ 内表名_ 外表名Fo reign key ( 内列名)
Re feren ces 外表名( 外列名)
约束—外键—参考
) Comment ’注释评论’;
( 创建Create ,表table ,非空Not null ,默认值Default ,注释Comment ) ( 自增Auto_increment ,唯一键unique ,主键Primary key ,参考References )
( 约束constraint,外键Foreign key )
删除表:
Drop Table 表名;
Drop Table if exists 表名;
修改表:
添加列
Al ter Ta ble表名Add Co lu mn 列名类型特征;
删除列
Alter Table表名Dro p Co lu mn列名;
改表名
Alter Table 表名Re name新表名;
改列名
Alter Table表名chan ge列名新列名类型特征;
修改自增量(初始化)
Alter Table表名au to_in ter men t=1;
添加外键
Alter Table表名Add[默认名] Foreign Key (列名) References主表名(主列名);
*** Add Constraint约束名(fk_) Foreign key (列名)
References 主表名(主列名);
删除外键
Alter Table 表名Drop foreign key约束名(fk_) ;
添加主键
Alter Table表名Add primary key列名;
删除主键
Alter Table 表名Drop primary key;
添加唯一键约束
Alter Table 表名Add U ni que key uk_名(列名1[列名2]);
删除唯一键约束
Alter Table 表名Drop key 唯一键名;
( 改变alter ,添加add ,删除Drop ,列colume ,改名ReName ,改变Change ) ( 自增auto_increment ,约束References,外部的Foreign ,参考References ) ( 主键Primary key ,唯一键Unique)
创建用户:
Create user‘用户名’@’允许访问的主机地址或% ’identified by ‘密码’;
用户添加权限
Grant权限(All) on 数据库名或*. 表名或*to‘用户名’@’%’;
用户取消权限
Re vo ke All ON *.* From 用户名;
子查询:在一个完整的查询语句(主)中嵌套另一个查询语句(子)
( 普通子查询,in子查询,exists子查询)
普通子查询:特征是一行一列
Select 列名from 表名
Where 列名关系运算符(子select查询语句)
In子查询:特征是多行一列(内小外大)
Select 列名from 表名
Where 列名in (子select查询语句)
Not in 在in子查询基础上取反,并慎用(不会使用索引)
Exists子查询:特征是多行多列(内大外小)
Select 列名from 表名
Where 列名exists (子select查询语句)
只要子查询存在结果就执行主查询
(一般情况下,需要把两个表建立关系例:主表.列名=字表.列名) Not exists 在原基础上取反,性能比not in高
多表连接删除:
delete 表1 from 表1,表2
where 表1.列名= 表2.列名
and 其他条件
多表连接修改:
update 表1,表2 set 表1.列名=值
where 表1.列名=表2.列名
and 其他条件
声明变量:MySQL存储过程中,定义变量有两种方式(用户变量和局部变量) 1=用户变量以@开头(会话变量)
2=Declare 变量名数据类型[ default ( 值) ];
默认为null,声明在前为局部变量
赋值:
1 Set 变量名= 值;
2 Select 列名into 变量名from 表名[where…];选择结构:
if 条件then
sql 代码
else IF 条件THEN
语句....
[ELSEIF 条件2 THEN]
语句....
[ELSE
statement_list]
sql 代码end if;
END IF;
条件:
相等(=),不等于(<>)
循环结构:
while 条件do
语句... end while; aa: loop 【--开始循环,aa是自己写的
循环标记,注意aa:后边要有空格
语句;】
if 条件then
leave aa; --跳出循环
end if;
end loop aa;
repeat
循环语句;
until 循环终止条件条
件-- 注意没有分号
end repeat;
存储过程:是一系列SQL语句的集合,类似于java中的方法。

函数:一系列SQL 语句的集合,类似于java中的有返回值的方法创建存储过程:
Create Procedure 存储过程名(参数类型参数名数据类型) Begin 一系列SQL语句代码;
End;
(参数类型:1,in输入(默认不写)/ 2,out输出类型/ 3,in out即输入又输出)调用存储过程:
Call 存储过程名(形参列表) ;
形参列表:参数类型参数名数据类型
参数类型:
In:输入参数(默认)
Out:输出参数(类似于返回值)
Inout:即输入又输出
删除存储过程:
Drop procedure存储过程名;
创建函数:
create function 函数名(形参列表) returns 返回值类型
begin
//sql语句
return 值;
end;
调用:直接调用函数名
Delete + exists去重操作出现的问题:
Delete from 表名A1
Where exists(select * from 表名B1 where id>A1.id and 列名= A1 . 列名)
1)放jar包
2)加载驱动
Class.forName("驱动名");
3)创建连接
Con nection con = Dri ver Ma nager.get Conne c tion(url,user,pwd);
4)编写sql语句
String sql="" ;
其中?做占位符
5)创建PreparedStatement对象
Pre pared S ta te ment ps = con.pre pare Statament(sql);
6)给占位符赋值
ps.set数据类型(位置,值);
7)执行sql语句
ResultSet rs=ps.executeQuery();
rs.next():
rs.get数据类型(列名);
int hang =ps.executeUpdate();
8)关闭连接
con.close();
sql组成:
DDL:数据库模式定义语言,关键字:create
DML:数据操纵语言,关键字:Insert、delete、update DCL:数据库控制语言,关键字:grant、remove DQL:数据库查询语言,关键字:select。

相关文档
最新文档