一.mysql命令
1.連接服務端命令
1.mysql -uroot -p123 -h127.0.0.1
2.mysql -uroot -p123 -S /tmp/mysql.sock
3.mysql -uroot -p123 -hlocalhost
4.mysql -uroot -p123
?
2.mysql登陸后的一些命令
1.\h或者help ? 查看幫助
2.\G ?格式化查看數據(以key:value形式)
3.\T 或 tee ? ? ?記錄日志
4.\c ? 結束命令
5.\s或者status 查看狀態信息
6.\. 或者source ? 導入sql數據
7.\u 或use 使用數據庫
8.\q或exit或quit 退出
?
3.mysqladmin的一些使用
1.查看mysql存活狀態
[root@db01 ~]# mysqladmin -uroot -p123 ping
?
?2.查看mysql狀態信息
[root@db01 ~]# mysqladmin -uroot -p123 status
?
3.關閉mysql進程
[root@db01 ~]# mysqladmin -uroot -p123 shutdown
?
4.查看mysql參數
[root@db01 ~]# mysqladmin -uroot -p123 variables
?
5.刪除數據庫
[root@db01 ~]# mysqladmin -uroot -p123 drop DATABASE
?
6.創建數據庫
[root@db01 ~]# mysqladmin -uroot -p123 create DATABASE
?
7.重載授權表
[root@db01 ~]# mysqladmin -uroot -p123 reload
?
8.刷新日志
[root@db01 ~]# mysqladmin -uroot -p123 flush-log
?
9.刷新緩存主機
[root@db01 ~]# mysqladmin -uroot -p123 reload
?
10.修改登陸密碼
[root@db01 ~]# mysqladmin -uroot -p123 password
?
?
4.sql語句創建庫
1.創建didi數據庫
mysql> create database didi;
?
2.查看數據庫
mysql> show databases;
?
3.查看創建數據庫語句
mysql> show create database didi;
?
4.創建數據庫添加字符集
mysql> create database test charset utf8;
?
5.刪除數據庫
mysql> drop database didi;
?
6.修改數據庫屬性
mysql> alter database test charset gbk;
?
7.進入數據庫
mysql> use didi;
?
?
8.查看當前所在數據庫
mysql> select database();
?
5.創表必須知道的數據類型
1.int ? ? ? ?整數 ? -2^31~2^31 -1
2.varchar 字符類型(變長)
3.char ?字符類型(定長)
4.tinyint 整數 -128~128 (取值范圍)
5.enum 枚舉類型,只能選擇枚舉的一種類型,例如enum('m','f')
6.datatime? ?時間類型
?
6.創表所需的數據屬性
1.not null ? ? ? ? ? ?非空
2.primary key ? ? 主鍵(唯一且非空)
3.unique key ? ? ?唯一鍵(唯一可非空)
4.auto_increment ? ?自增(必須是主鍵或唯一鍵)
5.unsigned 非負
6.default ? ?默認
7.comment ? ? ? 注釋
?
7.創建表
1.創建一個名字叫student的表,表中有列名為(sid,sname,sage,sgender,cometime) ,其中sid為int類型,非空,設為主鍵,并且自增,注釋為學號;sname為varchar類型為20位(一個中文占3位,和字符集有關),非空,注釋為學生姓名;
sage為tinyint類型 ,非負數(因此取值范圍為【0-256】),注釋為學生年齡;sgender為枚舉類型,非空,默認為男(m),注釋為學生性別;cometime為datatime類型,默認為設置時間,注釋為入學時間,字符集設為utf8,引擎為innodb
mysql> create table student( sid INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘學號’, sname VARCHAR(20) NOT NULL COMMENT ‘學生姓名’, sage TINYINT UNSIGNED COMMENT ‘學生年齡’, sgender ENUM('m','f') NOT NULL DEFAULT ‘m’ COMMENT ‘學生性別’, cometime DATETIME default NOW() COMMENT ‘入學時間’)chatset utf8 engine innodb;
?
2.查看建表語句
mysql> show create table student;
?
3.查看當前數據庫下有什么表
mysql> show tables;
?
4.查看表中列的定義信息
mysql> desc student;
?
5.刪除表
mysql> drop table student;
?
?
6.修改表名
mysql> alter table student rename stu;
?
?
7.添加列和列定義
mysql> alter table stu add age int;
?
?
8.添加多個列
mysql> alter table stu add test varchar(20),add qq int;
?
?
9.添加列為第一列
mysql> alter table stu add classid varchar(20) first;
?
?
10.添加列為指定位置
mysql> alter table stu add phone int after age;
?
?
11.刪除指定列
mysql> alter table stu modify sid varchar(20);
?
?
12.修改列名,以及約束條件
mysql> alter table stu change phone telphone char(20);
?
?
8.授權用戶
1.授權root@'10.0.0.1'用戶所有權限(并非超級管理員)
mysql> grant all on *.* to root@'10.0.0.1' identified by '123';
?
?
2.授權一個用戶為超級管理員
mysql> grant all on *.* to root@'10.0.0.1' identified by '123' with grant option;
?
其他一些能在后面帶的參數
max_queries_per_hour:一個用戶每小時可發出的查詢數量
max_updates_per_hour:一個用戶每小時可發出的更新數量
max_connetions_per_hour:一個用戶每小時可連接到服務器的次數
max_user_connetions:允許同時連接數量
?
?
3.收回一個用戶select權限
mysql> revoke select on *.* from root@'10.0.0.1';
?
?
4.查看某個用戶的權限
mysql> show grants for root@'10.0.0.1';
?
?
9.插入數據
1.插入單條數據
mysql> insert into stu(classid,birth.sname,sage,sgender,comtime,telnum,qq) values('linux01',1,NOW(),'zhangsan',20,'m',NOW(),110,123456);
?
2.插入多條數據
mysql> insert into stu(classid,birth.sname,sage,sgender,comtime,telnum,qq) values('linux01',1,NOW(),'zhangsan',20,'m',NOW(),110,123456), ('linux02',2,NOW(),'zhangsi',21,'f',NOW(),111,1234567);
?
?
10.更新數據
1.更新一張表某個列的所有數據
mysql> update student set sgender='f';
也可以
mysql> update student set sgender='f' where 1=1;
?
2.更新一張表某個列某行的數據(添加條件)
mysql> update student set sgender='f' where sid=1;
?
11.刪除數據
1.刪除一張表的所有數據
mysql> delete from student;
?
2.刪除一張表指定區域的數據
mysql> delete from student where sid=3;
?
3.刪除表
mysql> truncate table student;
?
4.偽刪除,就是內容還在,但可以用一些手段看不到,真實工作環境使用
mysql> alter table student add status enum(1,0) default 1;mysql> update student set status='0' where sid=1;mysql> select * from student where status=1;
?
?
12.select用法
1.查詢student表中的列name
mysql> select name from student;
?
2.限制查詢行數為2
mysql> select name from student limit 2;
?
3.去重查詢
mysql> select district(name) from student ;
?
?
4.查詢所得到信息的數目
mysql> select count(name) from student;
?
?
5.查詢指定信息(查二班的同學名字)
mysql> select name from student where class=2;
?
6.多條件查詢(查二班的長的丑的人名字)
mysql> select name from student where class=2 and face='ugly';
?
7.模糊查詢
mysql> select nam from student where name like '%H%' ;
?
8.順序查詢
mysql> select name from student order by hight asc;
?
9.倒敘查詢
mysql> select name from student order by hight desc;
?
10.范圍查詢
mysql> select * from student where class>1;
?
11.范圍or,in,不等于(<>)
mysql> select * from student where name='CHN' or face='ugly';就當有個叫兩個名字的人吧 mysql> select * from student where name in ('張三','李四');不在二班的人 mysql> select * from student where class<>2;
?
12.查看表中數據行數
select count(*) from city;
?
13.查看去重數據行數
select count(distinct name) from city;
?