DDL 数据定义语言管里数据结构
1.创建数据库
create datavase 数据库名 charset utf8
2.显示所有数据库
show databases;
3
jdbc在Java代码里面调用数据库.
4.使用数据库
use 数据库名
5.创建表,储存数据的单位.每一行就是一条数据,每一列就是字段
create table 表名(id int ,username varchar,age int)
6.显示所有的表
show tables;
7查看表的字段
desc 表名
8给表加字段
alter table 表名 add 字段名 字段类型
9.修改字段的类型
alter table 表名 modify 字段名 字段类型。
10.删除字段
alter table 表名 drop 字段名;
11.修改表名
rename table 原名 to 新名
12.查看见表细节
show create table 表名
13.修改表的字符集
alter table 表名 charter set 字符集名字
15.修改列名
alter table 表名 change 原始列表 to 新列名字 字段类型
16.删除表名
drop table 表名
DML数据管理语句.
1.查询所有的数据.
select * from 表名 \g
2,插入数据.
insert into 表名(字段1,字段2,字段3)values(字段1值。字段2值 。字段三值)
3.更新数据
update 表名 set 列名=列值 where 列名=列值
4.删除记录
delete from 表名 where 列名=值; 数据可以找回
truncate table 表名 删除整个表 在重新建立一个一样结构的表数据不能找回
DQL 数据查询语句
1.查询所有语句
select * from 表明
2.查询指定的主数据
select 指定字段name from 表名
3.条件查询 (根据条件来进行查询)
select * from 表名 where age<=17; where后面更上条件
=等于
!= 不等于
betwen .............. and .................查询年龄在哪一个范围之间
select * from stu where age beetewn 15 and 17
and 查询年龄等于17和15的 select * from stu where age=17 and id=4;使用两个条件
or select * from stu where age=15 or age=17;or代表两者选择其中 一个,只要满足一个条件就可以
is null
is not null ;
模糊查询
关键字为like
select * from stu where name like "马%";查询所有姓马的人
排序 ; order by
升序是默认的 ase
降序是sesc
select * from stu order by age desc 将年龄按照降序排列
聚合函数
count()统计不是null的行数
max()
min() 最小
avg()平均值
select max(age) from stu;
分组
group by 字段名
select * from stu group by age; 对年龄进行分组。
having 可以后面更上聚合函数
select * from(1) where(2) group by(3) having(4) order by(6) limit (7)
分页:limit int 从下标那个开始,到那个结束。
约束
primary key 主键约束 唯一而且不为空
unique 唯一
auto_increment 自增
not null 不为空
保证数据的完整性
多表连续查询
我们之前学到的东西只能在一个表里面查询,现在我要早多个表里面查询
查出每一个学生所对应的老师的名字,传统的单表查询时做不到的
1.99查询 select student.name.name from student ,teacher where student.id=teacher.sid;
2内链接
select * from 表1,join 表2 on 条件;
select * from student join teacher on student.id=teacher.sid;
左外链接 右外链接
就是把左表剩余的东西查出来
索引
加快查询效率
假如由1000晚眺数据,我们给id加上索引
创建索引
create index 索引名 on 表名(字段)
删除索引
drop index 索引的名字 on 表名
查看索引
show index from 表名
条件判断
in 表示在什么里面的数据in(m,n)表示从m到n之间的数据
not in 表示不再什么之间的。 not in(m,n)
下面来说说如何创建视图。使用sql语句。视图就像我们大的word,excel表格的视图时一样的。下面我们来看看具体的代码来如何创建视图.语法如下
Create view 视图名字 as Select 查询的字段1,查询的字段2,查询的字段3 from 表名 where 条件;
删除视图
drop view 视图的名字;
下面来看看几个简单的sql语句
1,选择
select * from table1 where 范围
2.插入
insert into table1(field1,field2) values(value1,value2)
3,删除
delete from table1 where 范围
4.更新
update table1 set field1=value1 where 范围
5.查找
select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!其中like为模糊匹配
6.排序
select * from table1 order by field1,field2 [desc] 按照降序排序,默认是升序
7.求和
select sum(字段名) from 表名 其他的几个函数都是一样的,就不多少了。
二:说明几个高级的运算查询.
A.unique运算符。
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B.
EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C.
INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
平时的时候大家要多去写sql语句,这样将sql语句用到极致。