mysql 语法复习
数据库的操作,Navicat简单使用
表,存数据
增删改查
多表查询
设计
了解
mysql数据库
数据库就是一个存储数据的仓库,其本质是文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行
增加修改删除查询索引等操作
mysql按列查询数据
对企业的意义
由于mysql数据库体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库
b/s架构 浏览器、服务器 特点:小,快,方便
c/s架构 客户端、服务器 特点:大,强,
数据库拓扑图:
mysql的安装:
1.下载,
(1)官网
(2)度娘
2.安装
sc delete mysql 直接删除底层,彻底
解压下载包,配置环境变量
在有限的cmd中配置启动路径
mysql install MySQL --defalts-file="D:\big33\mysql-5.7.17-winx64\my-default.ini"(修改成自己的存放路径)
然后
mysqld --install
mysqlld --instialize
net start mysql
之后
修改mysql 密码
mysql在启动之后 会初始化一个密码,该密码在mysql的安装目录
data/xxx.err 结尾的文件中
在cmd 中执行 mysql -uroot -p
输入查询到的密码
修改密码:执行指令:Set PASSWORD=PASSWORD(‘root’);
退出使用新密码 123456 (自己输入的密码)登录
下一步
在cmd中 执行:mysql -uroot -p
输入密码登陆mysql
然后
1. create database mydb2 character set utf8 创建数据库并指定数据库编码
2.show databases 显示 mysql中创建的所有数据库
3.use mydb2 进入所选择的数据库
5.drop database mydb2 删除指定数据库
6.select databas(); 查看当前所使用的数据库
7.show tables 查看当前数据库的所有表
8.desc table 查看表的结构(description)
9.show create table user1 查看建表语句
10.insert into usr1(id,name,age)values(3,“李沁”,33) 插入一条记录
11.select * from user1 查询表中所有记录
12.insert into usr1(id,name)values(3,"林志玲" ) 插入一条记录
13.insert into usr1 values(4,“甄凯",45) 插入所有记录
14.
create table person(id int PRIMARY key auto_increment,
name VARCHAR(20),
age int,
gender VARCHAR(4)
)
delete from person 删除表中所有记录
SELECT * from person 查询表记录
15
create table person1(
id int ,
name varchar(20),
age int ,
sex varchar(4)
)
INSERT INTo person1 values(1,"list1",80,"男")
INSERT INTo person1 values(2,"list2",70,"女")
INSERT INTo person1 values(3,"list3",80,"男")
INSERT INTo person1 values(4,"list4",70,"女")
SELECT * from person1
delete from person1 where id>2 删除id大于2的记录
16.truncate table person1
删除表数据流程:先删除原表,在根据建表语句重新创建表
17。
update person set name=‘张三,age=22,where id = 2
18.
create table products(
id int auto_increment,name varchar(40),
price double,
category varchar(40),
pnum int(11),
description varchar(255),
PRIMARY KEY(id)
)
19.插入大量数据
insert into products VALUES(null,"感悟",100,"励志",100,"一次心灵的鸡汤");
insert into products VALUES(null,"java与模式",67,"计算机",200,"让你的编程,从此有些不一样");
insert into products VALUES(null,"java并发编程实战",190,"计算机",49,"实战大于理论");
insert into products VALUES(null,"设计模式解析",88,"计算机",86,"头脑风暴");
insert into products VALUES(null,"搭地铁游上海",28,"生活百科",120,"一次不一样的旅行");
insert into products VALUES(null,"时空穿行",65,"科技",87,"这是一本好书");
insert into products VALUES(null,"中国国家地理",45,"生活百科",100,"了解你的生活的国家");
insert into products VALUES(null,"欧洲",null,"生活",200,"你梦想中向往的地方");
insert into products VALUES(null,"网管员必备宝典",35,"计算机",120,"上网新手必备书籍");
20.按条件查询
select name,price,pnum from products
select name,price,pnum from products WHERE price > 50 and price <= 100 ORDER BY price DESC
select name,price,pnum from products WHERE price > 50 and price <= 100 ORDER BY price ASC
21,。进行运算
select id,name,price+10+10 from products
22.模糊查询
select * from products where name like '%java%'
查询所有商品信息 按照数量排序 (降序)数量一样 按价格升序
SELECT * from products order by pnum desc,price
23.查询价格在50到100之间的商品
select * from products where price > 50 and price <= 100select * from products where price BETWEEN 50 and 100
24.查询商品价格不为空的商品
select * form products where price = null
25.查询商品名称有java字的商品
select * form products where name like “%java%”
26.查询商品名是两个字的
select * from products where name like "__"
27,求各种商 品的总价
28.求各种商 品的总价并按从高到低排序
29查询出所有商品的类别
30 查询商品id为3,5,7,9的商品
select * from products where id = 1 or id =3 or id = 5
31 求各种商品的总价
select id ,name,price*pnum from products
起别名
select id ,name,price*pnum as "总价" from products
select id ,name,price*pnum "总价" from products
32 求各种商品的 总价并按照从高到低排序
select id ,name,price*pnum from products where price*pnum
排序默认ASC,降序,想要升序指定DESC
33.查询价格在50到100 的商品的id
select id from products where id in (select id ,name,price from products)
34 查询出所有商品的类别
select distinct category from products
聚合函数ifnull
count:统计指定列不为null 的记录行数
sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0
35 统计商品表中共有多少条记录
select count(price) "total" from products
select count(*) "total" from products
36统计商品表中价格大于50的有多少条记录
select count(*) "total" from products where price>50
37 统计有多少商品
select sum(pnum) "数量" from products
38 统计所有商品的总价值
select sum(pnum*price) "总价" from products
39统计所有商品的平均价格
select sum(price*pnum)/sum(pnum) from products
40 统计出记录中price的平均值
select avg(price) from products
41 统计出商品表中price最大和最小值
select max(price) from products
slelct min(IFNULL(price,0)) from products
分组聚合
42,
select * from products group by category
43
if null (price , 0 )
select min(IFNULL(price,0)) from products
将空置为0,使最小值正确
对商品分类别统计, 求出每一种类商品的总数量(名称,数量)
select name,count(*) from products group by category
对商品分类别统计,求出每一种类商品的总数量,数量要大于100 where 数据的过滤,原始数据
select category ,sum(pnum) from products group by category where sum(pnum) > 100
having的作用,过滤
select category ,sum(pnum) from products group by category HAVING sum(pnum)>100 order by sum(pnum)
desc limit 1,2
distinct去重 放在查询条件之前,selelct之前
ifnull(f1,0)
create table orders(
id int PRIMARY KEY AUTO_INCREMENT,
money DOUBLE,
receiveraddress VARCHAR(50),
uid INT
--添加外键
constraint fk_uid foregin key orders(uid ) references user(uid)
)INSERT into orders VALUES(null,1000,"北京",1);
INSERT into orders VALUES(null,2000,"上海",1);
INSERT into orders VALUES(null,3000,"广州",2);
INSERT into orders VALUES(null,4000,"深圳",2);
实体域名
session id
开始和结束的判断
select
USER.uid,USER.name,orders.id,orders.receiveraddress
from user,orders
where
USER.uid = orders.uid
and
user.name ='tom'
sessionId 案例 日志 用户
过期清楚
存储数据
select * from orders where uid = (select uid from user where name = 'tom')
子查询
select * from user,orders where user.uid = orders.uid
select USER.uid,user.name,orders.id,orders.receiveraddress from user,orders where user.uid = orders.uid
char 与varchar区别?
char是一个定长字符串.指定长度不会随着内容的不足而改变
varchar是一个可变长度的字符串,它根据信息自动改变长度.(只在字符串长度小于指定长度情况下)
A. 主键约束 primary key, primary key(id)
B. 唯一约束 某一列的值不为重复可以使用唯一约束. unique
C. 非空约束 not null
D. 默认值约束 default 值
E. 外键约束