|
下面是my sql常用的sql語(yǔ)句操作命令,供大家參考: 1、使用sql對(duì)數(shù)據(jù)庫(kù)操作 連接數(shù)據(jù)庫(kù)命令: mysql -u root -p密碼 創(chuàng)建數(shù)據(jù)庫(kù):create database dbname; 查看所有的數(shù)據(jù)庫(kù):show databases; 刪除數(shù)據(jù)庫(kù): drop database dbname; 切換數(shù)據(jù)庫(kù):use dbname; 2、使用sql對(duì)數(shù)據(jù)庫(kù)表操作 創(chuàng)建數(shù)據(jù)庫(kù)表:語(yǔ)句 create table tablename ( 字段類(lèi)型, 字段類(lèi)型 ) 創(chuàng)建表 user,字段 id username password sex create table user ( id int, username varchar(40), password varchar(40), sex varchar(30) ) mysql的數(shù)據(jù)類(lèi)型 字符串型 VARCHAR、CHAR 當(dāng)創(chuàng)建表時(shí)候,使用字符串類(lèi)型,name varchar(40),指定數(shù)據(jù)的長(zhǎng)度 varchar和char的區(qū)別 varchar的長(zhǎng)度是可變的,比如name varchar(5),存值a ,直接把a(bǔ)存進(jìn)去 char的長(zhǎng)度是固定的,比如 name char(5),存值b,把b存進(jìn)去,后面加很多空格 大數(shù)據(jù)類(lèi)型BLOB、TEXT 使用這個(gè)類(lèi)型可以存儲(chǔ)文件,一般開(kāi)發(fā),不會(huì)直接把文件存到數(shù)據(jù)庫(kù)里面,存文件的路徑 數(shù)值型TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE 對(duì)應(yīng)java里面byte short int long float double 邏輯性 BIT 類(lèi)似java里面的boolean 日期型 DATE:用于表示日期 1945-08-15 TIME:用于表示時(shí)間 19:10:40 下面的兩個(gè)類(lèi)型可以表示日期和時(shí)間 DATETIME:手動(dòng)添加時(shí)間到數(shù)據(jù)表里面 TIMESTAMP:自動(dòng)把時(shí)間添加到表里面 查看表結(jié)構(gòu): desc tablename; mysql的約束有三種: 第一種,非空約束 not null 表示數(shù)據(jù)不能為空 第二種,唯一性約束 unique 表中的記錄不能重復(fù)的 第三種,主鍵約束 primary key 表示非空,唯一性 自動(dòng)增長(zhǎng) auto_increment 創(chuàng)建帶約束的表: create table person ( id int primary key , username varchar(40) not null, sex varchar(20) ) 刪除表: drop table tablename; 查看當(dāng)前的數(shù)據(jù)庫(kù)里面有哪些表: show tables; 3、使用sql對(duì)表中的記錄進(jìn)行操作(增刪改查操作) (1)向表里面添加記錄insert insert into user values(1,'aaa','123456','nan'); 自動(dòng)增長(zhǎng)的效果,創(chuàng)建一個(gè)表 create table stu ( id int primary key atuo_increment, sname varchar(40) ) insert into stu values(null,'aaa'); (2)修改表里面的記錄update 修改user表里面id=1的username修改為QQQ,修改password為999 update user set username='QQQ',password='999' where id=1; (3)刪除表里面的記錄delete 刪除user表里面id=1的記錄 delete from user where id=1; 不添加where條件,把表里面的所有的記錄都刪除 (4)查詢(xún)表中的記錄select 查詢(xún)user表里面的所有的數(shù)據(jù): select * from user; 查詢(xún)user表里面用戶(hù)名和語(yǔ)文成績(jī): select username,chinese from user; 查詢(xún)user表里面id=2的數(shù)據(jù): select * from user where id=2; (4)別名 as 別名: select username as u1,chinese as c1 from user; (5)distinct,去除表里面重復(fù)記錄 語(yǔ)句 select distinct * from tablename; (6)where子句 第一,運(yùn)算符 < > >= <= 查詢(xún)user表里面語(yǔ)文成績(jī)大于60的所有的人員 select * from user where chinese > 60; 第二,in:在范圍內(nèi) 查詢(xún)user表里面英語(yǔ)成績(jī)是80、90的人員的信息 select * from user where english in (80,90); 第三,and:在where里面如果有多個(gè)條件,表示多個(gè)條件同時(shí)滿(mǎn)足 查詢(xún)user表里面語(yǔ)文成績(jī)是100,并且英語(yǔ)成績(jī)是30的人員的信息 select * from user where chinese=100 and english=30; 第四,得到區(qū)間范圍的值 查詢(xún)user表里面語(yǔ)文成績(jī)?cè)?0-100之間的值 寫(xiě)法一,select * from user where chinese >=70 and chinese <=100; 寫(xiě)法二,select * from user where chinese between 70 and 100; 第五,like:模糊查詢(xún) 查詢(xún)user表里面username包含a的人員信息 Select * from user where username like '%a%'; (7)查看當(dāng)前的運(yùn)行的數(shù)據(jù)庫(kù) select database(); (8)對(duì)表中查詢(xún)的記錄排序order by order by寫(xiě)在select語(yǔ)句的最后 第一,升序 order by要排序字段 asc(asc可以省略,默認(rèn)的情況下就是升序) 對(duì)user表里面查詢(xún)的數(shù)據(jù),根據(jù)語(yǔ)文成績(jī)進(jìn)行升序排列 select * from user order by chinese asc; 第二,降序 order by要排序字段 desc 對(duì)user表里面的英語(yǔ)成績(jī)進(jìn)行降序排列 select * from user order by english desc; 4、聚集函數(shù) 第一,count()函數(shù),根據(jù)查詢(xún)的結(jié)果,統(tǒng)計(jì)記錄數(shù) 寫(xiě)法 select count(*) from ...where.... 查詢(xún)user表里面有多少條記錄 select count(*) from user; 查詢(xún)user表里面語(yǔ)文成績(jī)大于60的人員有多少 select count(*) from user where chinese>60; 第二,sum()函數(shù),求和的函數(shù) 寫(xiě)法 select sum(要進(jìn)行求和字段) from ...where.... 得到user表里面的語(yǔ)文的總成績(jī) select sum(chinese) from user; 得到user表里面語(yǔ)文總成績(jī),英語(yǔ)的總成績(jī) select sum(chinese),sum(english) from user; 得到user表里面語(yǔ)文成績(jī)的平均分(總的成績(jī)/總的人數(shù)) select sum(chinese)/count(*) from user; 第三,avg()函數(shù),計(jì)算的平均數(shù)的函數(shù) 寫(xiě)法 select avg(要計(jì)算平均數(shù)的字段名稱(chēng)) from ... 得到user表里面語(yǔ)文成績(jī)的平均分 select avg(chinese) from user; 第四,max()函數(shù):計(jì)算最大值 寫(xiě)法 select max(字段) from... 第五,min()函數(shù):計(jì)算最小值 寫(xiě)法 select min(字段) from... 得到user表里面語(yǔ)文成績(jī)的最高分?jǐn)?shù),英語(yǔ)的成績(jī)最低分?jǐn)?shù) select max(chinese),min(english) from user; 5、分組操作 分組使用 group by根據(jù)分組的字段 在分組的基礎(chǔ)之上再進(jìn)行條件的判斷 having,后面可以寫(xiě)聚集函數(shù) (1)舉例說(shuō)明 創(chuàng)建表 orders create table orders ( id int, name varchar(40), price int ) orders表里面每類(lèi)商品的總的價(jià)格 select name,sum(price) from orders group by name; 對(duì)商品進(jìn)行分類(lèi),得到每類(lèi)商品的總價(jià)格大于66的商品 select name,sum(price) from orders where sum(price)>66 group by name; 上面的語(yǔ)句在邏輯上沒(méi)有問(wèn)題,在語(yǔ)法上,where里面不能寫(xiě)聚集函數(shù),報(bào)錯(cuò) 正確的寫(xiě)法: select name,sum(price) from orders group by price having sum(price)>66; 6、mysql的關(guān)鍵字limit (1)limit關(guān)鍵字查詢(xún)表中的某幾條記錄 (2)limit關(guān)鍵字不是標(biāo)準(zhǔn)sql的關(guān)鍵字,只能在mysql數(shù)據(jù)庫(kù)里面使用,實(shí)現(xiàn)分頁(yè)的功能 在oracle里面特有關(guān)鍵字rownum 在sqlserver里面特有關(guān)鍵字top (3)使用limit查詢(xún)前幾條記錄 寫(xiě)法: limit前幾條記錄 limit 3 查詢(xún)user表里面前三條記錄 select * from user limit 3; select * from user limit 0,3; (4)使用limit查詢(xún)第幾條到第幾條記錄 寫(xiě)法: limit第一個(gè)參數(shù),第二個(gè)參數(shù) 第一個(gè)參數(shù)開(kāi)始的記錄數(shù)的位置,從0開(kāi)始的 第二個(gè)參數(shù)從開(kāi)始的位置向后獲取幾條記錄 查詢(xún)user表里面第二條到第四條記錄 select * from user limit 1,3; 7、重置mysql的root密碼 (1)知道密碼,修改密碼 連接mysql數(shù)據(jù)庫(kù)--->切換數(shù)據(jù)庫(kù) mysql use mysql---->-進(jìn)行密碼的修改 update user set password=password('要修改成的密碼的值') where user='root';---->重新啟動(dòng)mysql服務(wù) (2)忘記密碼,重置密碼 把mysql的服務(wù)關(guān)閉---->打開(kāi)cmd窗口,輸入命令mysqld --skip-grant-tables(不要加分號(hào))---->再打開(kāi)cmd窗口,連接數(shù)據(jù)庫(kù),不需要輸入密碼 mysql -u root--->切換數(shù)據(jù)庫(kù) mysql use mysql---->進(jìn)行密碼的修改 update user set password=password('要修改成的密碼的值') where user='root';---->把兩個(gè)cmd窗口都關(guān)閉,打開(kāi)任務(wù)管理器,找到mysqld進(jìn)程,結(jié)束----->啟動(dòng)mysql服務(wù)
信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
|