共計 3226 個字符,預計需要花費 9 分鐘才能閱讀完成。
本篇內容介紹了“mysql 基礎知識有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
第一章 mysql 的安裝和配置
1 mysql 數據庫版本:社區版、企業版
2 mysql 數據庫類型:standard、max、debug
3 windows 下安裝 mysql:noinstall、圖形化方式安裝
4 linux 下安裝 mysql:rpm 包、二進制包、源碼包
5 mysql 服務和 mysql 數據不同,mysql 服務是一系列后臺進程,而 mysql 數據庫則是一系列的數據目錄和文件;mysql 數據庫必須在 mysql 服務啟動之后才可以進行訪問。這點和 oracle 類似。
6 linux 平臺下啟停 mysql 服務:
命令行:
啟動:# cd /usr/bin
# ./mysqld_safe
關閉:# mysqladmin -uroot shutdowm
服務的方式:
啟動:# service mysql start
關閉:# service mysql stop
第二章 sql 基礎
1 SQL:structure query language
2 sql 分類:DDL、DML、DCL
3 連接 mysql:$ mysql -uroot -p**** -hlocalhost -P3306
4 your mysql connection id is 7344941: 這個數字記錄了 mysql 服務到目前為止的連接次數,每個新連接都會自動加 1
5 創建數據庫:mysql create database test1;
6 查看當前有多少數據庫:mysql show databases;
7 默認數據庫的功能:
information_schema: 主要存儲了系統中的一些數據庫對象信息,比如用戶表信息、列信息、權限信息、字符集信息、分區信息等。
cluster: 存儲了系統的集群信息
mysql: 存儲了系統的用戶權限信息
test: 系統自動創建的測試數據庫,任何用戶都可以使用。
8 選擇數據庫并查看該庫中的表:
mysql use test1
mysql show tables;
9 查看當前的數據庫信息以及用戶信息:mysql status
10 刪除數據庫:mysql drop database test1;
11 創建表:
mysql create table emp(ename varchar(10),hiredata date,sal decimal(10,2),deptno int(2));
mysql desc emp;
mysql show create table emp \g;
PS:\g 含義是使得記錄能夠按照字段豎向排列,以便更好地顯示內容較長的記錄。
12 刪除表:mysql drop table emp;
13 修改表:
修改表字段屬性:alter table emp modify ename varchar(20);
增加表字段:alter table emp add column age int(3);
刪除表字段:alter table emp drop column age;
表字段改名:alter table emp change age age1 int(4);
修改表字段排列順序:alter table emp add birth data after ename;alter table emp modify age int(3) first;
更改表明:alter table emp rename emp1;
14 插入記錄:
insert into emp(ename,hiredata,sal,deptno) values(zzx1 , 2000-01-01 , 2000 ,1);
insert into emp values(lisa , 2003-02-01 , 3000 ,2);
insert into dept values(5, dept5),(6, dept6
15 更新記錄:
update emp set sal=4000 where ename= lisa
PS: 注意要帶 where 子句,不然會把表中所有行該字段都更新為 lisa,很多人不小心都會犯這個錯誤。
16 刪除記錄:
delete from emp where ename= dony
delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;
17 查詢記錄:
select * from emp;
slelect ename,hiredate,sal,deptno from emp;
select distinct deptno from emp;
select * from emp where deptno=1 and sal 3000;
select * from emp order by sal; desc 表示按照字段進行降序排列,asc 表示升序排列。默認是按照升序排列。
select * from emp order by deptno,sal desc;
select * from emp order by sal limit 3;
select * from emp order by sal limit 1,3;
sum(求和),count(記錄數),max(最大值),min(最小值)
with rollup 是可選語法,表明是否對分類聚合后的結果進行再匯總。
having 和 where 的區別在于,having 是對聚合后的結果進行條件過濾,而 where 是在聚合前就對記錄進行過濾,如果邏輯允許,我們盡可能用 where 先過濾記錄,這樣因為結果集減小,將對聚合的效率大大提高,最后再根據邏輯看是否用 having 進行再過濾。
mysql select id,count(*) from t group by id;
+——+———-+
| id | count(*) |
+——+———-+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
+——+———-+
4 rows in set (0.00 sec)
mysql select id,count(*) from t group by id with rollup;
+——+———-+
| id | count(*) |
+——+———-+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| NULL | 10 |
+——+———-+
5 rows in set (0.00 sec)
mysql select id,count(*) from t group by id having count(1)
+——+———-+
| id | count(*) |
+——+———-+
| 3 | 3 |
| 4 | 4 |
+——+———-+
2 rows in set (0.08 sec)
select ename,deptname from emp,dept where emp.deptno=dept.deptno;
select ename,deptname from emp left join dept on emp.deptno=dept.deptno;
select ename,deptname from dept right join emp on dept.deptno=emp.deptno;
select * from emp where deptno in (select deptno from dept);
select * from emp where deptno = (select deptno from dept limit 1);
union 和 union all 的主要區別是 union all 是把結果集直接合并在一起,而 union 是將 union all 后的結果進行一次 distinct,去除重復記錄后的結果。
表連接在很多情況下用于優化子查詢。
“mysql 基礎知識有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!