mysql 语法复习

数据库的操作,Navicat简单使用    

表,存数据

增删改查

多表查询

设计

了解

mysql数据库

数据库就是一个存储数据的仓库,其本质是文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行

增加修改删除查询索引等操作

mysql按列查询数据

对企业的意义

由于mysql数据库体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库

b/s架构          浏览器、服务器          特点:小,快,方便

c/s架构            客户端、服务器        特点:大,强,

数据库拓扑图:

mysql 语法复习

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   结尾的文件中

mysql 语法复习

在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                                   进入所选择的数据库

4.show create database 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 <= 100
select * 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);


Insert into orders VALUES(null,5000,"东京",4);

实体域名

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. 外键约束