MYSQL数据库 增删改查基础语句
**********************DDL
语句
*********************
(
DDL
是数据定义语言的缩写,简单的说,就是对数据库内部的对象进行创建、删除、修改等操作的语言。)
命令结束符,用“;”或“
\g
”结束
**********************
数据库创建、查询、操作、删除
*********************
:
dbname
为所创建的数据库名称
,
以下皆是
1
创建数据库
语法:
create database
dbname;
创建成功提示:
Query OK
、、、
未成功(已存在):
ERROR
、、、
database exists
2
查询系统数据库
语法:
show databases
Mysql
系统自动创建的
4
个数据库
information_schema
cluster
mysql
test
3
操作数据库
语法:
use
dbname
;
4
查看数据库中创建的所有数据表
语法:
show tables;
5
删除数据库
语法:
drop database
dbname;
表的创建、查看、删除、修改
: "tablename"
表示表的名字
"
,
"column_name_"
表示列的名字
(
比如:名字、姓名、年龄
),"column_type_"
表示数据类型(比如
varchar(10)
、
date
、
int(2)
),
constraints
是这个列的约束条件
6
创建一张表
语法:
create table
tablename(column_name_1 column_type_1 constraints,column_name_2 column_type_2 constraints,column_name_3 column_type_3 constraints)
7
查看表
语法:
desc
tablename;
*
若需要更全面的表定义信息,可以使用:
show create table tablename \G;
8
删除表
语法:
drop table
tablename
9
修改表
(
1
)修改某个表中某个列的某个数据类型
语法:
alter table
tablename
modify
column_name newcolumn_type;
(
2
)增加表字段
语法:
alter table
tablename
add column
newcolumn_name newcolumn_type;
(
3
)删除表字段
语法:
alter table
tablename
drop
column
column_name;
(4)
字段改名
语法:
alter table
tablename
change
column_name newcolumn_name column_type;(
将
column_type
更改,成为
newcolumn_type
,可同时更改字段类型
)
(
5
)修改字段排列顺序
语法:
①
alter table
tablename
add
newcolumn_name newcolumn_type
after
column_name;
作用:将
newcolumn_name newcolumn_type
加在
column_name
后面。
②
alter table
tablename
modify
column_name column_type
first
;
作用:将
newcolumn_name newcolumn_type
放在最前面。
(
6
)更改表名
语法:
alter table
tablename
rename
newtablename;
*********************DML
语句
*********************
(
DML
操作是指对数据库中表记录的操作,主要包括表记录的插入、更新、删除和查询、是开发人员日常使用最频繁的操作)
1
插入记录
语法:
insert into
tablename(field1,field2,
、、、
)
values
(values1,values2,values3
、、、
);
*
:逗号要小写,数据类型要对应
作用:向表
tablename
中插入
values1,values2,values3
、、、,对应
field1,field2,
、、、的顺序。
*
或者不用
tablename(field1,field2,
、、、
)
,但是后面的
values1,values2,values3
、、、必须与字段的排列顺序一样
若有
field
未被插入,则为
null
。
查看实际插入值语法:
select * from
tablename;
插入多条记录:可以在一个
value()
后面加一个逗号,插入多条语句
2
更新
(
更改
)
记录
语法:
update
tablename
set
field1=value1, field2=value2, field3=value3
,where
column_name=valuen;
作用:将
tablename
中
column_name
等于
valuen
的
field1
,
field2, field3
更改为对应的
value1
,
value2
,
value3.
*
同时更新多个表中的字段
语法:
update
tablename1 type1,tablename2 type2
set
type1.field1=value1,type2.field1=value1
where
type1.column_name=type2.column_name;
3
删除记录
语法:
delete from
tablename
where
column_name=valuen(
或者其他情况
);
可删除多个表的数据:
delete
type1,type2,type3
、、、
from
tablename1 type1,tablename2 type2,tablename3 type3
、、、
where
column_name=valuen(
或者其他情况
)
;
4
查询记录
全部查询语法:
select * from
tablename;
(
其中
*
表示将所有记录查询出来,也可以用逗号分割的所有字段代替,如果只想查询其中部分字段,只写相应字段即可
)
(
1
)查询不重复的记录
关键词:
distinct
语法:
select distinct
field
from
tablename;
(
2
)条件查询
上文中很多地方提到了
where
关键词,它的作用是根据限定条件查询或者作其他操作,可用类别对应或者数据情况作用条件以便根据需求定位查询目标。
可用“
>
、
<
、
>=
、
<=
、
!=
”等比较运算符,多个条件之间还可以用“
and
”或者“
or
”,类似于“
&&
”和“
||
”
(
3
)排序和限制
排序
语法:
select * from
tablename
order by
field;
(默认由低到高,若想从高到低,则在
field
后面添加
desc
,升序排列是
asc
,但由于默认,通常不用写。
同时
field
后面还可接逗号加其他
field
,在第一
field
相同的情况下,按照后面的
field
进行排序)
作用:把
tablename
中的记录按照
field
的高低进行排序显示。
限制
语法
(
例
)
:
select * from
tablename
order by
field
limit
3;
(显示
tablename
表中按照
field
排序后的前
3
条记录)
(如果按照排序后的第二条开始的前三条记录,则这样写:
select * from
tablename
order by
field
limit
1,3;
)
limit
和
order by
经常一起使用
(4)
聚合
语法:
select count(1) from
tablename;(
统计总数量
)
*
统计某个相同类别或者数据类型的数量
语法:
select
field ,
count(1)
from tablename group by field;
*
统计各类别数量又统计总数量
语法:
select
field ,
count(1) from
tablename
group by
field
with rollup
;
*
统计数量大于某个数量的类别
语法:
select
field ,
count(1) from
tablename
group by field having count(1)>1
;(
这里举例大于
1
的某个类别
)
*
统计某个表中最大、最小、数据总和。
语法:
select
sum
(field),
max
(field),
min
(field)
from
tablename;
(5)
表连接
*
内连接:仅选出两张表中互相匹配的记录
语法(例):
select
field1,field2
from
tablename1,tablename2
where
tablename1.field=tablename2.field;
(查询出两个表中所有
field1
和
field2
)
*
外连接:选出其他不匹配的记录
右连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录。
语法(例):
select
field1,field2
from
tablename1
right
join
tablename2
on
tablename1.field=tablename2.field;
左连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录。
语法(例):
select
field1,field2
from
tablename1
left join
tablename2
on
tablename1.field=tablename2.field;
(常用内连接)
(6)
子查询
语法(例):
select from
tablename1
where
field
in
(
select
field
from
tablename2);
(
查询
tablename1
中
field
与
tablename2
中
field
相同的类别。其中如果子查询唯一,
in
可以用
=
代替
)
(
7
)记录联合
语法:
select
field
from
tablename2
换行
union all
换行
select
field
from
tablename2;
field
可以为
*
全部显示。
**********************DCL
语句
*********************
DCL
语句主要是用来管理系统中的对象权限时使用,一般开发人员很少使用(具体见书)
**********************Mysql
帮助的使用
*********************
命令行输入
?
contents
:用来显示所有可供查询的分类
?
类别名称
:在上面步骤进行后,针对需求作进一步查看。
?
data types
:
查看
Mysql
支持哪些数据类型
*
如果想知道某项语法时,可以
“
问号
加
关键词
”命令进行查询。
例如想查看
show
命令都能看到什么东西。就输入:?
show
JDBC
连接
MYSQL
数据库
(推荐网站)
http://blog.csdn.net/tanyunlong_nice/article/details/40743637