前面章節陸續完成了 mysql 的介紹和安裝配置,至此已經可以進行資料庫操作語言的學習了。作為學習筆記,本章更多地採用列表地形式簡潔地記錄操作命令,便於後續查閱和使用,而且資料庫操作語言的介紹將結合 python 一起。
點此處加人我們的學習基地!
根據第四章內容,首先啟動 mysql 伺服器,並登入資料系統(可以是root使用者,也可以是guest使用者)。登入後首先顯示已有資料庫:
結果表明,mysql 伺服器中已經存在3個資料庫,這都是系統自帶的配置資料。其中,mysql 已經在前一章有所接觸,用於管理 mysql 的使用者資訊。如果存在資料庫較多時,可以採用 like + % 的組合方式進行顯示:$ ps -ef | grep mysqld # 檢查資料庫伺服器是否啟動
$ mysqld_safe & # 若未啟動,則開啟伺服器
$ mysql -u guest -p # 前文建立,密碼:guest123
mysql > show databases; # 進入伺服器,並 show
+---------------------+
| database |
+---------------------+
| information_schema |
| mysql |
| performance_schema |
+---------------------+
3 rows in set (0.00 sec)
create database 用給定的名字建立乙個資料庫。在 mysql 中的資料庫是包含對應資料庫中表的檔案的目錄,因為資料庫在初始mysql > show databases like 'my%'; # 進入伺服器,並 show
+---------------------+
| database |
+---------------------+
| mysql |
+---------------------+
1 rows in set (0.00 sec)
建立時沒有任何表,create database 語句只是在 mysql 資料目錄下面建立乙個目錄。下面語句建立乙個名為 pi 的資料庫:
mysql > create database pi
進行建立操作時,可能會遇到許可權問題。因為 mysql 中對各使用者的許可權有明確的規定,以保證資料庫內多使用者使用時的安全性。這裡簡單的介紹如何賦予使用者 guest 插入和刪除的許可權,具體關於許可權的討論敬請參考後續章節介紹。
mysql > drop database [if exists] pi
在命令列環境 shell 下可以使用 mysqladmin 建立和刪除資料庫:
use db_name 語句告訴 mysql 使用 db_name 資料庫作為隨後的查詢的預設資料庫。資料庫保持到會話結束,或發出另外乙個 use 語句:$ mysqladmin create db_name
$ mysqladmin drop db_name
如果你不是用 use 語句,那麼上面的例子應該寫成:mysql > use db1;
mysql > select count(*) from mytable; # selects from db1.mytable
mysql> use db2;
mysql > select count(*) from mytable; # selects from db2.mytable
mysql > select count() from db1.mytable;
mysql > select count() from db2.mytable;
前文內容已經能夠帶你定位並進入到使用者自定義的資料庫 pi 了,後續將在 pi 中進行資料庫的操作包含建立、刪除和選擇等。
在進行資料表操作前,先得了解一些資料表的顯示方法,以幫助後續操作的效果檢驗,其語法如下:
注意:如果乙個使用者沒有乙個表的任何許可權,表將不在 show tables 中輸出顯示,需要先登入。語法:
sql 語言例項:
python 語言例項:create table employee (
id int auto_increment primary key,
first_name char(20) not null,
last_name char(20),
age int,
*** char(1),
income float )
採用前文介紹方法登入資料庫,檢視**執行結果。#!/usr/bin/python
# -*- coding: utf-8 -*-
import mysqldb
# 開啟資料庫連線
db = mysqldb.connect("localhost","guest","guest123","pi" )
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# 如果資料表已經存在使用 execute() 方法刪除表。
cursor.execute("drop table if exists employee")
# 建立資料表sql語句
sql = """create table employee (
id int auto_increment primary key,
first_name char(20) not null,
last_name char(20),
age int,
*** char(1),
income float )"""
cursor.execute(sql)
# 關閉資料庫連線
db.close()
tips: 這裡將** employee 的 id 屬性設定為主鍵,聯絡前文得知,工號可以作為乙個員工的唯一識別方法;與建立相對應的是拷貝乙個資料表,採用 create + select 組合的方法,如下:
create table pi2 select * from pi;
語法:
sql 語言例項:
python 語言例項:insert into employee(first_name,
last_name, age, ***, income)
values ('mac', 'mohan', 20, 'm', 2000)
同樣,可以採用 insert + select 的組合方式進行資料插入,例如:#!/usr/bin/python
# -*- coding: utf-8 -*-
import mysqldb
# 開啟資料庫連線
db = mysqldb.connect("localhost","guest","guest123","pi" )
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# sql 插入語句
sql = """insert into employee(first_name,
last_name, age, ***, income)
values ('mac', 'mohan', 20, 'm', 2000)"""
try:
# 執行sql語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# rollback in case there is any error
db.rollback()
# 關閉資料庫連線
db.close()
insert into tab_name1(col1,col2) select col3,col4 from tab_name2;
replace 功能與 insert 完全一樣,除了如果在表中的乙個老記錄具有在乙個唯一索引上的新記錄有相同的值,在新記錄被插入之前,老記錄被刪除。對於這種情況,insert 語句的表現是產生乙個錯誤。語法:
load data [local] infile 'file_name.txt' [replace | ignore] into table tab_name
當在伺服器主機上尋找檔案時,伺服器使用下列規則:
tips: 這些規則意味著乙個像「./myfile.txt」給出的檔案是從伺服器的資料目錄讀取,而作為「myfile.txt」給出的乙個檔案是從當前資料庫的資料庫目錄下讀取。為資料庫裝載資料是管理員的重要職責之一,本節主要介紹 mysql 中建立資料庫和新增資料的方法,並結合 python 語言進行講解。 其中主要的命令列舉如下:
MySQL 基礎 資料操作
資料的操作 crud 插入資料記錄 insert into 插入資料 插入完整資料記錄 插入資料記錄一部分 插入多條資料記錄 插入查詢結果。1 插入完整資料記錄 建立表 create table t dept deptno int 11 dname varchar 20 loc varchar 40...
MySQL 基礎 資料操作
資料的操作 crud 插入資料記錄 insert into 插入資料 插入完整資料記錄 插入資料記錄一部分 插入多條資料記錄 插入查詢結果。1 插入完整資料記錄 建立表 create table t dept deptno int 11 dname varchar 20 loc varchar 40...
mysql使用基礎 mysql 的基礎使用
1 登入 mysql uroot p123 2 檢視使用者 select user 3 退出 quit exit q 4 檢視幫助資訊 help create user 5 建立帳號 create user egon 192.168.32.identified by 123 create user ...