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;
原创粉丝点击