MySQL工具名字_MySQL客户端工具及SQL讲解
1、用于數據庫的連接管理
#MySQL接口自帶的命令
\h 或 help 或? 查看幫助
\G 格式化查看數據(key:value)
\T 或 tee 記錄日志
\c(5.7可以ctrl+c) 結束命令
\s 或 status 查看狀態信息
\. 或 source 導入SQL數據 \
u或 use 使用數據庫
\q 或 exit 或 quit 退出
help命令的使用
mysql> help
mysql> help contents
mysql> help select
mysql> help create
mysql> help create user
mysql> help status
mysql> help show
source命令的使用
#在MySQL中處理輸入文件:
#如果這些文件包含SQL語句則稱為:
#1.腳本文件 #2.批處理文件
mysql> SOURCE /data/mysql/world.sql
#或者使用非交互式
mysql
mysqladmin命令的使用
01)“強制回應 (Ping)”服務器。
02)關閉服務器。
03)創建和刪除數據庫。
04)顯示服務器和版本信息。
05)顯示或重置服務器狀態變量。
06)設置口令。
07)重新刷新授權表。
08)刷新日志文件和高速緩存。
09)啟動和停止復制。
10)顯示客戶機信息。
#查看MySQL存活狀態
[root@db01 ~]# mysqladmin -uroot -p123 ping
#查看MySQL狀態信息
[root@db01 ~]# mysqladmin -uroot -p123 status
#關閉MySQL進程
[root@db01 ~]# mysqladmin -uroot -p123 shutdown
#查看MySQL參數
[root@db01 ~]# mysqladmin -uroot -p123 variables
#刪除數據庫 [
root@db01 ~]# mysqladmin -uroot -p123 drop DATABASE
#創建數據庫
[root@db01 ~]# mysqladmin -uroot -p123 create DATABASE
#重載授權表
[root@db01 ~]# mysqladmin -uroot -p123 reload
#刷新日志
[root@db01 ~]# mysqladmin -uroot -p123 flush-log
#刷新緩存主機
[root@db01 ~]# mysqladmin -uroot -p123 reload
#修改口令
[root@db01 ~]# mysqladmin -uroot -p123 password
2.接受用戶的SQL 語句
1.什么是SQL
結構化的查詢語句
2.SQL的種類
DDL:數據定義語言
庫對象:庫名字、庫屬性
開發規范:庫名小寫
#創建oldboy數據庫
mysql> create database oldboy;
#創建OLDBOY數據庫
mysql> create database OLDBOY;
#查看數據庫 mysql> show databases;
#查看oldboy的創建語句(DQL)
mysql> show create database oldboy;
#查看創建數據庫語句幫助
mysql> help create database
#創建oldboy數據庫添加屬性
mysql> create database testa charset utf8;
#刪除oldboy數據庫
mysql> drop database oldboy;
#修改oldboy數據庫屬性
mysql> alter database oldboy charset gbk;
#查看oldboy的創建語句(DQL)
mysql> show create database oldboy;
表對象:列名、列屬性、約束
創建表:create table (開發做)
#查看創建表語句幫助
mysql> help create table
#創建表
mysql> create table student(sid INT, sname VARCHAR(20), sage TINYINT, sgender ENUM('m','f'), cometime DATETIME);
數據類型
int: 整數 -231?~ 231?-1
varchar:字符類型 (變長)
char: 字符類型 (定長)
tinyint: 整數 -128 ~ 128
enum: 枚舉類型
datetime: 時間類型 年月日時分秒
#創建表加其他屬性
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 NOT NULL COMMENT ‘入學時間’)chatset utf8 engine innodb;
#查看建表語句
mysql> show create table student;
#查看表
mysql> show tables;
#查看表中列的定義信息
mysql> desc student;
數據屬性
not null: 非空
primary key: 主鍵(唯一且非空的)
auto_increment: 自增(此列必須是:primary key或者unique key)
unique key: 單獨的唯一的
default: 默認值
unsigned: 非負數
comment: 注釋
#刪除表 mysql> drop table student;
修改表定義:alter table (開發做)
#修改表名
mysql> alter table student rename stu;
#添加列和列定義
mysql> alter table stu add age int;
#添加多個列
mysql> alter table stu add test varchar(20),add qq int;
#指定位置進行添加列(表首)
mysql> alter table stu add classid varchar(20) first;
#指定位置進行添加列(指定列)
mysql> alter table stu add phone int after age;
#刪除指定的列及定義
mysql> alter table stu drop qq;
#修改列及定義(列屬性)
mysql> alter table stu modify sid varchar(20);
#修改列及定義(列名及屬性)
mysql> alter table stu change phone telphone char(20);
DCL:數據控制語言
針對權限進行控制
#授權root@10.0.0.51用戶所有權限
mysql> grant all on *.* to root@'10.0.0.51' identified by 'oldboy123';
#怎么去授權一個炒雞管理員呢?
mysql> grant all on *.* to root@'10.0.0.51' identified by 'oldboy123' with grant option;
#其他參數(擴展)
max_queries_per_hour:一個用戶每小時可發出的查詢數量
max_updates_per_hour:一個用戶每小時可發出的更新數量
max_connetions_per_hour:一個用戶每小時可連接到服務器的次數
max_user_connetions:允許同時連接數量
#收回select權限
mysql> revoke select on *.* from root@'10.0.0.51';
#查看權限
mysql> show grants for root@'10.0.0.51';
DML:數據操作語言
操作表的數據行信息
#基礎用法,插入數據
mysql> insert into stuvalues('linux01',1,NOW(),'zhangsan',20,'m',NOW(),110,123456);
#規范用法,插入數據
mysql> insert into stu(classid,birth.sname,sage,sgender,comtime,telnum,qq) values('linux01',1,NOW(),'zhangsan',20,'m',NOW(),110,123456);
#插入多條數據
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);
update
#不規范
mysql> update student set sgender='f';
#規范update修改
mysql> update student set sgender='f' where sid=1;
#如果非要全表修改
mysql> update student set sgender='f' where 1=1;
delete
#不規范
mysql> delete from student;
#規范刪除(危險)
mysql> delete from student where sid=3;
#DDL刪除表
mysql> truncate table student;
1、使用偽刪除
使用update代替delete
1)額外添加一個狀態列
mysql> alter table student add status enum(1,0) default 1;
2)使用update
mysql> update student set status='0' where sid=1;
3)應用查詢存在的數據
mysql> select * from student where status=1;
DQL:數據查詢語言
select:基礎用法
#常用用法
mysql> select countrycode,district from city;
#查詢單列
mysql> select countrycode from city;
#行級查詢
mysql> select countrycode,district from city limit 2;
mysql> select id,countrycode,district from city limit 2,2;
#條件查詢
mysql> select name,population from city where countrycode='CHN';
#多條件查詢
mysql> select name,population from city where countrycode='CHN' and district='heilongjiang';
#模糊查詢
mysql> select name,population,countrycode from city where countrycode like '%H%' limit 10;
#排序查詢(順序)
mysql> select id,name,population,countrycode from city order by countrycode limit 10;
#排序查詢(倒敘)
mysql> select id,name,population,countrycode from city order by countrycode desc limit 10;
#范圍查詢(>,=,<=,<>)
mysql> select * from city where population>=1410000;
#范圍查詢OR語句
mysql> select * from city where countrycode='CHN' or countrycode='USA'; #范圍查詢IN語句 mysql> select * from city where countrycode in ('CHN','USA');
字符集:是一個系統支持的所有抽象字符的集合。字符是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。
2.MySQL數據庫的字符集
1)字符集(CHARACTER)
2)校對規則(COLLATION)
3.MySQL中常見的字符集
1)UTF8
2)LATIN1
3)GBK
4.常見校對規則
1)ci:大小寫不敏感
2)cs或b
5.我們可以使用以下命令查看
mysql> show charset;
mysql> show collation;
***字符集設置
1.操作系統級別
[root@db01 ~]# source /etc/sysconfig/i18n
[root@db01 ~]# echo $LANG
zh_CN.UTF-8
2.操作系統客戶端級別(SSH)
3.MySQL實例級別
方法1:在編譯安裝時候就指定如下服務器端字符集。
cmake .
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
方法2:在配置文件中設置字符集
[mysqld] character-set-server=utf8
4.建庫級別
mysql> create database oldboy charset utf8 default collate = utf8_general_ci;
5.表級別
mysql> CREATE TABLE `test` (
`id` int(4) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL,
PRIMARY KEY (`id`) )
ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
生產環境更改數據庫(含數據)字符集的方法
mysql> alter database oldboy CHARACTER SET utf8 collate utf8_general_ci;
mysql> alter table t1 CHARACTER SET utf8;
范式:?減少數據冗余,防止產生一致性問題,把一個表作為一個原子,把一張表拆到不能再拆為止。(開發階段設計規范)
例:根據兩張表的內容查出張三的成績
select t1.sname,t2.mark from t1,t2 where t1.sid=t2.sid and t1.sname=’zhang3’;
1.1傳統連接(只能內連接,只能取交集)
#世界上小于100人的人口城市是哪個國家的
select city.name,city.countrycode,country.name
from city,country
where city.countrycode=country.code
and city.population<100;
1.2 NATURAL JOIN(自連接的表要有共同的列名字)
SELECT city.name,city.countrycode ,countrylanguage.language ,city.population
FROM city NATURAL JOIN countrylanguage
WHERE population > 1000000
ORDER BY population;
1.3企業中多表連接查詢(內連接)
select city.name,city.countrycode,country.name
from city join countryon city.countrycode=country.code
where city.population<100;
建議:使用join語句時,小表在前,大表在后。
1.4外連接
select city.name,city.countrycode,country.name
from city left join country
on city.countrycode=country.code
and city.population<100;
1.5 UNION(合并查詢)
#范圍查詢OR語句
mysql> select * from city where countrycode='CHN' or countrycode='USA';
#范圍查詢IN語句
mysql> select * from city where countrycode in ('CHN','USA');
替換為:
mysql> select * from city where countrycode='CHN'
union all
select * from city where countrycode='USA' limit 10
union:去重復合并
union all :不去重復
使用情況:union
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的MySQL工具名字_MySQL客户端工具及SQL讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rageframe2 数据库配置_RF
- 下一篇: mysql操作库命令_MYSQL数据库-