dos窗口mysql创建数据库指定字符集_MySQL数据库 dos 命令窗口命令集
一、DDL:數(shù)據(jù)庫定義語言
數(shù)據(jù)庫的操作:(操作關(guān)鍵字不分大小寫)
create database day01;//創(chuàng)建數(shù)據(jù)庫
show databases;//查看該帳號下的所有數(shù)據(jù)庫
show create database day01;//查看創(chuàng)建的指定數(shù)據(jù)庫的信息,默認(rèn)字符集編碼是utf-8;
SHOW CHARACTER SET;//查看mysql支持的所有字符集
alter database day01 character set gbk;//修改數(shù)據(jù)庫的字符集編碼為gbk
create database day001 character set gb2312;//直接創(chuàng)建一個字符集編碼為gb2312的數(shù)據(jù)庫
drop database day001;//刪除數(shù)據(jù)庫
創(chuàng)建表的前提條件:指明使用的數(shù)據(jù)庫 :use day01;
create table student (id int,name varchar(100),gender varchar(100),age int...);//創(chuàng)建表
show tables;//查看數(shù)據(jù)庫下的所有表
desc student;//查看指定的表的字段信息(表的內(nèi)容)
alter table student add score int;//修改表(添加一個列)
alter table student drop score;//刪除表的一個列(刪除的是已知的列所以不需要類型)
alter table student modify age text;//修改表的某一個列的類型
alter table stu change age ag int;//修改列的名稱
rename table student to stu;//修改表名
show create table stu;//查看創(chuàng)建表的語句
drop table stu;//刪除表
二、DML:數(shù)據(jù)庫表的操作語言
插入:insert
--單條插入
方式一:insert into student (id,name,gender,age) values (1,'ff','female',20);
方式二: insert into student values (2,'gg','male',22); 所有字段值必須按照數(shù)據(jù)庫中表的字段順序依次寫入 ,其中表的字段名可以全部省略
修改:update
update stu set name='mmm' ,age=18 where id=1 ;
update stu set name='mmm' ;
刪除:delete
-- delete刪除的是表中的具體數(shù)據(jù)
-- 單條刪除某條記錄(刪除一整行的內(nèi)容)
DELETE FROM stu WHERE id=1;
-- 多條刪除(刪除所有數(shù)據(jù))
DELETE FROM stu;
-- 選擇器刪除(連接符是or)
DELETE FROM stu WHERE id=9 OR id=10;
-- 刪除整個表以及表中的數(shù)據(jù),重新創(chuàng)建了一個新的表
TRUNCATE TABLE stu;
三、DQL:數(shù)據(jù)庫表的查詢語言
student表
emp表
1.基礎(chǔ)查詢:1.1查詢所有列: 1.2查詢指定列:
--查詢所有數(shù)據(jù)
SELECT * FROMstudent;--查詢指定列的數(shù)據(jù)
SELECT age FROM stu;
2.條件查詢:
2.1 條件查詢介紹 條件查詢就是在查詢時給出WHERE子句,在WHERE子句中可以使用如下運(yùn)算符及關(guān)鍵字: =、!=、<>、、>=; BETWEEN…AND; IN(set); IS NULL; IS NOT NULL AND; OR; NOT
--查詢年齡不是20的學(xué)生 :!=和<>都表示不等于
SELECT * FROM student WHERE sage!=20;SELECT * FROM student WHERE sage<>20;--查詢年齡大于26的學(xué)生
SELECT * FROM student WHERE sage >26;--查詢年齡22到26之間的學(xué)生(BETWEEN 22 AND 26:包含22和26歲的人)
SELECT * FROM student WHERE sage BETWEEN 22 AND 26;SELECT * FROM student WHERE sage>=22 AND sage<=26;--在給定的表中查找指定集合中有的記錄
SELECT * FROM student WHERE sname IN ('qq','rr','ww');--查詢名稱為null的學(xué)生
SELECT * FROM student WHERE sname IS NULL;--查詢名稱不為null的學(xué)生
SELECT * FROM student WHERE sname IS NOT NULL;--查詢sid=S_1005且名字為田七的學(xué)生(and:一般情況下連接不同字段的信息)
SELECT * FROM student WHERE sid='S_1005' AND sname='田七';--查詢sid=S_1005或者sage=20的學(xué)生
SELECT * FROM student WHERE sid='S_1005' OR sage=20;--查詢名稱不是張三的學(xué)生
SELECT * FROM student WHERE NOT sname='張三';
3.模糊查詢:當(dāng)想查詢姓名中包含f字母的學(xué)生時就需要使用模糊查詢了.模糊查詢需要使用關(guān)鍵字LIKE。 通配符: _ 任意一個字符 %:任意0~n個字符
--1.以w開頭的名稱的學(xué)生
SELECT * FROM student WHERE sname LIKE 'w%';--1.1以w開頭的名稱長度為2的學(xué)生
SELECT * FROM student WHERE sname LIKE 'w_';--2.以w結(jié)尾的名稱的學(xué)生
SELECT * FROM student WHERE sname LIKE '%w';--2.1以w結(jié)尾的名稱長度為5的學(xué)生
SELECT * FROM student WHERE sname LIKE '____w';--3.含有w的名稱的學(xué)生
SELECT * FROM student WHERE sname LIKE '%w%';
4.排序 order by 列名 asc(默認(rèn)) desc
--排序order by:默認(rèn)增序,遞增asc,遞減desc
SELECT * FROM student ORDER BY sage DESC;SELECT * FROM student ORDER BY sage ASC;
5.字段控制查詢
5.1 去除重復(fù)記錄 DISTINCT
SELECT DISTINCT * FROM emp WHERE mgr=7698;SELECT DISTINCT mgr FROM emp WHERE mgr=7698;
5.2 a.數(shù)值類型和非數(shù)值類型無法做加法運(yùn)算b.數(shù)值類型和空數(shù)值做加法運(yùn)算:把NULL轉(zhuǎn)換成數(shù)值0的函數(shù)IFNULL,例如IFNULL(列名,0) c.給列名添加別名
查看雇員的月薪與傭金之和。SELECT sal+IFNULL(comm,0) FROMemp ;給上面的結(jié)果新生成的列起個別名。
SELECT sal+IFNULL(comm,0) AS a FROM emp ;
6.聚合函數(shù) sum avg max min count 聚合函數(shù)是用來做縱向運(yùn)算的函數(shù):
COUNT():統(tǒng)計指定列不為NULL的記錄行數(shù);
MAX():計算指定列的最大值;
MIN():計算指定列的最小值; max和min指定的列是字符串類型,使用字符串排序運(yùn)算;
SUM():計算指定列的數(shù)值和(非數(shù)值計算結(jié)果為0);
AVG():計算指定列的平均值(非數(shù)值計算結(jié)果為0);
查詢emp表中記錄數(shù):SELECT COUNT(*) FROMemp;查詢emp表中有獎金的人數(shù):
SELECT COUNT(comm) FROMemp;查詢emp表中月薪大于2500的人數(shù):
SELECT COUNT(*) FROM emp WHERE sal>2500;統(tǒng)計月薪與獎金之和大于2500元的人數(shù):
SELECT COUNT(*) FROM emp WHERE sal+IFNULL(comm,0)>2500;查詢有獎金的人數(shù),有領(lǐng)導(dǎo)的人數(shù):count統(tǒng)計數(shù)量(非null)
SELECT COUNT(comm),COUNT(mgr) FROMemp;SELECT COUNT(comm),COUNT(mgr) FROM emp WHERE comm IS NOT NULL OR mgr IS NOT NULL;查詢所有雇員月薪和:
SELECT SUM(sal) FROMemp;查詢所有雇員月薪和,以及所有雇員獎金和:
SELECT SUM(sal),SUM(comm) FROMemp;查詢所有雇員月薪+傭金和:
SELECT SUM(sal+IFNULL(comm,0)) FROMemp;統(tǒng)計所有員工平均工資:
SELECT AVG(sal+IFNULL(comm,0)) FROMemp;查詢最高工資和最低工資:
SELECT MAX(sal+IFNULL(comm,0)),MIN(sal+IFNULL(comm,0)) FROM emp;
7.分組查詢:
7.1當(dāng)需要分組查詢時需要使用GROUP BY子句
7.2 HAVING子句 注:having與where的區(qū)別: 1.having是在分組后對數(shù)據(jù)進(jìn)行過濾.后面可以使用聚合函數(shù) where是在分組前對數(shù)據(jù)進(jìn)行過濾,不可以使用聚合函數(shù)
查詢每個部門的部門編號和每個部門的工資和:SELECT deptno,SUM(sal+IFNULL(comm,0)) 部門總工資 FROM emp GROUP BYdeptno;查詢每個部門的部門編號 以及 每個部門的人數(shù):
SELECT deptno, COUNT(*)FROM emp GROUP BYdeptno;查詢每個部門的部門編號以及每個部門工資大于1500的 人數(shù):
SELECT deptno, COUNT(*) FROM emp WHERE (sal+IFNULL(comm,0))>1500 GROUP BYdeptno;查詢部門工資總和大于9000的部門編號以及工資和:
SELECT deptno,SUM(sal+IFNULL(comm,0)) FROM emp GROUP BYdeptnoHAVING SUM(sal+IFNULL(comm,0))>9000;
8.LIMIT用來限定查詢結(jié)果的起始行,以及總行數(shù)
查詢5行記錄,起始行從0開始SELECT * FROM emp LIMIT 0,5;
查詢總結(jié):
select * from 表名 where 行條件 group by 列名 having 條件 order by 列名 limit start,count
①執(zhí)行順序:from where 得到一個虛擬表1
②group by having :先分組再從組中取出符合having的條件 得到一個虛擬表2
③select:在所有條件完成后去查詢
④order by
⑤limit
總結(jié)
以上是生活随笔為你收集整理的dos窗口mysql创建数据库指定字符集_MySQL数据库 dos 命令窗口命令集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【总结】机器学习划分数据集的几种方法
- 下一篇: 【论文】引用格式 NoteExpress