您好,登錄后才能下訂單哦!
本篇內容介紹了“mysql基礎知識有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
第一章 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)>2;
+------+----------+
| 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基礎知識有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。