工作中常用到的sql命令!!!
一、mysql數(shù)據(jù)庫日常操作。
???? 1.啟動mysql:/etc/init.d/mysql start (前面為mysql的安裝路徑)
???? 2.重啟mysql:? /etc/init.d/mysql restart (前面為mysql的安裝路徑)
???? 3.關(guān)閉mysql:? /etc/init.d/mysql stop(前面為mysql的安裝路徑)
???? 4.連接本機上的mysql:
????????mysql -u 用戶名 –p (按回車,再輸入密碼)?
??????? 例:mysql –u root –p?
??? 5.退出mysql:exit???
??? 6.修改mysql密碼:
????? (1)mysqladmin -u用戶名 -p舊密碼 password 新密碼
????????????? 例:mysqladmin –u root –p 123456 password 654321
??????(2)進入mysql命令行SET PASSWORD FOR 用戶名@主機=PASSWORD("root");
????????????? 例:set password for?root@localhost=password(“123456”);?
????? (3)修改自己的密碼:
???????????? ?set password=password(“123456”);
??? 7.增加新用戶:
?????? grant 操作 on 數(shù)據(jù)庫.* to 用戶名@登錄主機 identified by "密碼"
?????? 例:grant select on yingyu to?qiu@localhost?indentify by “123456”;
??? 8.建庫:
????? ?create database 庫名;?
????? ?例:create database yingyu;
??? 9.顯示數(shù)據(jù)庫列表:? show databases;?
??10.打開數(shù)據(jù)庫:
?????? use 數(shù)據(jù)庫;
?????? 例:use yingyu;
? 11.刪庫:
?????? drop database 庫名;?
?????? 例:drop database yingyu;
? 12.顯示庫中的數(shù)據(jù)表:
?????? show tables;
? 13.顯示數(shù)據(jù)表的結(jié)構(gòu):
????? ?describe 表名;?
???? ? 例:describe student;
? 14.編碼的修改:
????? (1)改變整個mysql的編碼格式:?
??????? ???? 啟動mysql的時候,mysqld_safe命令行加入
??????????? ?? --default-character-set=編碼格式
?????????? ??? 例:--default-character-set=UTF-8
????? (2)改變某個庫的編碼格式:
???????????? 在mysql提示符后輸入命令:?
???????????? alter database 數(shù)據(jù)庫 default character set 編碼格式;?
?????????? ? 例:alter database student default character set UTF-8;
二、sql常用命令
??? 1.建表:
?????? create table 表名(字段設(shè)定列表);
????? 例:create table student
??????? ?? (stuid char(10) primary key,?
?????????? ? name char(20),?
????????? ?? grade int(3),?
????????? ?? age int(3)?
??????? ???? );
?? 2.刪表:
??? ? drop table 表名;?
???? ?例:drop table student;
?? 3.將表中記錄清空:
??? ? delete from 表名;?
??? ? 例:delete from student;
?? 4.顯示表中的記錄:
??? ? select * from 表名;?
??? ? 例:select * from student;
?? 5.給表改名:?
???? ?rename table 舊表名 to 新表名;
???? ?例:rename table student to people;
? ?6.修改字段屬性:
???? (1)alter table 表名 change 字段名稱 字段名稱 字段類型 [是否允許非空];?
???????? ? 例:alter table student change name newname char(20) null;?
?????(2)alter table 表名稱 modify 字段名稱 字段類型 [是否允許非空];?
????????? ?例:alter table student modify name char(20) null;
? 7.修改表設(shè)置默認字段:
???? (1)alter table 表名 modify 字段名稱 字段類型 default 默認值;
???????? ?例:alter table student modify name char(10) defalt 7;
???? (2)alter table 表名 alter 字段名稱 set default value;?
????????? 例:alter table student alter name set default 7;
??8.增加表的一個字段:
?????? alter table 表名 add column 字段名稱 字段類型 (default 默認值);
?????? 例:alter table student add column sex char(10) (default 1);
? 9.刪除表的一個字段
??????? alter table 表名 drop column 字段名稱;
?????? 例:alter table student drop column name;
? 10.刪除表主鍵
??????? alter table 表名 drop primary key;?
?????? 例:alter table student drop primary key;
? 11.添加新主鍵:
??????? alter table 表名 add primary key(字段);
?????? 例:alter table student add primary key(stuid);
? 12.往表里插入一行數(shù)據(jù):
??????? insert into 表名 values(字段數(shù)據(jù)1,字段數(shù)據(jù)2,???)?
??????? 例:insert into student values(‘123’,‘qqqq’,‘80’);
? 13.往表里插入多行數(shù)據(jù):
??????? insert into 表名 values(字段數(shù)據(jù)1,字段數(shù)據(jù)2,???) ,(字段數(shù)據(jù)1,字段數(shù)據(jù)2,???),???;
??????? 例:insert into student values(‘123’,‘qqqq’,‘80’),(‘124’,‘yyyy’,‘90’);
? 14. 修改表的數(shù)據(jù):
??????? update 表名 set 字段名=value where 范圍
??????? 例:update student set name=‘qqq1111’ where stuid=‘123’;
? 15.模糊查詢
????????select * from 表名 where 字段 like ’%value1%’;?
??????? 例:select * from student where name like ‘q%’;
??16.排序查詢:
??????? select * from 表名 order by 字段名1,字段名2 [desc]?
????????例:selec * from student order by grade;(升序)?
??????????? ? select * from student order by grade desc;(降序)
? 17.左連接查詢:
??????? select 表1.字段1,表1.字段2,表2.字段1,表2.字段2 from 表1 left (outer) join 表2 on 表1.字段=表2.字段;
??????? 例:select student.num,student.name,people.name,people.age from student left (outer) join people on student.name=people.name;
? 18.右連接查詢:
??????? select 表1.字段1,表1.字段2,表2.字段1,表2.字段2 from 表1 right (outer) join 表2 on 表1.字段=表2.字段;
??????? 例:select student.num,student.name,people.name,people.age from student right (outer) join people on student.name=people.name;
? 19.全連接查詢(mySql不支持全連接,所以用左連接union右連接)
??????? select 表1.*,表2.* from 表1? left (outer) join 表2 on 表1.字段=表2.字段 union select表1.*,表2.* from 表1 right (outer) join 表2 on 表1.字段=表2.字段;
??????? 例:select s.*,p.* from student s? left? join people p on? s.name = p.name union select s.*,p.* from student s? right? join people p on? s.name = p.name;
? 20.關(guān)于年份的查詢
???? 例:查詢在1990-1993年之間出生的學生的全部信息
??? select * from student where year(Sbirthday)between 1990 and 1993;?
??? 查詢在1990年12月5日之前出生的學生的全部信息
??? select * from student where birthday < date(‘1990-12-05’);
三、備份與還原
? 1.備份數(shù)據(jù)庫:
???? mysqldump –u 用戶名 –p 數(shù)據(jù)庫名 > 保存路徑+文件名;
???? 例:mysqldump –u root –p yingyu > /home/yingyu/yingyu.sql;
? 2.還原數(shù)據(jù)庫:
???? ?mysql –u 用戶名 –p 數(shù)據(jù)庫名 < 文件路徑+文件名;
?? ? 例:mysql –u root –p yingyu < /home/yingyu/yingyu.sql;
? 3.直接將MySQL數(shù)據(jù)庫壓縮備份
???? ?mysqldump –u 用戶名 –p 數(shù)據(jù)庫名 | gzip > 保存路徑+文件名
???? ?例:mysqldump –u root –p yingyu | gzip > /home/yingyu/yingyu.sql.gz;
? 4.還原壓縮的Mysql數(shù)據(jù)庫
????? gunzip < 文件路徑+文件名 | mysql –u 用戶名 –p 數(shù)據(jù)庫名
??? ? 例:gunzip < /home/yingyu/yingyu.sql.gz | mysql –u root –p yingyu;
? 5.備份數(shù)據(jù)庫中的某些表:
?? ? mysqldump –u 用戶名 –p 數(shù)據(jù)庫名 表名1 表名2 > 保存路徑+文件名
??? ?例:mysqldump –u root –p yingyu student > /home/yingyu/yingyu.sql;
? 6.備份數(shù)據(jù)庫中的某些數(shù)據(jù)庫:
??? ?mysqldump –u 用戶名 –p –B? 庫1? 庫2 > 保存路徑+文件名
?????例:mysqldump –u root –p –B yingyu1 yingyu2>/home/yingyu/yingyu.sql;
? 7.還原數(shù)據(jù)庫中的某些數(shù)據(jù)庫:
??? ?mysqldump –u 用戶名 –p –D 庫1 庫2 < 文件路徑 + 文件名;
?? ? 例:mysqldump–u root –p–D qiuyingyu yingyu</home/yingyu/yingyu.sql;
? 8.還原數(shù)據(jù)庫中的某些表:
?? ? mysql –u 用戶名 –p 數(shù)據(jù)庫名 ?< 保存路徑+表文件名
??? ?例:mysql –u root –p yingyu ?< /home/yingyu/yingyu.sql;
轉(zhuǎn)載于:https://www.cnblogs.com/yinrw/p/5729147.html
總結(jié)
以上是生活随笔為你收集整理的工作中常用到的sql命令!!!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 散列表的初步实现
- 下一篇: getOutputStream() ha