mysql-语句
来源:互联网 发布:运营商的云计算项目 编辑:程序博客网 时间:2024/06/09 17:27
创建数据库和表:
/* 创建数据库 create database 数据库名;*/CREATE DATABASE mydatabase;/* 使用数据库 Use 数据库名;*/USE mydatabase;/* 创建数据表的格式 create table 表名( 列名1 数据类型 约束, 列名2 数据类型 约束, ); 创建用户表,用户编号,姓名,用户的地址 将编号列,设置为主键约束,保证列的数据唯一性,非空性 primary key AUTO_INCREMENT 让主键列数据,实现自动增长*/CREATE TABLE users( uid INT PRIMARY KEY AUTO_INCREMENT, uname VARCHAR(20), uaddress VARCHAR(50));/* show tables 显示所有数据表 desc users 查看表中结构 drop table users删除数据表*/SHOW TABLES;
修改表:
CREATE TABLE users( uid INT PRIMARY KEY AUTO_INCREMENT, uname VARCHAR(20), uaddress VARCHAR(50));/* 添加列,添加字段 alter table 表名 add 列名 数据类型 约束 */ALTER TABLE users ADD tel INT;/* 修改列,在原有的列上修改 修改列名,数据类型,约束 alter table 表名 modify 列名 数据类型 约束*/ALTER TABLE users MODIFY tel VARCHAR(50);/* 修改列名 alter table 表名 change 旧列名 新列名 数据类型 约束*/ALTER TABLE users CHANGE tel newtel DOUBLE;/* 删除列 alter table 表名 drop 列名*/ALTER TABLE users DROP newtel;/* 修改表名 rename table 表名 to 新名*/RENAME TABLE users TO newuser;
添加数据:
CREATE TABLE product( -- 主键列,自动增长 id INT PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(100) NOT NULL, price DOUBLE);/* 像表中添加数据 insert into 表名(列名1,列名2,列名3) values (值1,值2,值3)*/INSERT INTO product(id,pname,price) VALUES (1,'电脑',1234.44);INSERT INTO product(pname,price) VALUES ('手机',1323.34);INSERT INTO product VALUES (3,'被子',123.2);/* 添加数据格式,批量写入 格式: insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)*/INSERT INTO product (id,pname,price) VALUES (4,'箱子',123.44),(5,'鞋子',234.23);
修改表:
/* 对数据进行更新操作 数据在原有的基础上修改 update 表名 set 列1=值1,列2=值2 where 条件 where 条件:数据中的唯一性*/USE mydatabase;-- 修改电脑为电灯UPDATE product SET pname='电灯' WHERE id=1;-- 修改被子价格为234UPDATE product SET price=234 WHERE id=3;/* 修改条件的写法 id=6 id<>6 //不等于6 id<=6 && || ! &&:and ||or !not id in(1,2,3)包含*/-- 将箱子的价格和鞋子的价格修改为300UPDATE product SET price=300 WHERE id=4 OR id=5;/*删除表中的数据delete from 表名 where 条件drop table 表名 删除整个表*/DELETE FROM product WHERE id=1;
查询:
CREATE TABLE zhangwu( id INT PRIMARY KEY AUTO_INCREMENT, zname VARCHAR(200), zmoney DOUBLE);INSERT INTO zhangwu (id,zname,zmoney) VALUES (1,'吃饭支出',247);INSERT INTO zhangwu (id,zname,zmoney) VALUES (2,'工资收入',12345);INSERT INTO zhangwu(id,zname,zmoney) VALUES (3,'服装支出',1000);INSERT INTO zhangwu(id,zname,zmoney) VALUES (4,'吃饭支出',325);INSERT INTO zhangwu(id,zname,zmoney) VALUES (5,'股票收入',8000);INSERT INTO zhangwu(id,zname,zmoney) VALUES (6,'打麻将支出',8000);INSERT INTO zhangwu(id,zname,zmoney) VALUES (7,NULL,5000);/* 查询指定的数据 select 列名1,列名2 from 表名 */SELECT zname FROM zhangwu;SELECT zmoney,zname FROM zhangwu;/* 查询所有列的数据 select * from 表名*/SELECT * FROM zhangwu;/* 查询去掉重复记录 DISTINCT */SELECT DISTINCT zmoney FROM zhangwu;/* 查询重新命名列 as关键字*/SELECT zname AS 'name' FROM zhangwu;/* 查询数据中,直接进行数学计算*/SELECT zname,zmoney+100 AS 'sum' FROM zhangwu;/* 查询所有的吃饭支出*/SELECT * FROM zhangwu WHERE zname='吃饭支出';-- 查询金额大于1000SELECT * FROM zhangwu WHERE zmoney>1000;-- 查询金额在2000到5000之间SELECT * FROM zhangwu WHERE zmoney BETWEEN 2000 AND 5000;-- 查询金额是 1000,3500,5000 其中一个SELECT * FROM zhangwu WHERE zmoney IN(1000,3500,5000);-- like 模糊查询 配合通配符-- 查询所有的支出SELECT * FROM zhangwu WHERE zname LIKE '%支出%';-- 查询账务名字,四个字符的SELECT * FROM zhangwu WHERE zname LIKE'____'-- 查询账务名,不为空的SELECT * FROM zhangwu WHERE zname IS NOT NULL;
查询排序:
/* 查询,对结果集进行排序 升序,降序,对指定列排序 order by 列名 [desc][asc] desc 降序 asc 升序排列,可以不写*/-- 查询账务表,价格进行升序SELECT * FROM zhangwu ORDER BY zmoney ASC; -- 查询账务表,价格进行降序SELECT * FROM zhangwu ORDER BY zmoney DESC;-- 查询账务表,查询所有的支出,对金额降序排列-- 先过滤条件 where 查询的结果再排序SELECT * FROM zhangwu WHERE zname LIKE'%支出%' ORDER BY zmoney DESC;
聚合函数:
/* count 求和,对表中的数据个数求和 查询统计账务表中,一共有多少条数据*/SELECT COUNT(*) AS 'count' FROM zhangwu ;-- sum求和,对一列数据进行求和计算SELECT SUM(zmoney) FROM zhangwu;-- 求和,统计所有支出的总金额SELECT SUM(zname) FROM zhangwu WHERE zname LIKE'%收入%'-- max 函数,对某列数据,获取最大值SELECT MAX(zmoney) FROM zhangwu;-- avg,计算一个列所有数据的平均数SELECT AVG(zmoney)FROM zhangwu;
分组查询:
/* 查询所有的数据 吃饭支出 共计多少 工资收入 共计多少 服装支出 共计多少 股票收入 共计多少 打麻将支出 共计多少钱 分组查询: group by 被分组的列名 必须跟随聚合函数 select 查询的时候,被分组的列,要出现在select 选择列的后面*/USE mydatabase;SELECT SUM(zmoney),zname FROM zhangwu GROUP BY zname;-- 对zname 内容进行分组查询求和,但只要支出SELECT SUM(zmoney) AS 'getsum',zname FROM zhangwuWHERE zname LIKE '%支出%' GROUP BY znameORDER BY getsum DESC;-- 对zname内容进行分组查询求和,但只要支出,显示金额大于5000-- 结果集是分组查询后,再次进行筛选,不能使用where, 分组后再次过滤,关键字 havingSELECT SUM(zmoney) AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'GROUP BY zname HAVING getsum>5000;
阅读全文
0 0
- mysql 语句
- MYSQL语句
- MYSQL语句
- mysql语句
- mysql 语句
- mysql-语句
- mysql语句
- MySQL语句
- mysql语句
- MySQL语句
- MySQL语句
- mysql语句
- mysql语句
- mysql 语句
- mysql 语句
- mysql语句
- mysql语句
- mysql 语句
- 并查集的实现
- for循环语句的使用
- go语言 通过http包搭建简单web服务器 对http包源码的略微分析
- 左右逆和伪逆
- python中scrapy的学习
- mysql-语句
- 时间复杂性求解
- 奇异值分解(SVD)原理详解及推导
- HDU 5936 Difference 折半枚举,暴力
- 关于mvp
- 世界名画陈列馆问题-重复&不重复两种
- 【2-SAT】【AtCoder Regular Contest 069 F】Flag
- Android中Json数据格式的解析
- Controller for AR.Drone