Mysql數(shù)據(jù)庫的常用命令:
準(zhǔn)備工作:windows環(huán)境下,安裝并配置好環(huán)境變量后刀森,在cmd窗口中輸入mysql,如報錯ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)丢郊。
解決方法:先使用services.msc查看系統(tǒng)服務(wù)秸弛,沒有服務(wù)的話用CMD進到mysql的bin目錄下,執(zhí)行mysqld -install 搪搏,成功就添加了服務(wù)狭握,刪除服務(wù)的話用mysqld -remove MySQL。接著啟動服務(wù)可以在cmd中使用:net start mysql啟動服務(wù)疯溺。 再以:mysql -u root 進入mysql數(shù)據(jù)庫论颅。
如果需要遠(yuǎn)程連接mysql數(shù)據(jù)庫:
方法①授權(quán):grant all privileges on DBname.* to 'root'@'ip地址' identified by '登錄密碼' with grant option ;
方法②在bin目錄下找到config文件囱嫩,點擊進入安裝時的窗口恃疯,選擇允許遠(yuǎn)程訪問即可。
常用sql語句:
SQL:是結(jié)構(gòu)化查詢語言的縮寫墨闲,所有使用SQL語言的數(shù)據(jù)庫今妄,命令都通用。mysql是不區(qū)分大小寫的數(shù)據(jù)庫鸳碧,在cmd中輸入時要以分號(盾鳞;)結(jié)尾回車后才生效,所以有些sql語句一行寫不下時瞻离,可以另起一行腾仅,寫完再以分號結(jié)尾回車執(zhí)行。sql語句分為以下4種:
1 數(shù)據(jù)定義語言(DDL):
show databases套利;(查看有哪些數(shù)據(jù)庫)
create database test (test為數(shù)據(jù)庫名)推励;(創(chuàng)建數(shù)據(jù)庫)
use databaseName;(使用此數(shù)據(jù)庫)
show tables肉迫;(查看選中的數(shù)據(jù)庫中有哪些表格验辞,當(dāng)然沒創(chuàng)建時,不存在表格)
create??table teacher(id int primary key auto_increment,name varchar(20) not null,gender char(2),age int(2),birth date,job varchar(50)); ?(創(chuàng)建表格:設(shè)定其中的字段昂拂,字段的數(shù)據(jù)類型和大小受神,是否是主鍵抛猖、是否非空等屬性 )
desc teacher格侯;(查看表格)
創(chuàng)建好表格后需要對表格進行修改時使用以下語句:
增加一個列:alter table teacher add column dept varchar(20);
刪除一個列:alter table teacher drop column dept;
修改一個列的屬性(不需修改列名時):alter table teacher modify dept varchar(25) not null;
修改一個列的屬性(需修改列名時):alter table teacher change dept dept_rename varchar(25);
修改一個列的屬性(不需修改列名時也可以用change):alter table teacher change? dept_renamedept_renamevarchar(35) not null;
修改一個表的表名字:alter table teacher rename to teacher_rename
增加一個外鍵:alter table teacher add constraint foreign key(class_id) references class(id);
刪除一個外鍵: alter table teacher drop foreign key class_id;
2 數(shù)據(jù)操作語言(DML):主要包括添加數(shù)據(jù)和修改數(shù)據(jù)。
添加數(shù)據(jù):insert into 表名 (字段1财著,字段2...) values(值1联四,值2,值3)撑教,如果不寫字段則需要按照表格中的字段順序給所有字段賦值朝墩。
修改數(shù)據(jù):update 表名 set 字段名=‘值’ where 字段名=‘值’。where后是條件伟姐,限定修改哪條記錄收苏。
刪除記錄:delete from 表名亿卤;(刪除所有記錄)delete from 表名 where 字段=‘值’ (刪除某條);
3 數(shù)據(jù)查詢語言(DRL):
正所謂:一分添加鹿霸,九分查詢排吴。sql語句使用最多的是查詢。這里我們以實際例子來展示懦鼠,我已經(jīng)提前在之前創(chuàng)建的teacher表中添加了若干條記錄钻哩。
① 查詢所有老師的信息:select * from teacher; ?*是通配符,這種方式查詢效率不高肛冶,最好帶上字段名街氢。
② 查詢id 為2且職業(yè)為空的老師的姓名和性別。 select ?name睦袖,gender from teacher where id=2 and job is null;
③ 查詢姓名最后一個字符為W的老師的信息珊肃。select* from teacher where name like 'W%'
④ 查詢所有老師的信息,并按照年齡升序排列扣泊。select * from teacher order by age asc近范;(升序:asc,降序:desc)
⑤ 按性別分組查詢男女老師的人數(shù)延蟹。select gender,count(gender) from teacher where group by ?gender.
⑥按性別分組查詢女老師的人數(shù)评矩。select gender,count(gender) from teacher where group by ?gender having gender ='mm';
⑦ 查詢老師記錄的前三條。select * from teacher limit 0,3阱飘; 0是起始位置斥杜,3是條數(shù)。
⑧ 別名的使用:比如在兩個表都有name字段時沥匈,select t.name from teacher as t; ? t是teacher的別名蔗喂,as可以省略。
sql語句中關(guān)鍵字出現(xiàn)的順序必須是where高帖,group by,having ,order by,limit.
4 事務(wù)控制語言(TCL):
在關(guān)系型數(shù)據(jù)庫中缰儿,一個事物可以是一條sql語句,一組sql語句或者整個程序散址。事務(wù)具有4個屬性:原子性乖阵、一致性、隔離性预麸、持續(xù)性瞪浸。mysql默認(rèn)是自動提交,每次執(zhí)行語句自動完成這次事務(wù)吏祸。mysql支持回滾操作对蒲。示例:
①改為手動提交 事務(wù):set autocommit=false; 未提交前,sql語句是存在內(nèi)存中的,并未對數(shù)據(jù)庫產(chǎn)生真正的效果蹈矮。
②進行一些插入砰逻、修改操作-----rollback-----將回到插入、修改操作之前的樣子泛鸟。
在操作中可以設(shè)置斷點:save point ?pointName诱渤;-----rollback to pointName。
最終進行commit谈况。當(dāng)然操作途中進行commit后勺美,將無法回滾。