MySQL之初始化數(shù)據(jù)詳解
MySQL命令行基本命令
列出當(dāng)前數(shù)據(jù)庫管理系統(tǒng)中有哪些數(shù)據(jù)庫。
show databases;
創(chuàng)建數(shù)據(jù)庫,起名bjpowernode。
create database bjpowernode;
使用bjpowernode數(shù)據(jù)庫。
use bjpowernode;
查看當(dāng)前用的是哪個數(shù)據(jù)庫。
select database();
查看當(dāng)前數(shù)據(jù)庫中有哪些表。
show tables;
刪除數(shù)據(jù)庫bjpowernode。
drop database bjpowernode;
退出mysqlexitquitctrl + c查看當(dāng)前mysql版本
select version();
還可以使用mysql.exe命令來查看版本信息(在沒有登錄mysql之前使用):mysql --version
數(shù)據(jù)庫表的概述
name | age | gender |
---|---|---|
張三 | 20 | 男 |
李四 | 22 | 女 |
以上就是數(shù)據(jù)庫表格的直觀展示形式。
表格英文單詞table。
表是數(shù)據(jù)庫存儲數(shù)據(jù)的基本單元,數(shù)據(jù)庫存儲數(shù)據(jù)的時候,是將數(shù)據(jù)存儲在表對象當(dāng)中的。為什么將數(shù)據(jù)存儲在表中呢?因為表存儲數(shù)據(jù)非常直觀。
任何一張表都有行和列:
- 行:記錄(一行就是一條數(shù)據(jù))
- 列:字段(name字段、age字段、gender字段)
每個字段包含以下屬性:
- 字段名:name、age、gender都是字段的名字
- 字段的數(shù)據(jù)類型:每個字段都有數(shù)據(jù)類型,比如:字符類型、數(shù)字類型、日期類型
- 字段的數(shù)據(jù)長度:每個字段有可能會有長度的限制
- 字段的約束:比如某些字段要求該字段下的數(shù)據(jù)不能重復(fù)、不能為空等,用來保證表格中數(shù)據(jù)合法有效
初始化測試數(shù)據(jù)
為了方便后面內(nèi)容的學(xué)習(xí),老師提前準(zhǔn)備了表以及表中的測試數(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語句,執(zhí)行sql腳本程序就相當(dāng)于批量執(zhí)行SQL語句。
你入職的時候,項目一般都是進(jìn)展了一部分,多數(shù)情況下你進(jìn)項目組的時候數(shù)據(jù)庫的表以及數(shù)據(jù)都是有的,項目經(jīng)理第一天可能會給你一個較大的sql腳本文件,你需要執(zhí)行這個腳本文件來初始化你的本地數(shù)據(jù)庫。(當(dāng)然,也有可能數(shù)據(jù)庫是共享的。)
創(chuàng)建文件:bjpowernode.sql,把以上SQL語句全部復(fù)制到sql腳本文件中。
執(zhí)行SQL腳本文件,初始化數(shù)據(jù)庫
- 第一步:命令窗口登錄mysql
- 第二步:創(chuàng)建數(shù)據(jù)庫bjpowernode(如果之前已經(jīng)創(chuàng)建就不需要再創(chuàng)建了):create database bjpowernode;
- 第三步:使用數(shù)據(jù)庫bjpowernode:use bjpowernode;
- 第四步:source命令執(zhí)行sql腳本,注意:source命令后面是sql腳本文件的絕對路徑。
- 第五步:查看是否初始化成功,執(zhí)行:show tables;
使用其他的mysql客戶端工具也可以執(zhí)行sql腳本,比如navicat。使用source命令執(zhí)行sql腳本的優(yōu)點:可支持大文件。
熟悉測試數(shù)據(jù)
emp dept salgrade三張表分別存儲什么信息
查看表結(jié)構(gòu):desc或describe,語法格式:desc或describe +表名
以上的結(jié)果展示的不是表中的數(shù)據(jù),而是表的結(jié)構(gòu)。
對以上表結(jié)構(gòu)進(jìn)行解釋說明:
emp
表dept
表salgrade
表
對于以上表結(jié)構(gòu)要提前了解,后面學(xué)習(xí)的內(nèi)容需要你馬上反應(yīng)出:哪個字段是什么意思。
查看一下表中的數(shù)據(jù),來加深一下印象(以下SQL語句會在后面課程中學(xué)習(xí)):
emp
:員工信息dept
:部門信息salgrade
:工資等級信息Field
是字段名Type
是這個字段的數(shù)據(jù)類型Null
是這個字段是否允許為空Key
是這個字段是否為主鍵或外鍵Default
是這個字段的默認(rèn)值empno
:員工編號,int類型(整數(shù)),不能為空,主鍵(主鍵后期學(xué)習(xí)約束時會進(jìn)行說明)ename
:員工姓名,varchar類型(字符串)job
:工作崗位,varchar類型mgr
:上級領(lǐng)導(dǎo)編號,int類型hiredate
:雇傭日期,date類型(日期類型)sal
:月薪,double類型(帶有浮點的數(shù)字)comm
:補(bǔ)助津貼,double類型deptno
:部門編號,int類型deptno
:部門編號,int類型,主鍵dname
:部門名稱,varchar類型loc
:位置,varchar類型grade
:等級,int類型losal
:最低工資,int類型hisal
:最高工資,int類型
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL?如何將查詢結(jié)果導(dǎo)出到文件(select?…?into?Statement)
我們經(jīng)常會遇到需要將SQL查詢結(jié)果導(dǎo)出到文件,以便后續(xù)的傳輸或數(shù)據(jù)分析的場景,本文就MySQL中select…into的用法進(jìn)行演示,感興趣的朋友跟隨小編一起看看吧2024-08-08Windows 8下MySQL Community Server 5.6安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows 8下MySQL Community Server 5.6安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09window下mysql 8.0.15 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了window下mysql 8.0.15 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02SQL Server COALESCE函數(shù)詳解及實例
這篇文章主要介紹了SQL Server COALESCE函數(shù)詳解及實例的相關(guān)資料,COALESCE函數(shù)比ISNULL更加強(qiáng)大,這個函數(shù)的確非常有用,需要的朋友可以參考下2016-12-12MySQL如何查詢數(shù)據(jù)庫中所有表名及注釋等信息
這篇文章主要介紹了MySQL如何查詢數(shù)據(jù)庫中所有表名及注釋等信息問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10