/*
? ? 創(chuàng)建數(shù)據(jù)庫
? ? create database 數(shù)據(jù)庫名;
*/
CREATE DATABASE mybase;
/*
? 使用數(shù)據(jù)庫
? use 數(shù)據(jù)庫名
*/
USE mybase;
/*
? ? ? 創(chuàng)建數(shù)據(jù)表的格式
? ? ? create table 表名(
? ? ? ? ? 列名1 數(shù)據(jù)類型 約束,
? ? ? ? ? 列名2 數(shù)據(jù)類型 約束,
? ? ? ? ? 列名3 數(shù)據(jù)類型 約束
? ? ? );
? ? ? 創(chuàng)建用戶表,用戶編號,姓名,用戶的地址
? ? ? 將編號列,設(shè)置為主鍵約束,保證列的數(shù)據(jù)唯一性,非空性
? ? ? primary key AUTO_INCREMENT
? ? ? 讓主鍵列數(shù)據(jù),實現(xiàn)自動增長
*/
CREATE TABLE users (
? ? uid INT PRIMARY KEY AUTO_INCREMENT ,
? ? uname VARCHAR(20),
? ? uaddress VARCHAR(200)
);
/*show tables? 顯示所有數(shù)據(jù)表
desc? users? ? 查看表中結(jié)構(gòu)
drop table users 刪除數(shù)據(jù)表
*/
CREATE TABLE users (
? ? uid INT PRIMARY KEY AUTO_INCREMENT,
? ? uname VARCHAR(20),
? ? uaddress VARCHAR(200)
);
/*
? ? 添加列,添加字段
? ? alter table 表名 add 列名 數(shù)據(jù)類型 約束
*/
? ALTER TABLE users ADD tel INT ;
? /*
? ? 修改列, 在原有的列上修改
? ? 修改列名,數(shù)據(jù)類型約束?
? ? alter table 表名 modify 列名 數(shù)據(jù)類型 約束
? */
? ALTER TABLE users MODIFY tel VARCHAR(50);
? /*
? ? 修改列名
? ? alter table 表名 change 舊列名 新列名 數(shù)據(jù)類型 約束
? */
? ALTER TABLE users CHANGE tel newtel DOUBLE;
? /*
? ? 刪除列
? ? alter table 表名 drop 列名?
? */
? ALTER TABLE users DROP newtel;
? /*
? ? 修改表名
? ? rename table 表名 to 新名
? */
? RENAME TABLE users TO newusers
CREATE TABLE product(
? -- 主鍵列,自動增長
? id INT PRIMARY KEY AUTO_INCREMENT,
? -- 商品名字,可變字符,非空
? pname VARCHAR(100) NOT NULL,
? -- 商品的價格,double
? price DOUBLE
);
/*
? 向數(shù)據(jù)表中添加數(shù)據(jù) insert
? 格式:
? ? insert into 表名(列名1,列名2,列名3) values (值1,值2,值3)
? ? 注意:
? ? ? ? 列名,表名問題
? ? ? ? 對應(yīng)問題,
? ? ? ? 個數(shù),數(shù)據(jù)類型
*/
INSERT INTO product (id,pname,price) VALUES (1,'筆記本',5555.99);
INSERT INTO product (id,pname,price) VALUES (2,'智能手機(jī)',9999);
/*
? 添加數(shù)據(jù)格式,不考慮主鍵
? 格式:
? ? insert into 表名 (列名) values (值)
*/
INSERT INTO product (pname,price) VALUES('洗衣機(jī)',800);
/*
? 添加數(shù)據(jù)格式,所有值全給出
? 格式:
? ? insert into 表名 values (全列值)
*/
INSERT INTO product VALUES (4,'微波爐',300.25);
/*
? 添加數(shù)據(jù)格式,批量寫入
? 格式:
? ? insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)
*/
INSERT INTO product (pname,price) VALUES
('智能機(jī)器人',25999.22),
('彩色電視',1250.36),
('沙發(fā)',5899.02)
-- insert into product (pname,price) values ('熱水器',485.02)
-- INSERT INTO product (id,pname,price) VALUES (7,'空調(diào)',485.02)
CREATE TABLE users (
? ? uid INT PRIMARY KEY AUTO_INCREMENT,
? ? uname VARCHAR(20),
? ? uaddress VARCHAR(200)
);
/*
? ? 添加列,添加字段
? ? alter table 表名 add 列名 數(shù)據(jù)類型 約束
*/
? ALTER TABLE users ADD tel INT ;
? /*
? ? 修改列, 在原有的列上修改
? ? 修改列名,數(shù)據(jù)類型約束?
? ? alter table 表名 modify 列名 數(shù)據(jù)類型 約束
? */
? ALTER TABLE users MODIFY tel VARCHAR(50);
? /*
? ? 修改列名
? ? alter table 表名 change 舊列名 新列名 數(shù)據(jù)類型 約束
? */
? ALTER TABLE users CHANGE tel newtel DOUBLE;
? /*
? ? 刪除列
? ? alter table 表名 drop 列名?
? */
? ALTER TABLE users DROP newtel;
? /*
? ? 修改表名
? ? rename table 表名 to 新名
? */
? RENAME TABLE users TO newusers
CREATE TABLE zhangwu (
? id INT PRIMARY KEY AUTO_INCREMENT, -- 賬務(wù)ID
? zname VARCHAR(200), -- 賬務(wù)名稱
? 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);
/*
? 查詢指定列的數(shù)據(jù)
? 格式:
? ? select 列名1,列名2 from 表名
*/
SELECT zname,zmoney FROM zhangwu;
/*
? 查詢所有列的數(shù)據(jù)
? 格式:
? ? select * from 表名
*/
SELECT * FROM zhangwu;
/*
? 查詢?nèi)サ糁貜?fù)記錄
? DISTINCT 關(guān)鍵字 跟隨列名
*/
SELECT? DISTINCT zname FROM zhangwu
/*
? 查詢重新命名列
? as 關(guān)鍵字
*/
SELECT zname AS 'name' FROM zhangwu
/*
? 查詢數(shù)據(jù)中,直接進(jìn)行數(shù)學(xué)計算
? 列對數(shù)字進(jìn)行計算
*/
SELECT zname,zmoney+1000 AS'sum' FROM zhangwu
-- 查詢所有的吃飯支出
SELECT * FROM zhangwu WHERE zname='吃飯支出'
-- 查詢金額大于1000
SELECT * FROM zhangwu WHERE zmoney>1000
-- 查詢金額在2000到5000之間
SELECT * FROM zhangwu WHERE zmoney >= 2000 AND zmoney <= 5000
-- 改造成between and 方式
SELECT * FROM zhangwu WHERE zmoney BETWEEN 2000 AND 5000
-- 查詢金額是 1000,3500,5000 其中一個
SELECT * FROM zhangwu WHERE zmoney = 1000 OR zmoney=3500 OR zmoney=5000
-- 改造成in方式
SELECT * FROM zhangwu WHERE zmoney? IN (1000,3500,5000)
-- like 模糊查詢 配合通配符
-- 查詢所有的支出
SELECT * FROM zhangwu WHERE zname LIKE '%支出%'
-- 查詢賬務(wù)名字,五個字符的
SELECT * FROM zhangwu WHERE zname LIKE'_____'
-- 查詢賬務(wù)名,不為空的
SELECT * FROM zhangwu WHERE zname IS NOT NULL
SELECT * FROM zhangwu WHERE? NOT ( zname IS NULL)
/*
? 查詢,對結(jié)果集進(jìn)行排序
? 升序,降序,對指定列排序
? order by 列名 [desc][asc]
? desc 降序
? asc? 升序排列,可以不寫
*/
-- 查詢賬務(wù)表,價格進(jìn)行升序
SELECT * FROM zhangwu ORDER BY zmoney ASC
-- 查詢賬務(wù)表,價格進(jìn)行降序
SELECT * FROM zhangwu ORDER BY zmoney DESC
-- 查詢賬務(wù)表,查詢所有的支出,對金額降序排列
-- 先過濾條件 where 查詢的結(jié)果再排序
SELECT * FROM zhangwu WHERE zname LIKE'%支出%' ORDER BY zmoney DESC
/*
? 使用聚合函數(shù)查詢計算
*/
-- count 求和,對表中的數(shù)據(jù)的個數(shù)求和? count(列名)
-- 查詢統(tǒng)計賬務(wù)表中,一共有多少條數(shù)據(jù)
SELECT COUNT(*)AS'count' FROM zhangwu
-- sum求和,對一列中數(shù)據(jù)進(jìn)行求和計算 sum(列名)
-- 對賬務(wù)表查詢,對所有的金額求和計算
SELECT SUM(zmoney) FROM zhangwu
-- 求和,統(tǒng)計所有支出的總金額
SELECT SUM(zname) FROM zhangwu WHERE zname LIKE'%收入%'
INSERT INTO zhangwu (zname) VALUES ('彩票收入')
-- max 函數(shù),對某列數(shù)據(jù),獲取最大值
SELECT MAX(zmoney) FROM zhangwu
-- avg 函數(shù),計算一個列所有數(shù)據(jù)的平均數(shù)
SELECT AVG(zmoney)FROM zhangwu
/*
? ? 查詢所有的數(shù)據(jù)
? ? 吃飯支出 共計多少
? ? 工資收入 共計多少
? ? 服裝支出 共計多少
? ? 股票收入 共計多少
? ? 打麻將支出 共計多少錢
? ? 分組查詢:? group by 被分組的列名
? ? 必須跟隨聚合函數(shù)
? ? select 查詢的時候,被分組的列,要出現(xiàn)在select 選擇列的后面
*/
? SELECT SUM(zmoney),zname FROM zhangwu GROUP BY zname
-- 對zname內(nèi)容進(jìn)行分組查詢求和,但是只要支出
SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'
GROUP BY zname
ORDER BY getsum DESC
-- 對zname內(nèi)容進(jìn)行分組查詢求和,但是只要支出, 顯示金額大于5000
-- 結(jié)果集是分組查詢后,再次進(jìn)行篩選,不能使用where, 分組后再次過濾,關(guān)鍵字 having
SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'
GROUP BY zname HAVING getsum>5000
我是一個自學(xué)Android和JavaWeb的菜鳥。如果可以Flower一下我的GitHub。感激不盡
https://github.com/FoxconnPeter