MySql的基本語句

/*

? ? 創(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容