一、資料庫操作:
1、檢視所有資料庫 show databases;
2、使用資料庫 use 資料庫名;
3、檢視當前使用的資料庫 select database();
4、建立資料庫 create database 資料庫名 chartset=utf8;
5、刪除資料庫 drop database 資料庫名;
二、資料表操作:
1、檢視當前資料庫的所有表 show tables;
2、檢視指定表的結構 desc 表名;
3、設計班級表結構為id、name,編寫建立表的語句 create table t_cleasses(id int unsigned not null primary key auto_increment,name varchar(10));
4、給表新增列名:alter table 表名 add 列名 型別及約束;
5、修改欄位的型別及約束: alter table 表名 modify 列名 型別及約束;
6、重新命名字段:alter table 表名 change 舊名 新名 型別及約束
7、刪除字段:alter table 表名 drop 列名
三、注意
1、select* from student limit (n-1)*m,m; 查詢第n頁的資料;(n-1)*m開始的下標(從0開始),m查詢的資料條數;
2、外連線、內連線可以建立乙個虛擬的表,對這張虛擬表的修改會對映到真實的表(from後面的);
四、資料庫程式設計:
# 建立連線
conn = pymysql.connect(host="localhost", user="root", password="mysql", database="db_jingdong", port=3306,charset='utf8')
# 取得游標 ,預設是元組游標,即結果集記錄以元組的形式呈現的
cur = conn.cursor()
五、要點:
1、事務的acid特性(原子性、一致性、隔離性、永續性):
a>、原子性:語句不可分割,要麼一起執行,要麼一起不執行;
b>、一致性:資料庫總是從乙個一致性轉換為另乙個一致性;
c>、隔離性:乙個事務所做的修改在最終提交之前,對其他事務是不可見的;(serializable,repeatable read, read commit,read uncommit)
d>、永續性:一旦事務提交,則其所做的修改會永久儲存在資料庫中
3、索引:
1、索引最主要解決的問題:當資料量較大時,且這些資料不需要經常修改,使用索引來加快查詢速度;
2、對於比較資料較少的表,查詢開銷不會太大,也沒有必要建立另外的索引;
3、建立太多的索引將會影響更新和插入的速度,因為他需要同時更新每個索引檔案
4、對於乙個經常需要更新和插入的**,就沒有必要為很少使用的where字句單獨建立索引;
5、建立索引會占用磁碟。
6、模糊查詢防注入(一般查詢條件由使用者傳過來)
query_name = input("請輸入要查詢的商品名稱")
# 自己手動拼接sql語句
sql = "select * from goods where name like %s" # %筆記本%
# 通過游標執行sql語句
# return number of affected rows 影響的行數
# params = [query_name]
params = ['%%%s%%' % query_name] # %筆記本% % 需要轉義
rows_affect = cur.execute(sql, params)
7、注意:
1、group by 接多個欄位只需用逗號隔開;
2、含有非聚合函式的字段就要加在group by 後面;
3、子查詢作為表,要取別名;
4、複雜查詢:先把顯示的項標出來,多做幾個子查詢;
5、操作:如何操作+對什麼型別(table、view、index等)操作+要操作物件的名稱
資料庫 mysql 基礎
1.建立 create database 資料庫名 例如建立名為d testdb的資料庫 mysql create database d testdb 2.修改 alter database 資料庫名 character set 字符集名 例如修改字符集 set utf8 3.刪除 drop dat...
mysql資料庫基礎
乙個表不能有多個主鍵?解釋 不能,乙個表中有且只能有乙個主鍵,大事兩列 字段 可以作為乙個主鍵 例如 mysql create table t name varchar 5 addr varchar 28 age int 5 primary key name,addr 為什麼要設定主鍵?資料庫儲存的...
MySql資料庫(基礎)
學習資料庫,我覺得關鍵在於記住相關的英文單詞。把自己比較陌生的寫下來,便於記憶 查詢表結構 desc 表名 修改表頭欄位都是 alter table.開頭 給建立好的表新增位址字段,例如給學生表新增gender varchar 2 字段 alter table student add column ...