檢視操作
select ename, sal, hiredate, job from emp
create
view emp_view as
(select ename, sal, hiredate, job from emp)
select
*from emp_view
檢視檢視
檢視修改
檢視刪除
檢視更新 # 注意試圖更新會同時更新實體表
更新檢視的限制條件
索引:多欄位 排序 儲存,提高查詢效率
建立索引
手動建立:
create
table stu2(
stu_id int(7
),stu_name varchar(20
),email varchar(20
),stu_info text
,index
(stu_id)
-- 建立普通索引
unique
(email)
-- 建立唯一索引
primary
key(stu_id)
-- 建立主鍵索引
fulltext (stu_info)
-- 建立全文索引
)show
index
from stu2;
-- 為已有表新增 復合 索引:
create
index index_name on student(stu_id, stu_name)
alter
table student add
index
(stu_id)
-- 普通索引
alter
table student add
unique
[index
](email)
刪除索引
使用者管理
找回密碼-root:windows舉例
許可權管理
事務事務控制
create
table account(
id int
primary
keyauto_increment
, username varchar(30
)not
null
, balance double);
insert
into account(username, balance)
values
("zs"
,1000);
insert
into account(username, balance)
values
("ls"
,1000);
-- 開啟轉賬事務
start
transaction
;update account set balance = balance -
200where username=
"zs"
;update account set balance = balance +
200where username=
"ls"
;-- 執行需要提交該事務\\或者回滾該事務
commit
;-- rollback;
隔離級別
-- 檢視隔離級別
select @@transtraction_isolation
;-- 設定隔離級別
setsession
transaction
isolation
level
read
uncommitted
;
pymysql
import pymysql
# 獲取連線
connection = pymysql.connect(host=
"localhost"
, user=
"root"
, password=
"root"
, db=
"test06"
, charset=
"utf8"
)print
(connection)
# 執行sql:查詢
cursor = connection.cursor(
)sql =
"select * from emp"
cursor.execute(sql)
# 檢視結果
emps=cursor.fetchall(
)for e in emps:
print
(e, end=
"\n"
)# 執行sql:插入資料
sql =
"insert into emp(empno, ename) values(9898, 'merry')"
count = cursor.execute(sql)
print
("count:"
, count)
# count=1
# 執行dml時,會開啟乙個事務,需要主動提交
connection.commit(
)# 執行sql:修改資料
sql =
"update emp set sal=10000 where empno=9898"..
.# 同上
# 執行sql:刪除資料
sql =
"delete from emp where empno=9898"..
.# 同上
# 查詢漏洞
sql =
"insert into emp(empno, ename) values(%s, %s)"
args =
(1234
,"marry"
)count = cursor.execute(sql,args)
# 新增異常處理..
.connection =
none
cursor =
none
try:
connection = pymysql.connect(..
.)..
.except exception as e:
print
(e)if connection:
connection.rollback(
)finally
:if cursor:
cursor.close(
)if connection:
connection.close().
..# 工具類
class
dbutils
: config =
# 連線資料庫的配置
def__init__
(self)
: self.connection = pymysql.connect(
**dbutils.config)
self.cursor = self.connection.cursor(
)def
close
(self)
:if self.cursor:
self.cursor.close(
)if self.connection:
self.connection.close(
)# 任務型別1:執行插入 修改 刪除,事務
defexedml
(self, sql,
*args)
:try
: count = self.cursor.execute(sql, args)
self.connection.commit(
)except exception as e:
print
(e)if self.connection:
self.connection.rollback(
)finally
: self.close(
)# 任務型別2:查詢單條資料
defquery_one
(self, sql,
*args)
:try
: self.cursor.execute(sql, args)
# 查詢非事務,無需commit
return self.cursor.fetchone(
)except exception as e:
print
(e)finally
: self.close(
)# 任務型別3:查詢多條資料(任務2其實可視為該任務的特例)
defquery_all
(self, sql,
*args)
:try
: self.cursor.execute(sql, args)
return self.cursor.fetchall(
)except exception as e:
print
(e)finally
: self.close(
)
mysql基本操作 MySQL基本操作
mysql中新增使用者,新建資料庫,使用者授權,刪除使用者,修改密碼 注意每行後邊都跟個 表示乙個命令語句結束 1.新建使用者 1.1 登入mysql mysql u root p 密碼 1.2 建立使用者 mysql insert into mysql.user host,user,passwor...
mysql 基本操作 mysql基本操作
mysql 建立表,並設定主鍵自增 create table log logid int 4 primary key not null auto increment,logtitle varchar 32 not null logcontent varchar 160 not null logtim...
mysql運維2 基本操作
先說一說mysql的啟動 啟動過程 etc init.d mysqld start 檢查埠 檢視程序 使用mysqld啟動其實內部會呼叫mysqld safe指令碼啟動mysql,一般出故障時會直接呼叫mysql safe指令碼啟動mysql,因為可以自己新增引數。多例項用mysqld safe啟動...