MYSQL的部分笔记

2.MYSQL的SQL语句
(1)SQL:Structure Query Language 结构化查询语言
(2)DDL:数据定义语言:定义数据库,数据表他们的结构:creat(创建) drop(删除) alert(修改)
(3)DML:数据操纵语言:主要是用来操作数据 inset(插入) update(修改) delete(删除)
(4)DCL:数据控制语言:定义访问权限,取消访问权限,安全设置 grant
(5)DQL:数据查询语言:select(查询) from子句 where 子句
3.创建数据库
create database 数据库的名字;
create database day06;
create database数据库的名字character set字符集;
create database day06_1 character set utf8;
create database数据库的名字character set字符集 collate校对规则;
create database day06_2 character set utf8 collate utf8_bin;
3.查看数据库定义的语句
(1)show create database 数据库的名字;
show create database day06_2;
4.修改数据库的操作
(1)修改数据库的字符集
①alter database 数据库的名字 character set 字符集;
alter database day06_2 character set gbk;
5.数据库的删除
(1)drop database 数据库的名字;
6.切换数据库(选中数据库)
(1)use 数据库的名字
7.查看一下当前正使用的数据库
(1)select database();
8.创建表
(1)create table 表名(
列名 列的类型(长度) 约束,
列名2 列的类型(长度) 约束

列的类型:
Java sql
int int
char/string char(固定长度)/varchar(可变长度)
char(3):二 存放形式:二空格空格
varchar(3):二 存放形式:二
double double
float float
boolean boolean
data date:YYYY-MM-DD
time:hh:mm:ss
datatime:YYYY-MM-DD hh:mm:ss 默认值为dull
timestamp:YYYY-MM-DD hh:mm:ss 默认使用当前时间
text:主要是用来存放二进制
blob:存放的是二进制
列的约束:
主键约束:primary key(唯一的,不能为空)
唯一约束:unique
非空约束:not null
创建表:
create database 数据库的名称;
use 数据库的名称;
1.分析实体:学生
2.学生ID
3.姓名
4.姓名
5.年龄
create table teacher(
sid int primary key,
sname varchar(31),
sex int,
age int
);
9.查看表:
(1)查看所有的表:show tables;
(2)查看表的创建过程show create table student;
(3)查看表的结构:desc student;
10.修改表:
(1)alter table 表名 add 列名 列的类型 列的约束
(2)添加列(add)(添加一行列名为chengji,类型为int,约束为not null的表行)
alter table student add chengji int not null;
修改列(modify)(将sex的int的类型改为varchar类型)
alter table student modify sex varchar(2);
修改列名(change)(将sex改为gender,sex的int类型也改为varchar)
alter table student change sex gender varchar(2);
删除列(drop)
alter table student drop chengji;
修改表名(rename)
rename table student to heima;
修改表的字符集()
alter table heima character set 字符集;
11.删除表:
(1)drop table heima;
12.插入数据:
(1)insert into 表名(列名1,列名2,列名3) values(值1,值2,值3);
insert into student(sid,sname,sex,age) values(1,’zhangsan’,1,23);
(2)若列名全用,则可以直接写insert into student values(1,’zhangsan’,1,23);
(3)insert into student(sid,sname) values(3,’lisi’);(直插入部分列,不可按(2)那样写)
(4)批量插入:
insert into student values(3,’zhangsan’,1,23),(4,’zhangsan’,1,23),(5,’zhangsan’,1,23),(6,’zhangsan’,1,23);

13.查看表中数据
(1)select * from student;
14.删除记录
(1)delete from 表名 where 条件;
delete from student where sid-10;(此处应该为删除sid为10的一行,但为何我删的只剩sid为10的那一横了)#####
delete from student;(如果没有指定条件,会将表中所有数据删除)
(2)面试问题:delete删除数据和truncate删除数据有什么区别
①delete:DML,一条一条删除表中数据
②truncate:DDL,先删除表再重建表
15,更新表记录
(1)update 表名 set 列名=列的值,列名2=列的值2 where 条件
(2)将sid为5的名字改成李四,如果参数说是字符串,日期要加上单引号
①update student set sname=’李四’ where sid=’5’;
15.查询数据
(1)select [distinct] [ * ] [列名1,列名2] from 表名 [where 条件]
①distinct:去处重复的数据
②商品分类:手机数码,鞋靴箱包
1)分类的ID
2)分类名称
3)分类描述
create table category(
cid int primary key auto-increment,
cname varchar(10),
cdesc varchar(31)
);
insert into category values(null,’手机数码’,’电子产品,黑马生产’);
所有商品
1,商品ID
2,商品名称
3,商品价格
4,生产日期
5,商品分类ID
商品和商品分类:所属关系
create table product(
pid int primary key auto_increment,
pname varchar(10),
price double,
pdate timestamp,
cno int
);
insert into product values(null,’小米mix4’,998,null,1);
insert into product values(null,’锤子’,2888,null,1);
insert into product values(null,’阿迪王’,99,null,2);
insert into product values(null,’老村长’,88,null,3);
insert into product values(null,’劲酒’,35,null,3);
insert into product values(null,’小熊饼干’,1,null,4);
insert into product values(null,’卫龙辣条’,1,null,5);
insert into product values(null,’旺旺大饼’,1,null,5);
别名查询,as的关键字,as关键字是可以忽略
表的别名:select p.pname,p.price from product as p;
from product as p;
列的别名:select pname as 商品名称,price as 商品价格 from product;
省略as关键字:select pname 商品名称,price 商品价格 from product;
查询价格
select price from product;
去掉重复的价格:select distinct price from product;
select运算查询(仅仅在查询结果上做了运算)
select ,price1.5 from product;
select ,price0.5 as 折后价 from product;
条件查询where条件
查询商品价格>60元的所有商品
select * from product where price > 60;
where后的条件写法
关系运算符:> >= < <= = != <>
<>:不等于(标准SQL语法)
!=:不等于(非标准SQl语法)
select * from product where price != 88;
select * from product where price <> 88;
查询商品在10到100之间的
select * from product where price >10 and price < 100;
select * from product where price between 10 and 100;
查询出商品价格 小于10 或者商品价格 大于900
selece * from product where price <10 or price >900;
like;模糊查询
_:代表的是一个字符
%:代表的是多个字符
查出巡出名字中带有病的所有商品‘%饼%’
select * from product where pname like ‘%饼%’;
查询名字的第二个字是熊的所有商品 ‘_熊%’;
select * from product where pname like ‘_熊%’;
in 在某个范围中获得值
查询出商品分类ID在1,4,5里面的所有商品
select * from product where cno in (1,4,5);
0.查询所有商品,按照价格进行排序
(1)select * from product order by price;(默认升序)
(2)select * from product order by price desc;(asc为升序,desc为降序)
查询名称中有 小 的商品,按价格降序排序
select * from product where pname like ‘%小%’ order by price desc;
聚合函数:
sum():求和
avg();求平均值
count():统计数量
max():最大值
min():最小值
1.获得所有商品价格的总和
(1)select sum(price) from product;
2.获得所有商品的平均值
(1)select avg(price) from product;
3.计算所有商品的个数
(1)select count() from product;
4.注意:where条件后面不能接聚合函数
5.查出商品价格大于平均价格的所有商品
(1)查出所有商品
①select * from product;
(2)大于平均价格
①select avg(price) from product;
1)子查询
2)select * from product where price > (select avg(price) from product);
分组:group by
1.根据cno字段分组。分组后统计商品的个数
(1)select cno,count(
) from product group by cno;
2.根据cno分组,分组统计每组商品的平均价格,并且商品平均价格>60
(1)select cno,avg(price)
from product group by cno
having avg (price) > 60;
having关键字 可以接聚合函数的 出现在分组之后
where 关键字 它是不可以接聚合函数的 出现在分组之前
编写顺序
select…from…where…group by…having…order by
执行顺序
from…where…group by…having…select…order by
找到哪张表,,找到数据,,将数据进行分组,,进一步筛选,,找到要显示的东西,,按规定排序显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值