MySQL之初始化數(shù)據(jù)詳解
MySQL命令行基本命令
列出當(dāng)前數(shù)據(jù)庫(kù)管理系統(tǒng)中有哪些數(shù)據(jù)庫(kù)。
show databases;
創(chuàng)建數(shù)據(jù)庫(kù),起名bjpowernode。
create database bjpowernode;
使用bjpowernode數(shù)據(jù)庫(kù)。
use bjpowernode;
查看當(dāng)前用的是哪個(gè)數(shù)據(jù)庫(kù)。
select database();
查看當(dāng)前數(shù)據(jù)庫(kù)中有哪些表。
show tables;
刪除數(shù)據(jù)庫(kù)bjpowernode。
drop database bjpowernode;
退出mysqlexitquitctrl + c查看當(dāng)前mysql版本
select version();
還可以使用mysql.exe命令來(lái)查看版本信息(在沒有登錄mysql之前使用):mysql --version
數(shù)據(jù)庫(kù)表的概述
name | age | gender |
---|---|---|
張三 | 20 | 男 |
李四 | 22 | 女 |
以上就是數(shù)據(jù)庫(kù)表格的直觀展示形式。
表格英文單詞table。
表是數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的基本單元,數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的時(shí)候,是將數(shù)據(jù)存儲(chǔ)在表對(duì)象當(dāng)中的。為什么將數(shù)據(jù)存儲(chǔ)在表中呢?因?yàn)楸泶鎯?chǔ)數(shù)據(jù)非常直觀。
任何一張表都有行和列:
- 行:記錄(一行就是一條數(shù)據(jù))
- 列:字段(name字段、age字段、gender字段)
每個(gè)字段包含以下屬性:
- 字段名:name、age、gender都是字段的名字
- 字段的數(shù)據(jù)類型:每個(gè)字段都有數(shù)據(jù)類型,比如:字符類型、數(shù)字類型、日期類型
- 字段的數(shù)據(jù)長(zhǎng)度:每個(gè)字段有可能會(huì)有長(zhǎng)度的限制
- 字段的約束:比如某些字段要求該字段下的數(shù)據(jù)不能重復(fù)、不能為空等,用來(lái)保證表格中數(shù)據(jù)合法有效
初始化測(cè)試數(shù)據(jù)
為了方便后面內(nèi)容的學(xué)習(xí),老師提前準(zhǔn)備了表以及表中的測(cè)試數(shù)據(jù),以下是建表并且初始化數(shù)據(jù)的sql腳本
DROP TABLE IF EXISTS EMP; DROP TABLE IF EXISTS DEPT; DROP TABLE IF EXISTS SALGRADE; CREATE TABLE DEPT(DEPTNO int(2) not null , DNAME VARCHAR(14) , LOC VARCHAR(13), primary key (DEPTNO) ); CREATE TABLE EMP(EMPNO int(4) not null , ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT(4), HIREDATE DATE DEFAULT NULL, SAL DOUBLE(7,2), COMM DOUBLE(7,2), primary key (EMPNO), DEPTNO INT(2) ); CREATE TABLE SALGRADE( GRADE INT, LOSAL INT, HISAL INT ); INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 10, 'ACCOUNTING', 'NEW YORK'); INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 20, 'RESEARCH', 'DALLAS'); INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 30, 'SALES', 'CHICAGO'); INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 40, 'OPERATIONS', 'BOSTON'); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, NULL, 20); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, NULL, 20); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, NULL, 30); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, NULL, 10); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, NULL, 20); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100, NULL, 20); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, NULL, 30); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, NULL, 20); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, NULL, 10); INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 1, 700, 1200); INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 2, 1201, 1400); INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 3, 1401, 2000); INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 4, 2001, 3000); INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 5, 3001, 9999); commit;
什么是sql腳本:文件名是.sql,并且該文件中編寫了大量的SQL語(yǔ)句,執(zhí)行sql腳本程序就相當(dāng)于批量執(zhí)行SQL語(yǔ)句。
你入職的時(shí)候,項(xiàng)目一般都是進(jìn)展了一部分,多數(shù)情況下你進(jìn)項(xiàng)目組的時(shí)候數(shù)據(jù)庫(kù)的表以及數(shù)據(jù)都是有的,項(xiàng)目經(jīng)理第一天可能會(huì)給你一個(gè)較大的sql腳本文件,你需要執(zhí)行這個(gè)腳本文件來(lái)初始化你的本地?cái)?shù)據(jù)庫(kù)。(當(dāng)然,也有可能數(shù)據(jù)庫(kù)是共享的。)
創(chuàng)建文件:bjpowernode.sql,把以上SQL語(yǔ)句全部復(fù)制到sql腳本文件中。
執(zhí)行SQL腳本文件,初始化數(shù)據(jù)庫(kù)
- 第一步:命令窗口登錄mysql
- 第二步:創(chuàng)建數(shù)據(jù)庫(kù)bjpowernode(如果之前已經(jīng)創(chuàng)建就不需要再創(chuàng)建了):create database bjpowernode;
- 第三步:使用數(shù)據(jù)庫(kù)bjpowernode:use bjpowernode;
- 第四步:source命令執(zhí)行sql腳本,注意:source命令后面是sql腳本文件的絕對(duì)路徑。
- 第五步:查看是否初始化成功,執(zhí)行:show tables;
使用其他的mysql客戶端工具也可以執(zhí)行sql腳本,比如navicat。使用source命令執(zhí)行sql腳本的優(yōu)點(diǎn):可支持大文件。
熟悉測(cè)試數(shù)據(jù)
emp dept salgrade三張表分別存儲(chǔ)什么信息
查看表結(jié)構(gòu):desc或describe,語(yǔ)法格式:desc或describe +表名
以上的結(jié)果展示的不是表中的數(shù)據(jù),而是表的結(jié)構(gòu)。
對(duì)以上表結(jié)構(gòu)進(jìn)行解釋說(shuō)明:
emp
表dept
表salgrade
表
對(duì)于以上表結(jié)構(gòu)要提前了解,后面學(xué)習(xí)的內(nèi)容需要你馬上反應(yīng)出:哪個(gè)字段是什么意思。
查看一下表中的數(shù)據(jù),來(lái)加深一下印象(以下SQL語(yǔ)句會(huì)在后面課程中學(xué)習(xí)):
emp
:?jiǎn)T工信息dept
:部門信息salgrade
:工資等級(jí)信息Field
是字段名Type
是這個(gè)字段的數(shù)據(jù)類型Null
是這個(gè)字段是否允許為空Key
是這個(gè)字段是否為主鍵或外鍵Default
是這個(gè)字段的默認(rèn)值empno
:?jiǎn)T工編號(hào),int類型(整數(shù)),不能為空,主鍵(主鍵后期學(xué)習(xí)約束時(shí)會(huì)進(jìn)行說(shuō)明)ename
:?jiǎn)T工姓名,varchar類型(字符串)job
:工作崗位,varchar類型mgr
:上級(jí)領(lǐng)導(dǎo)編號(hào),int類型hiredate
:雇傭日期,date類型(日期類型)sal
:月薪,double類型(帶有浮點(diǎn)的數(shù)字)comm
:補(bǔ)助津貼,double類型deptno
:部門編號(hào),int類型deptno
:部門編號(hào),int類型,主鍵dname
:部門名稱,varchar類型loc
:位置,varchar類型grade
:等級(jí),int類型losal
:最低工資,int類型hisal
:最高工資,int類型
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL?如何將查詢結(jié)果導(dǎo)出到文件(select?…?into?Statement)
我們經(jīng)常會(huì)遇到需要將SQL查詢結(jié)果導(dǎo)出到文件,以便后續(xù)的傳輸或數(shù)據(jù)分析的場(chǎng)景,本文就MySQL中select…into的用法進(jìn)行演示,感興趣的朋友跟隨小編一起看看吧2024-08-08Windows 8下MySQL Community Server 5.6安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows 8下MySQL Community Server 5.6安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09window下mysql 8.0.15 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了window下mysql 8.0.15 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02SQL Server COALESCE函數(shù)詳解及實(shí)例
這篇文章主要介紹了SQL Server COALESCE函數(shù)詳解及實(shí)例的相關(guān)資料,COALESCE函數(shù)比ISNULL更加強(qiáng)大,這個(gè)函數(shù)的確非常有用,需要的朋友可以參考下2016-12-12MySQL如何查詢數(shù)據(jù)庫(kù)中所有表名及注釋等信息
這篇文章主要介紹了MySQL如何查詢數(shù)據(jù)庫(kù)中所有表名及注釋等信息問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10MySQL查詢時(shí)指定使用索引的實(shí)現(xiàn)
在MySQL中,可以通過(guò)指定查詢使用的索引來(lái)提高查詢性能和優(yōu)化查詢執(zhí)行計(jì)劃,本文就來(lái)介紹一下MySQL查詢時(shí)指定使用索引的實(shí)現(xiàn),感興趣的可以了解一下2023-11-11mysql優(yōu)化limit查詢語(yǔ)句的5個(gè)方法
這篇文章主要介紹了mysql優(yōu)化limit查詢語(yǔ)句的5個(gè)方法,它們分別是子查詢優(yōu)化法、倒排表優(yōu)化法、反向查找優(yōu)化法、limit限制優(yōu)化法和只查索引法,需要的朋友可以參考下2014-07-07