我們知道DDL是數(shù)據庫定義語言,用來定義數(shù)據庫對象:數(shù)據庫、表、列等。今天我們要學習的就是使用DDL操作數(shù)據庫。
1.查看所有數(shù)據庫
查看所有數(shù)據庫的命令是:show databases;我們在安裝mysql數(shù)據庫服務器的時候已經設置其為自動啟動,現(xiàn)在我們在dos命令窗口下訪問數(shù)據庫,并使用如上所示命令查看所有數(shù)據庫,如圖1-1所示:
圖1-1 查看所有數(shù)據庫
圖1-1中,除了user數(shù)據庫,其他數(shù)據庫都是mysql數(shù)據庫服務器自帶的數(shù)據庫,都不能輕易刪除否則就要重新安裝。
需要注意的是查看所有數(shù)據庫的命令是:show databases而不是show database,如果命令寫錯了,會出現(xiàn)圖1-2所示結果:
圖1-2 錯誤命令
圖1-2中,出現(xiàn)了錯誤,“ERROR 1064”,以后大家看到這個錯誤代碼就應該知道這是語法錯誤,需要檢查寫的SQL語句語法是否有問題。
2.切換數(shù)據庫
所謂的切換數(shù)據庫是指選擇要操作的數(shù)據庫,在以后的練習中我們可能會創(chuàng)建很多數(shù)據庫,然后來回操作各個數(shù)據庫,這時就需要使用切換數(shù)據庫的命令:use 數(shù)據庫名。如圖1-3所示:
圖1-3 切換數(shù)據庫
如圖1-3所示,這時就可以對user數(shù)據庫中的表進行操作了,而不能對其他數(shù)據庫的表進行操作,如果想操作其他數(shù)據庫,需要使用命令“use 其他數(shù)據庫名”。
3.創(chuàng)建數(shù)據庫
創(chuàng)建數(shù)據庫的語句:create database [if not exists] 數(shù)據庫名 [charset=utf8]。其中[]表示里面的代碼可有可無,例如:create database if not exists mydb1?,F(xiàn)在我們來創(chuàng)建一個數(shù)據庫,名為mydb1,如圖1-4所示:
圖1-4 創(chuàng)建數(shù)據庫
創(chuàng)建數(shù)據庫后再查看所有數(shù)據庫,檢驗數(shù)據庫是否創(chuàng)建成功,如圖1-5所示:
圖1-5 查看所有數(shù)據庫
如果再次創(chuàng)建一個mydb1的數(shù)據庫,會有什么效果,如圖1-6所示:
圖1-6 再次創(chuàng)建數(shù)據庫
圖1-6中出現(xiàn)錯誤,錯誤信息為“database exists“表示數(shù)據已經存在,使用:create database if not exists mydb1語句創(chuàng)建數(shù)據庫,如圖1-7所示:
圖1-7 創(chuàng)建數(shù)據庫
圖1-7中,操作成功,但是并沒有創(chuàng)建新的mydb1數(shù)據庫,以上語句的作用就是如果不存在就創(chuàng)建,如果存在就不創(chuàng)建。而“charset=utf8”我們一般不會使用,因為在安裝mysql數(shù)據庫服務器時我們已經指定了編碼為utf8,那么所有數(shù)據庫的默認編碼就是utf8,因此不用再進行設置。
4.刪除數(shù)據庫
刪除數(shù)據庫的語句是:drop database [if exists] 數(shù)據庫名,如圖1-8所示:
圖1-8 刪除數(shù)據庫
圖1-8中,刪除數(shù)據庫成功,如果再次刪除mydb1數(shù)據庫會有什么效果,如圖1-9所示:
圖1-9 再次刪除數(shù)據庫
因為mydb1已經被刪除了,再次刪除就會出現(xiàn)問題,因此我們刪除一個數(shù)據庫的時候,首先要判斷這個表是否存在,如果不存在就不刪除,存在了就刪除:drop database if exists 數(shù)據庫名。
5.修改數(shù)據庫編碼
我們很少去修改數(shù)據庫編碼,這里大家了解一下即可,其語句是:ALTER DATABASE mydb1 CHARACTER SET 編碼,如:utf8。
使用左外連接查詢,左表是e1,因此e1表中的所有員工姓名都被查詢出來,e2表中不滿足條件的位置用null代替。
本文版權歸傳智播客Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:傳智播客Java培訓學院
首發(fā):http://www.itcast.cn/javaee