sql学习

一、对数据库的操作

创建库
1、CREATE DATABASE db;--创建数据库db
2、SHOW DATABASES;--显示数据库
3、SHOW CREATE DATABASE db; --查看数据库db的编码
删除一个库
1、drop database db
使用库
use db
查看当前正在操作的库
select database()

二、对数据库表的操作

1、创建一张表
create table user(
uid int(32) primary key auto_increment,
uname varchar(32),
upassword varchar(32)
);
2、查看数据库表
show tables;
查看表的结构(设计表)
desc user;
3、删除一张表
drop table user;
4、修改表
alter table 表名 add 字段名 类型(长度) [约束]
alter table user add uinfo varchar(32) not null;--添加一列
alter table 表名 modify 要修改的字段名 类型(长度) [约束]
alter table user modify uinfo varchar(100) null;--修改列的类型(长度、约束)
alter table 表名 change 旧列名 新列名 类型(长度) [约束]
alter table user change uinfo info varchar(32) not null;--修改列的列名
alter table 表名 drop 列名
alter table user drop info;--删除表的列
rename table 表名 to 新表名
rename table user to tbl_user;--修改表名
alter table 表名 character set 编码

三、对数据库表记录进行操作(修改)

1、insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)
insert into tbl_user(uid,uname,upassword) values(null,'zhang','123');--插入记录
insert into 表名 values(值1,值2,值3……)
insert into tbl_user values(null,'liu','456');
2、修改表记录
2.1不带条件的
update 表名 set 字段名=值, 字段名=值, 字段名=值……
2.2 带条件的
update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件
update tbl_user set upassword='999' where uid=1;
3.删除表记录
3.1 带条件的
delete from 表名 where 条件
delete from tbl_user where uid=1;            --删除后,uid不会重置!
3.2.不带条件的
先准备数据
insert into tbl_user values(null,’老王’,’666’);
删除操作
delete from 表名;
4.查询操作
语法:
    select [distinct] *| 列名,列名 from 表名 [where条件]
4.1 简单查询
1.查询所有商品
select * from product;
2. 查询商品名和商品价格
select pname,price from product;
3.查询所有商品信息使用表别名
select * from product as  p;
4.查询商品名,使用列别名
select pname as  p from product
5.去掉重复值(按照价格)
select distinct(price) from product;
6.将所有的商品的价格+10进行显示
select pname,price+10 from product;
4.2 条件查询
1.查询商品名称为"左慈"的商品信息
select * from product where pname='左慈';
2.查询价格>60元的所有商品信息
select * from product where price>60;
3.查询商品名称含有"士"字的商品信息
select * from product where pname like '%士%';
4.查询商品id在(3,6,9)范围内的所有商品信息
select * from product where pid in (3,6,9);
5.查询商品名称含有"士"字并且id为6的商品信息
select * from product where pname like '%士%' and pid=6;
6.查询id为2或者6的商品信息
select * from product where pid=2 or pid=6;
4.3 排序
1.查询所有的商品,按价格进行排序(升序、降序)
select * from product order by price asc/desc;
2.查询名称有"士"的商品信息并且按照价格降序排序
select * from product where pname like '%士% order by price desc;
4.4 聚合函数
1.获得所有商品的价格的总和
select sum(price) from product;
2.获得所有商品的平均价格
select avg(price) from product;
3.获得所有商品的个数
select count(*) from product;
4.5 分组操作
1.添加分类id (alter table product add cid varchar(32);)
2.初始化数据
update product set cid='1';
update product set cid='2' where  pid in (5,6,7);
1.根据cid字段分组,分组后统计商品的个数
select cid,count(*) from product group by cid;
2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。
select cid,avg(price) from product group by cid having avg(price)>20000;
4.6 查询总结
select  一般在的后面的内容都是要查询的字段
from  要查询到表
where
group by 
having  分组后带有条件只能使用having
order by 它必须放到最后面

多表查询

SELECT * FROM category,product WHERE cid = category_id;
SELECT * FROM category c ,product p WHERE c.cid = p.category_id;
SELECT cname FROM category c ,product p WHERE c.cid = p.category_id;
SELECT DISTINCT cname from category c,product p WHERE c.cid = p.category_id;

--内连接
SELECT * from category c INNER JOIN product p WHERE c.cid = p.category_id;
--左外连接
SELECT * from category c LEFT JOIN product p on c.cid = p.category_id;

SELECT cname,count(category_id) from category c LEFT OUTER JOIN product p on c.cid = p.category_id GROUP BY cid;




子查询
select cid from category where cname = '化妆品';
select * from product where category_id = 'c003';

select * from product where category_id = (select cid from category where cname = '化妆品');

select p.* from product p ,category c where p.category_id = c.cid and cname = '化妆品';
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容

  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 1,620评论 0 6
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,035评论 0 19
  • 喜欢会淡淡的磨灭吧
    民谣烹饪阅读 198评论 0 0
  • 想起去年冬天,我就是这个时候了解了你,“你在每个阳光午后里的那一壶青山绿水,那几本有趣的言情和电脑里循环的押尾桑。...
    9a8565a5ad22阅读 190评论 0 0
  • 福岛核电站爆炸事件发生之后,很多人谈核色变,以至于很长时间我都不敢随便发朋友圈,因为无论我发的是什么内容,微信里的...
    l七卡l阅读 1,791评论 0 0