MySql 简单操作
-- 数据库分类
-- 1- DDL create alter drop
-- 2- DML insert delete update
-- 3- DCL 创建用户 权限管理 安全级别
-- 4- DQL select from where
-- 创建一个数据库
CREATE DATABASE myDataBase;
-- 查看所有的数据库
SHOW DATABASES;
-- 删除一个暑假
DROP DATABASE myDataBase;
-- 使用数据库
USE myDataBase;
/* 创建数据库的格式
create table 表名(
字段名1 类型 约束,
字段名2 类型 约束,
字段名1 类型 约束
);
约束:
*/
CREATE TABLE users(
uid INT,
uname VARCHAR(32),
uaddress VARCHAR(256)
);
-- 删除表
DROP TABLE users;
-- 主键约束 primary key AUTO_INCREMENT : 让主键类数据,实现自动增长
CREATE TABLE users(
uid INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(32),
uaddress VARCHAR(256)
);
-- 显示当前数据库中所有的表
SHOW TABLES;
-- 显示该表中具体结果
DESC newusers;
-- 修改表结构 alter table 表名 add/modify/drop 列名 数据类型 约束
ALTER TABLE users ADD tel INT;
ALTER TABLE users MODIFY tel VARCHAR(20);
ALTER TABLE users DROP tel ;
-- 修改表名
RENAME TABLE users TO newusers;
/*
-- 添加数据
格式:
1- insert into 表名 (列名) values (值) //可以省略主键
2- insert into 表名 values (全列值) //不能省略主键
3- insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3).....;
*/
CREATE TABLE product (
pid INT PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(100) NOT NULL,
pprice DOUBLE
);
INSERT INTO product (pname,pprice) VALUES ("hellokity",1.2);
INSERT INTO product (pname,pprice) VALUES ("只能手机",9999);
INSERT INTO product VALUES (3,"Mac 笔记本",12000);
INSERT INTO product (pname,pprice) VALUES
("电视机",1000),
("笔记本",2000),
("苹果手机",3000);
COMMIT;
/*
-- 更新数据
结构:update 表名 set 列1=值1,列2=值2 where 条件;
*/
update product set pprice = 5.2 where pid = 1;
commit;
update product set pname = '智能手机' where pid = 2;
commit;
/*
-- 修改条件的写法
等于: id = 1
不等于: id <> 1
大于: id > 1
大于等于:id >= 1
小于: id < 1
小于等于:id <= 1
与: and
或: or
非: not
包含 : in
不包含: not in
*/
update product set pprice = 2500 where pid in (2,6);
/*
-- 删除表中的数据
格式:
delete from 表名 where 条件
//drop table 表名 删除整个数据表
删除表中所有的数据:
1- delete from 表名; // 不清空auto_increment 记录数
2- truncate table 表名; // 直接将表删除,再重新建表,auto_increment 将置为零,从新开始。
*/
delete from product where pid = 6;
查询
CREATE TABLE zhangwu (
id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID
name VARCHAR(200), -- 账务名称
money DOUBLE -- 金额
);
INSERT INTO zhangwu(id,name,money) VALUES (1,'吃饭支出',247);
INSERT INTO zhangwu(id,name,money) VALUES (2,'工资收入',12345);
INSERT INTO zhangwu(id,name,money) VALUES (3,'服装支出',1000);
INSERT INTO zhangwu(id,name,money) VALUES (4,'吃饭支出',325);
INSERT INTO zhangwu(id,name,money) VALUES (5,'股票收入',8000);
INSERT INTO zhangwu(id,name,money) VALUES (6,'打麻将支出',8000);
INSERT INTO zhangwu(id,name,money) VALUES (7,null,5000);
select distinct * from zhangwu;
select * from zhangwu t where t.name = '吃饭支出';
select * from zhangwu t where t.money > 1000;
select * from zhangwu t where t.money >=2000 and t.money <=5000;
select * from zhangwu t where t.money between 2000 and 5000 and t.name is not null;
select * from zhangwu t where t.money in (1000,2000,5000);
select * from zhangwu t where t.name like '%支出%';
select * from zhangwu t where not (t.name is null) order by t.money;
-- 排序
select * from zhangwu t where t.money is not null order by t.money;
-- 聚合函数
select count(*) 计数 from zhangwu t ;
select sum(money) from zhangwu t where t.name like '%支出%';
select max(money) from zhangwu ;
select avg(money) from zhangwu ;
-- 分组查询
SELECT sum(t.money) 统计,t.name from zhangwu t where t.name is not null group by t.name order by 统计;
SELECT sum(t.money) 统计,t.name from zhangwu t where t.name is not null group by t.name HAVING 统计 > 5000 order by 统计;
-- 子查询
select * from (SELECT SUM(t.money) 统计,t.name FROM zhangwu t WHERE t.name IS NOT NULL GROUP BY t.name ) f where f.统计>5000
order by 统计;
1.1 条件查询
where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。
格式 :select 字段 from 表名 where 条件;
while条件的种类如下: