1、查看服务器下的所有数据库 :
show databases;
2、查看当前正在操作那个数据库:
select database();
3、切换到day01数据库:
use day01;
4、查看day01数据库的定义信息:
show create database day01;
1、 创建表:
create table 表名(
字段名 数据类型(长度)约束,
字段名 数据类型(长度)
)
2、 查看表
查看当前数据库下所有的表:
show tables;
查看数据表的表结构:
desc 表名;
查看建表语句:
show create table 表名:
查看引擎:
show engines;
3、删除表
drop table 表名
4、修改表
格式:
alter table 表名 关键字......
(1).修改表添加表字段
尾部添加:
alter table 表名 add 字段名(长度)约束.
首部添加:
alter table 表名 add 字段名(长度)约束 first;
在指定字段后面添加表字段:
alter table 表名 add 字段名(长度)约束 after 指定字段名;
(2).修改表数据 类型、长度、约束
alert table 表名 modify 字段名(长度)约束.
(3).修改表字段名称
alter table 表名 change 旧字段名 新字段名
(4).删除表字段
alter table 表名 drop 要删除的字段名
(5).修改表名称
rename table 旧表名 to 新表名
(6).修改表的字符集
alter table 表名 character set 字符集
5、DML之添加操作
DML:数据操作语言 增加 删除 修改
关键字: insert into
格式:
insert into 表名(字段1,字段2...)values(值1,值2...)
a、 插入单个值(cname):
insert into student (cname) values ("手机");
b、 插入单个值(cid) :
insert into student (cid) values(1);
c、 插入多个值:
insert into student values (4,"书籍"),(5,"服装“),(6,"化妆品“):
6、DML之修改操作
关键字: update
格式:
(1)修改表中所有改字段的值
update 表名 set 字段名=字段值;
(2)根据条件进行修改
update 表名 set 字段名=字段值 where 条件;
需求:将 student 表中所有记录的 cname 字段值改为手机
update student set cname="手机";
需求:将 student 表中 cid 为 1 的分类名称修改为电脑
update student set cname='电脑' where cid=1;
7、 DML之删除操作
关键字:delete
格式:
(1)删除所有数据 :
delete from 表名;
(2)根据条件删除数据 :
delte from 表名 where 条件;
delete from 和 truncate区别;
1.delete from 逐条删除所有的数据
2.truncate 摧毁整张,重建原来格式的表
需求:删除 cid 为 0 的数据
delect from student where cid=0;
delect from student wherer cname='手机‘;
需求:删除 student 表中所有的数据
(1) delect from student;
(2) truncate student;
8、DQL之查询
关键字:select
格式:
(1)查询所有 :
select *from 表名;
(2)条件查询 :
select *from 表名 wher 条件;
*:表示表中所有的字段
查询 student 表中所有记录 :
select *from student;
查询 student 表中所有记录,仅显示 pid 和 pname 字段 :
select pid,pname from student;
a、别名查询
(1)字段别名: 字段 as 别名
(2)表别名: 表名 as 别名
注意:as可以省略
b、去重查询 : 关键字:distinct
c、运算查询 : 在查询的结构 select 后面支持基本的元素
查询商品显示列名为商品ID , 商品名称,商品分类
SELECT DISTINCT(category_name) FROM product;
查询商品表,将所有商品的价格+10元进行显示.
SELECT price AS "原来价格",price+10 AS "涨价后" FROM product;
9、DQL之条件查询
关键字: where
注意:只有在有条件的时候才需要使用where
格式:
select *from 表名 where 条件;
重点: 条件的组合
a、比较运算符 :
> < >= <= != <> =
范围:
between and [100 ,200)
in(值1,值2) or值1 or值2
like 模糊查询
%:统配符
_:表示一个字符
以什么开头: java开头的内容 java%
以什么结尾: java结尾 %java
包含某值: 包含java %java%
is null:表示为空
is not null: 表示非空
b、逻辑运算符
and or not
查询商品名称为“花花公子”的商品所有信息:
select *from product where pname="花花公子";
查询价格为800商品
select *from product where price=800;
查询价格不是800的所有商品
select *from product where price!=800;
select *from product where price <>800;
查询商品价格大于60元的所有商品信息
select *from product where price >60;
查询商品价格在200到1000之间所有商品
select *from product where price >=200 and price <=1000;
select *from product where price between 200 and 1000;
查询商品价格是200或800或者2000的所有商品
select *from product where price=200 or price=800 or price=2000;
select *from product where price in(200,800,2000);
查询含有’霸’字的所有商品
select *from product where pname like "%霸%";
查询第二个字为’想’的所有商品
select *from product where pname "_想%";
商品没有分类的商品
select *from product where category_name is null;
查询有分类的商品不为null的
select *from product where category_name is not null;
10、单表之排序查询
关键字:order by
排序方式:
1.升序 : asc (默认值)
2.降序 : desc
格式:
select *from 表名 order by 字段名 排序方式
a、使用价格排序(降序) :
select *from product order by price desc;
b、在价格排序(降序)的基础上,以主键排序(降序),即若价格相同,相同价格的数据以pid降序排序
select *from product order by price desc,pid desc;
d、 显示商品的价格(去重复),并排序(降序)
select distinct(price) from product order by price desc;
10、单表之聚合函数
特点:查询顺序是纵向查询
a、统计查询 :count
b、最大值: max
c、最小值:min
e、 平均值:avg
f、 求和:sum
注意事项:忽略null值
查询商品的总条数、总价格、最大价格、最小价格、价格的平均值
select count(*),sum(price),max(price),min(price),avg(price) from product;
查询价格大于200商品的总条数
select count(*) from product where price>200;
查询分类为’电脑办公’的所有商品的总记录
select count(*) from product where category_name="电脑办公";
查询分类为’服装’所有商品的平均价格
select avg(price) from product where category_name ="服装";
11、单表之分组操作
关键字:group by
格式:
select *from 表名 where 条件 group by 字段名 having 条件
where 条件 :在分组之前过滤数据使用where
having 条件 : 分组之后过滤过滤条件having
统计各个分类下的商品的个数
select category_name,count(*) from product group by category_name;
select category_name,count(*) from product where categore_name is not null group by category_name;
select category_name,count(*) from product group by category_name having category_name is not null;
12、sql的顺序
1.编写顺序
select *from 表名 where 条件 group by 字段名 having 条件 order by 字段名称 排序方式
2.执行顺序
(1)from 表名
(2)where 条件
(3)group by 字段名
(4)having 条件
(5)select *
(6)order by
13、sql约束之主键约束
作用: 标识表中数据唯一存在
关键字:primary key
特点:唯一、非空
添加主键:
a、创建表时,字段的描述处
create table表名(
字段名称 类型(长度)primary key
)
b、创建表时,在contraint约束区域
create table表名(
字段名称 类型(长度),
字段名称 类型(长度),
primary key(字段名)
)
c、创建表后,添加主键
DDL之表结构修改
alter table 表名 add [constraint 主键名称] primary key(字段)
注意:在创建表后进行添加,添加之前必须确认数据的完整。
删除主键约束:
alter table 表名 drop primary key
注意:删除主键后,非空约束依然存在。
例:
a.创建表时,字段描述处
create table p0(
id int primary key,
name varchar(32),
idCardrd varchar(16)
)
b.创建表时,constraint约束区域
create table p1(
id int ,
name varchar(32),
idCardrd varchar(16)
primary key(id)
)
c.创建表后,添加主键
create table p2(
id int ,
name varchar(32),
idCardrd varchar(16)
)
alter table add constraint pk_p2 primary key(id);
d.删除主键
alter table p2 drop primary key;
14、非空约束
作用:强制被修饰的列不接收null值
关键字: not null
a.创建表时,字段声明处
b.创建表后,添加非空约束
alter table 表名 modify 字段名(长度)非空约束
c.删除约束
alter table 表名 modify 字段名(长度)
例:
a. 创建表时,字段声明处
create table p4(
id int prinary key,
name varchar(32) not null,
idCard varchar(16)
)
b.创建表后,添加非空约束
create table p5(
id int prinary key,
name varchar(32),
idCard varchar(16)
)
alter table p5 modify name varchar(32) not null;
c.删除约束
alter table p5 modify name varchar(32);
15、唯一约束
作用:强制标识被修饰字段值的唯一
唯一约束和主键约束的区别:
a.两者都标识数据的唯一
b.主键只有一个,唯一约束可以有多个
c.主键不能为null,唯一约束忽略校验null值
关键字: unique
a.在创建表时,字段的描述处
b.在创建表时,在constraint 约束区域
c.在创建表后添加唯一约束
alter table 表名 add [constraint 唯一索引名称] unique(字段)
注意:
在添加外键约束时,如果不指定约束名称,默认为字段名称
删除唯一索引:
alter table 表名 dorp index 索引名称
例:
a.字段描述处
create table p6(
id int primary key,
name varchar(32) unique,
inCard varchar(16)
)
b.constraint 约束区域
create table p7(
id int primary key,
name varchar(32),
unique(name)
)
c.创建表后
create table p8(
id int primary key,
name varchar(32),
)
alter table p8 add constraint p8_u unique(name);
d.删除索引
alter table p8 drop index p8_u;
16、默认约束
给列设置默认值
关键字: default
添加默认约束
create table 表名(
id 类型(长度),
name 类型(长度)default "默认值"
)
特点:当不指定默认字段赋值时,自动选择默认值
例:
create table p9(
id int primary key,
name varchar(200) default "匿名",
inCard varchar(50),
unique(name)
)
17、自动增长策略:
被修饰的列添加数据时值自动加一
关键字: auto_increment
添加时注意事项:
a.添加的列类型必须为整数类型
b.添加的列必须为键(主键或者唯一约束)
添加自动增长格式:
a.创建时
create table 表名(
id 类型(长度)primary key auto_increment
)
alter table 表名 modify 字段名 数据类型(长度) auto_increment;
18、外键约束
关键字:foreign key
作用:维护多表之间的关系
特点:从表的外键引用主表的主键
主表:表示一的一方
从表:表示多的一方
外键的设置在从表中,外键的取值必须来自于主表的主键
创建时添加
foreign key(从表外键字段) references 主表(主表主键)
特点:
a.外键添加在从表中
b.外键数据来自主表的主键
c.外键中引用的主表数据不能删除
d.外键的类型和长度必须和主键一致
e.主键字段非空唯一,外键字段可以重复,可以为空
19、多表查询
查询的数据来自于多张表
基本语法:
select *from 表1,表2......建立关系
多表查询的方式:
内连接、外连接、左外连接、右外连接、子查询、自查询
需求:查询每个部门下有哪些人
selsect emp.*,dept.name from emp,dept where emp.dept_id=dept. id;